Construa um preço de vínculo completo no VBA | Jack Tellington | Skillshare

Velocidade de reprodução


  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x

Construa um preço de vínculo completo no VBA

teacher avatar Jack Tellington

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

6 aulas (32 min)
    • 1. Introdução ao instrumento de ligação

      2:48
    • 2. Criar um formulário de usuário

      8:06
    • 3. Gerenciar o gerenciamento de armazenamento de dados

      4:01
    • 4. Instanciar o objeto

      5:10
    • 5. Implementar a fórmula

      6:54
    • 6. O formulário de usuário do Excel para VBA

      4:46
  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

71

Estudantes

--

Sobre este curso

Neste curso, você vai aprender como criar uma ferramenta de preços de títulos. Você vai conhecer novas funcionalidades importantes no VBA, desde criar manualmente uma ferramenta não estética em uma planilha até estruturar e otimizar seu trabalho usando o formulário de usuário. Você também vai aprender algumas práticas recomendadas sobre como gerenciar o armazenamento de dados no VBA usando o curso.

Conheça seu professor

Teacher Profile Image

Jack Tellington

Professor

Habilidades relacionadas

Tecnologia Desenvolvimento web Títulos

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%
Arquivo de avaliações

Em outubro de 2018, atualizamos nosso sistema de avaliações para melhorar a forma como coletamos feedback. Abaixo estão as avaliações escritas antes dessa atualização.

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui cursos curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. Introdução ao instrumento de ligação: Olá, pessoal. Bem-vindo a esta nova classe de preços de títulos por VB um ponto financeiro com. Hoje, vamos ver como podemos criar uma ferramenta de precificação de títulos em V. B. V. Eu também mostrarei como usar o formulário de usuário do recurso À medida que avançamos na classe, você verá que aprender sobre formulários de usuário é um investimento muito bom porque formulários de usuário podem fazer tantas tarefas mais rápidas, menos trabalhosas ou mais consistentes. Primeiro, vamos ter uma visão geral dos princípios de vínculo e dos indicadores que vamos calcular no Excel. Uma obrigação é basicamente um instrumento de dívida que permite à empresa arrecadar dinheiro através de um mercado público e dado extra que comumente chamamos de juros para o comprador da obrigação. Existem vários tipos de instrumentos de obrigações que são trocados no mercado, cada um com características diferentes. Vamos começar com o vínculo mais fácil para calcular o vínculo de cupom zero. Este é o tipo de vínculo que não paga juros durante a vida do vínculo. Assim, quando o vínculo amadurece, que significa que está em data expira, o investidor receberá uma soma fixa igual ao investimento inicial no qual é adicionado o interesse o preço de um rendimento de obrigações de cupom zero pode ser calculado usando a fórmula FIS Aqui. F é o valor nominal das obrigações, que significa que o montante pago ao detentor no vencimento é a taxa de juro anti o número de anos até ao vencimento. Há outro tipo de obrigação em que o comprador recebe fluxos de caixa intermediários que são realmente cupons descontados. O que é um cupom? Definimos o cupom como a taxa de juros anual paga sobre uma obrigação expressa como uma porcentagem do preço da obrigação. Como você pode ver na fórmula abaixo, definimos o preço das obrigações fazendo alguns dos fluxos de caixa descontados para intermediários em que tivemos o cupom final. Há agora dois indicadores que quero mostrar que vão ser muito importantes para a nossa ferramenta de precificação de títulos, sendo o 1º a duração. A duração é simplesmente uma medida de quanto tempo leva para que a obrigação seja reembolsada pelos seus fluxos de caixa internos. No entanto, no caso de uma obrigação de cupão zero, a duração não se aplica, uma vez que não existem fluxos de caixa intermédios aqui. Mais importante ainda, temos que lembrar que D derivado de R é expresso em função da duração. Agora que definimos a duração, podemos introduzir um novo indicador que é chamado de Convexidade. A cidade condenados basicamente mede o grau em que a duração muda quando o rendimento para a maturidade muda. A cidade dos condenados é geralmente usada como uma ferramenta de gestão de risco porque ajuda a medir a quantidade de risco de mercado a que uma carteira de títulos está exposta. Este é o fim desta aula. Antes de saltar para o próximo, certifique-se de fazer o questionário Obrigado a todos pela sua atenção. 2. Criar um formulário de usuário: Olá, pessoal. Bem-vindo de volta à classe de preços de títulos por VB um ponto financeiro com Hoje vamos ver a aplicação dos princípios que eu acabei de introduzi-lo para usar esta ferramenta incrível o formulário de usuário . Como poderíamos definir um formulário de usuário no VB? R. Um formulário de usuário é simplesmente uma janela ou uma caixa de diálogo que coleta e processa a entrada do usuário. Em um programa do Microsoft Office, podemos adicionar um usuário para homem V B A clicando com o botão direito no objeto Microsoft Excel. Vamos então ir para inserir e clicar no formulário de usuário. Uma nova janela está sendo exibida agora. Nós chamamos de janela de design na qual vamos projetar nosso formulário de usuário. Já podemos lançar o formulário de usuário e exibido na tela para ver como ele parece. Por enquanto, é apenas uma janela clássica na qual vamos adicionar widgets que farão o link entre nosso aplicativo e o usuário. Ele irá, portanto, substituir a grade do Excel, que não estará mais na interface principal do nosso aplicativo. Em relação ao nosso projeto, adicionaremos no formulário do usuário ferramentas específicas que nos permitirão inserir parâmetros para o vínculo ao preço. Teremos também uma área onde apresentaremos os resultados. Não só o preço das obrigações, mas a sua sensibilidade. Convexidade e a lista de cupons até a maturidade. Vamos agora começar a projetar o formulário de usuário. Será o primeiro passo do nosso projeto. Primeiro, vamos nomear a janela. Vamos chamá-lo de Bond mais caro. Portanto, o nome do usuário formulário esta propriedade é o nome que o formulário de usuário tem no código V B A. Assim, seremos capazes de acessar o formulário de usuário e suas propriedades usando o preço de vínculo variável no código V B A associar ID ao formulário de usuário e modificar o título da janela no topo. Precisamos modificar a propriedade da legenda. Agora vamos dividir nossa forma de usuário em duas partes sub. A primeira parte conterá nossos parâmetros. Vamos adicionar um widget quadro tipo, arrastando e soltando a janela da caixa de ferramentas e selecione quadro. Em seguida, damos as dimensões que desejamos ter em nossa forma de usuário. Vamos tentar fazer algo legal aqui. Este primeiro quadro terá os parâmetros de nome do rótulo. A segunda área é a seção que conterá resultados. Vamos simplesmente dar o nome de resultados. Aqui vamos nós. Vamos tentar exibir o formulário de usuário. Agora temos nossos dois quadros, parâmetros e resultados. Agora vamos preencher o espaço usando a caixa de ferramentas. Ainda assim, arrastando e soltando controles que serão úteis para exibir os resultados e inserir os parâmetros. Então o primeiro passo são os nossos parâmetros. Vamos adicionar uma caixa de texto que permitirá que o usuário insira os primeiros parâmetros. Aqui vamos nós e um widget tipo de rótulo que será usado para nomear a caixa de texto na tela. Como você pode ver, o rótulo está ao lado da caixa de texto para que o usuário possa saber que essa caixa de texto obterá o valor descrito pelo rótulo. Então, com as entradas que obteremos da caixa de texto, poderemos calcular o preço do vínculo. Portanto, este primeiro parâmetro será a parte do vínculo do valor. Vamos dar-lhe a caixa de valor nome par como no formulário de usuário. A propriedade name é o nome que nossos livros didáticos terão no código. Aqui. Não é o rótulo que temos que nomear. É mais a caixa de texto. Agora podemos copiar e colar a mesma coisa para os outros parâmetros. - Agora temos os quatro parâmetros, embora um está faltando, precisamos adicionar o período é Cidade dos cupons. Para este parâmetro, não usaremos uma caixa de texto. Não é realmente adaptado uma vez que existem apenas quatro opções possíveis para o período é cidade . No entanto, temos um widget incrível aqui chamado Combo Box para este uso porque ele irá limitar a escolha do usuário. As diferentes opções serão adicionadas no código do formulário do usuário. Nós também adicionamos um rótulo com o período de cupom legenda é cidade e um período de cupom nome é caixa de cidade que nos permitirá acessá-lo facilmente na seção de código. Agora temos todos os parâmetros. Vamos tentar iniciá-lo para ver como ele aparecerá do lado do usuário. Agora vamos projetar os resultados parte do nosso formulário de usuário. O primeiro passo é adicionar três caixa de texto que irá exibir o preço, sensibilidade e convexidade. Em seguida, adicionaremos um widget de caixa de listagem que exibirá a lista de cupons e, por padrão, o Livro de Contas do Bond. Não hesite em copiar e colar para economizar tempo. Copie os três parâmetros no topo, mas não se esqueça de modificar a legenda e o nome da caixa. Então vamos mudar o nome e a legenda. Agora podemos adicionar a caixa de listagem e proceder da mesma maneira que fizemos antes. Selecionar caixa de listagem da caixa de ferramentas e nós arrastar e soltar na janela e nós renomeá-lo para caixa de lista de cupom. Agora nosso formulário de usuário está pronto. Podemos exibir e ver como será. Ok, vamos começar com o V B. Um código por trás do formulário de usuário e isso nos permitirá não só obter as entradas do usuário, mas também exibir os resultados no formulário de usuário. Então, fazendo isso, vamos clicar com o botão direito do mouse aqui no Project Explorer no formulário de usuário Project and View code. O primeiro passo é implementar a função que irá inicializar o formulário de usuário e irá colocar na forma de usuário os valores por padrão de nossos parâmetros em V B. A. As funções de inicialização do formulário de usuário terão que ser escritas com este formato, então cada vez que executamos o formulário de usuário, esta função será executada antes do deslocamento do formulário do usuário. Podemos fazer um teste rápido. Estou usando a função debug dot print que irá executar e exibir uma mensagem e, em seguida, eu posso iniciar o formulário de usuário. Estou abrindo a janela imediata para verificar se a mensagem concluída é exibida, que significa que nossa função de inicialização foi executada com sucesso. Então agora podemos inicializar os parâmetros. O primeiro passo é definir um valor padrão dos quatro parâmetros que serão inseridos na caixa de texto. Podemos ver aqui a relação direta entre o nome da propriedade e a variável que acessamos no código. Em seguida, temos que adicionar as diferentes escolhas três usuário terá em relação ao período de cupom é cidade. Teremos A escolha é sem cupom mensal, trimestral, semi anual ou anual. Agora temos a função de inicialização na qual podemos fazer um teste rápido. Isso está funcionando. Como você pode ver, temos os valores padrão aqui. Quando abrimos o formulário de usuário e na caixa de combinação, as diferentes opções de período de cupom é cidade. Este é o fim da aula antes de saltar para a próxima. Certifique-se de fazer o teste. Obrigado a todos pela vossa atenção. 3. Gerenciar o gerenciamento de armazenamento de dados: Olá, pessoal. Bem-vindo de volta à classe de preços de títulos por VB um ponto financeiro com. Hoje temos que nos perguntar sobre o armazenamento dos dados que obteremos da caixa de texto . Como enviaremos os dados para o nosso próprio preço ou para as funções de preços? Uma solução que temos seria fazer funções de preços deste tipo com parâmetros próximos uns dos outros. Então teríamos valor nominal, taxa anual de desconto, etc, e teríamos funções diferentes com este protótipo longo. Mas não é a melhor opção no nosso caso. Uma outra solução seria armazenar todos esses parâmetros e apenas uma variável que poderíamos chamar nas diferentes funções de preços de uma maneira simples. A variável de parâmetros iria então conter todos os parâmetros e será usado em todas as funções . Isto é possível em VB, um módulo de classe de módulo através são módulos cuja função é armazenar parâmetros e funções. Vamos então ser capaz de usá-los como variáveis para criar um módulo de classe. Clique com o botão direito do mouse sobre o projeto no projeto e clique no módulo de classe. Vamos nomear nosso vínculo módulo classe porque é um vínculo e tem propriedades diferentes. Então, o primeiro passo é o valor da peça. Aqui está o que chamamos de visibilidade variável, que pode ser pública ou privada. Privado significa que ele só será acessível neste módulo, enquanto público pode ser usado em todos os lugares no aplicativo. Vamos enviá-lo para público porque você deseja ter acesso à nossa variável a partir do formulário de usuário para que possamos preenchê-lo diretamente a partir de valores de caixa de texto escritos pelo usuário. E vamos criar um atributo para cada parâmetro. Assim, o período de cupom é cidade tem quatro valores diferentes. Se voltarmos para o formulário de usuário, definimos na função de inicialização que o período Isett E pode levar cinco valores diferentes. Sem cupom mensal, trimestral, semi anual e anual. Para armazenar esses cinco valores, vamos usar uma variável de tipo inteiro. Vamos definir zero para nenhum cupom, 12 para mensalmente significa que há 12 cupons por ano, quatro para trimestral, quatro cupons por ano, dois para semestral e um para anual um poderia tê-lo para levar em V. A é adicionar opção explícita na parte superior de cada módulo Nós também pode adicioná-lo ao formulário de usuário. Esta opção significa que devemos declarar todas as variáveis. Isso evitará confusões quando tentamos depurar o aplicativo entre as variáveis que não definimos e aquelas que pensamos que definimos que, de fato, tinham um nome ligeiramente diferente. Parece uma restrição no código. Mas, na verdade, estamos economizando muito tempo usando isso quando depuramos o aplicativo. Agora temos um objeto no qual enfraquecem os parâmetros da loja. Agora somos capazes de codificar a parte que irá obter nossas informações de formulário de usuário e armazená-la nesses parâmetros. Nós dissemos que poderíamos manipular nosso módulo de classe como uma variável, e esse é o caso aqui porque nossa ligação módulo classe torna-se um tipo da mesma forma int variante ou duplo, por exemplo, e seremos capazes de declarar uma variável deste tipo. Vamos configurá-lo como uma variável global do nosso módulo, e será o vínculo atribuído a este formulário de usuário. O tipo de vínculo aparece na lista de opções. Este vínculo corresponde ao nosso módulo de classe. Teremos um problema de nomeação, geralmente para a classe do módulo. É melhor adicionar CLS antes do nome. Isso evitará a confusão com as variáveis. Então, vamos renomeá-lo desta forma. Aqui vamos nós. Então CLS sublinhado Bond é a classe de um tipo e vincular um objeto que precisa ser instância. O que isso significa? Isso significa que temos que criar o armazenamento que conterá um tipo de objeto de ligação sublinhado CLS . E vamos criar um objeto que contém os cinco parâmetros. Este é o fim desta aula antes de saltar para a próxima. Certifique-se de fazer o teste. Obrigado a todos pela vossa atenção. 4. Instanciar o objeto: nesta classe, vamos criar o armazenamento que irá conter Ah CLS tipo de objeto de ligação sublinhado e vamos criar um objeto que contém os cinco parâmetros. Como podemos proceder com isso? Dissemos que o vínculo é igual ao novo vínculo de sublinhado do CLS. E durante a inicialização, dizemos ao aplicativo para criar nosso espaço de armazenamento no qual nossa variável de ligação apontará, e agora estamos prontos para preencher essa variável. Como esta variável é global, ela permanecerá definida enquanto o formulário de usuário for exibido na tela. Então o que queremos é que os resultados sejam exibidos em tempo real quando modificamos o valor dos diferentes parâmetros. Para isso, podemos usar um evento VB. O que é um evento? É um sinal que será emitido cada vez que uma ação específica for executada. Como quando o usuário modifica uma célula. Este sinal será recuperado no código e a partir daí a ação será tomada com base neste evento. Assim, os eventos que correspondem a uma mudança em uma célula são os eventos alterados e enfraquecem. Simplesmente pegá-los criando funções deste tipo privado sub par valor caixa alterada e esta função será executada Cada vez que a caixa de valor da parte é modificada, podemos testar da mesma forma que fizemos com a impressão de ponto de depuração de inicialização. Então temos aqui a exibição da mudança de valor par. Por quê? Porque quando abrimos o formulário de usuário, definimos um valor padrão que alterou a caixa de valor par. Sophie mudou o valor uma segunda vez. Vamos ver novamente a mudança de valor par mensagem, que significa que nossa função é executada cada vez que mudar valores caixa de texto. Agora vamos simplesmente modificar o valor da parte do vínculo armazenado no vínculo objeto cada vez que esta função é chamada. Assim, cada vez que mudamos o valor, a variável par value db da classe bond será modificada. Também precisamos gerenciar o caso quando excluímos o valor da caixa de texto. Temos um erro aqui, mas por quê? Simplesmente porque o valor par variável db do objeto tipo de ligação de vínculo CLS é esperado uma variável dupla. No entanto, temos uma caixa de texto vazia. Será uma caixa vazia que é um valor de string. Então precisamos gerenciar esta caixa de texto vazia caso. Vamos simplesmente colocar uma condição por causa do código de inicialização. Desta forma, a nossa aplicação está protegida deste tipo de erro, e agora podemos esvaziar a caixa de texto do valor da peça sem enfrentar qualquer erro. Agora temos que fazer a mesma coisa para os diferentes perímetros para o período é perímetro da cidade . É um pouco diferente porque esta não é uma caixa de texto, mas uma caixa de combinação. Portanto, temos diferentes valores possíveis. Então, vamos fazer a tradução entre o valor de entrada do usuário e são int tipo variável no vínculo de classe. Para fazer isso, vamos usar uma estrutura condicional do tipo select case que faz exatamente o que queremos. Ou seja, diferentes ações em função do valor da variável. Então, teremos uma sintaxe como este caso de seleção dependendo do valor do nosso período. Isett e cupom caixa de combinação dólares. Teremos caso para os diferentes casos. O primeiro caso não será nenhum cupom, então definiremos o valor como zero para o segundo caso mensalmente. Vamos definir o período é cidade em 12. Porque temos 12 cupons no ano Case trimestral. Vamos definir o período da cidade em quatro para quatro cupons por ano. Caso semestral em dois para dois cupons por ano e caso anual um cupom por ano. Finalmente, nós no caso de seleção com um caso de seleção final. Então tudo parece estar funcionando muito bem até agora para verificar se nosso objeto de ligação está sendo executado corretamente. Vamos simplesmente fazer um sub teste que irá mostrar a variável do nosso vínculo. E vamos chamar essa função de cada função muda. Então vamos tentar modificar um desses valores. Podemos ver que nosso objeto de ligação foi modificado com sucesso. Como você pode ver, temos 345 para o valor nominal. Então isso está funcionando bem. Vamos manter esta função de teste em nosso código por enquanto. Vamos usá-lo mais tarde para fazer mais testes. Então temos agora são forma de usuário nossa interface de usuário, um processo que transfere a entrada de dados pelo usuário para uma variável que armazena essas informações e uma variável de tipo de vínculo CLS que criamos. Agora podemos codificar as funções de preços para enviar não apenas o preço do vínculo, mas a sensibilidade de convexidade e a lista de cupons. Então vamos colocar essas funções em nossa classe de ligação CLS, uma classe que pode conter variáveis e também funções. É lógico armazená-lo lá porque os dados que serão retornados estão associados a um vínculo. Este é o fim desta aula antes de saltar para a próxima. Certifique-se de fazer o teste. Obrigado a todos pela vossa atenção. 5. Implementar a fórmula: Olá, pessoal. Bem-vindo de volta à classe de preços de títulos por VB um ponto com finanças Nesta classe, vamos implementar as fórmulas de cada uma das propriedades da função. Então, para calcular o preço de um vínculo, precisamos da lista de cupons como um lembrete rápido. O valor de uma obrigação é a soma dos fluxos de caixa descontados, mais o fluxo de caixa final. Então, também vamos implementar uma função que irá retornar a lista de cupons. Faremos isso através de uma tabela para cada um dos cupons. Teríamos de armazenar três bits de informação que vamos exibir mais tarde no formulário de usuário . Gostaríamos do período do cupom, do preço do cupom e do valor presente do cupom. Para armazenar esses três bits de informação, podemos criar uma nova classe que chamará CLS underscore cupom. Então vamos fazer da mesma maneira que fizemos com uma classe CLS sublinhado bund. Vamos criar três parâmetros no cupom de sublinhado CLS, então agora podemos começar a implementar a função que irá gerar a lista de cupons. Podemos começar com a declaração de uma variável que irá definir o número de cupons para criar. Assim, o número de cupons é simplesmente definido como o vencimento em anos multiplicado pelo período de cupom . ISS ity Isso é um inteiro Vamos dar um exemplo rápido. Se o prazo de vencimento de obrigações é de dois anos com período trimestral é cidade. Nós definimos aqui para o período trimestral é cidade. Teremos o nosso período é t variável igual a quatro e uma maturidade é igual a dois. Então teremos oito cupons que coincidem com a realidade. Então agora vamos declarar um contador que nos permitirá fazer um loop de quatro que vai variar de um para o nosso número de cupons e em cada loop que aeração vamos criar um cupom. Cada um desses cupons seria armazenado em uma tabela que vamos inicializar. Nós definimos a dimensão da tabela. Conhecemos a dimensão da tabela porque é a tabela que tem como objetivo armazenar nossos cupons. Então temos uma dimensão que é igual ao número de cupons que queremos armazenar em cada linha da tabela. Vamos armazenar um tipo de objeto de cupom. Então, o que? Cada loop em torno, nós configuramos nossa variável de cupom como fizemos com a variável bond no formulário de usuário. Também precisamos configurar a variável de cupom. Nós definimos a variável de cupom para que o aplicativo definido para armazenamento na memória. Em seguida, podemos preencher o cupom para que o número do período seja simplesmente o valor do contador. O que eu faço aqui é acessar diretamente a um dos parâmetros de classe na função de classe. Portanto, é inútil usar um prefixo aqui porque estamos na mesma classe. Então, quando eu digitar o nome da variável, o aplicativo reconhece que eu estou falando sobre um parâmetro dessa classe. Então aqui está a taxa de cupom anual multiplicada pelo valor par e, em seguida, o valor presente é simplesmente o valor do cupom dividido pelo valor descontado. Então um mais a taxa de desconto anual levantada para o período. Uma vez que temos uma taxa em anos, também queremos o período em anos, então vamos dividi-lo pela maturidade para obter o período em anos. Então, o último passo agora temos preenchido a variável de cupom. Vamos adicionar este cupom variável em nossa tabela de cupom para que vamos para o índice contador. Será o cupom que acabamos de preencher. Em seguida, esta função simplesmente retornará no final do loop a tabela de cupom. Então temos agora a função que retorna a lista de cupons. E, a fim de testá-lo, vamos para a função de preço porque queremos a lista de cupom no preço da função e vamos declarar uma barra de lista variável de cupom que irá armazenar a lista de cupons. Essa função retornará e vamos adicionar uma parada aqui para que possamos ver quando depuramos o valor da variável. Então, para executar este código, precisamos chamar a função de preço no principal. Então, vamos adicionar no código de teste, vamos chamar a função de preço. Vamos lançar o aplicativo. Oh, temos um erro aqui. Então, para depurar uma classe, precisamos ir passo a passo porque VB A não mostra onde exatamente você fez um erro. Então você clica em F oito e passa pela função passo a passo Pressione F oito para descer. Temos um erro nesta linha. Vamos pôr um fim nesta linha. Vamos iniciar o aplicativo novamente. Aqui temos um problema porque nosso código tenta dimensão comeu uma tabela de tamanho zero que é impossível. A tabela vai de 1 a 0, o que é totalmente proibido. Isso está acontecendo porque nos esquecemos de gerenciar um caso em que o período é. A cidade está em zero, então o número dos cupons é igual a zero, então precisamos adicionar uma condição. Se o número de cupons não for igual a zero, então executamos este código. Caso contrário, ele irá retornar nossa variável variante que estará vazia. Então vamos começar o aplicativo novamente. Chegamos à parada que colocamos. Vamos adicionar um relógio fazendo o certo. Clique e clique em adicionar relógio e olhar para o valor da lista de cupom. Está vazio, como esperado, porque estamos em uma obrigação de cupom zero. Como podemos ver aqui, o período do cupom é cidade está vazia. Vamos agora verificar se há um período semi anual. É a cidade. Desta vez, temos a lista de cupom que contém o período, o valor presente e o valor. Então agora podemos nos concentrar na implementação da função de preços, sensibilidade e convexidade. Assim, a fórmula de precificação de títulos é simplesmente a soma dos fluxos de caixa anualizados, mais o fluxo de caixa final, que é o nominal pago ao comprador. Então nós só precisamos fazer loop sobre os diferentes cupons e adicionar seu valor presente. Então vamos determinar o primeiro contador de loop variável. Vamos também declarar isso alguma variável, que é a soma do valor descontado. Então vamos loop e usar a função de ligação que nos permite obter a linha superior de uma variante. Ao fazer isso, seremos capazes de fazer loop em todos os cupons. Nós definimos o Summit zero e temos o alguns sublinhado LG igual. Alguns sublinhado LG plus lista de cupom do nosso Então para um lembrete rápido nesta tabela, temos um objeto tipo de cupom para cada linha no objeto que contém três parâmetros o período, o valor e o valor com desconto. O que nos interessa é o valor presente. Então nós só precisamos ponto presente DB valor eo aplicativo para acessar o valor presente afiliado sobre isso alguns nós adicionar o valor presente no valor parcial maturidade que corresponde ao alguns que é coletado no vencimento pelo comprador Bond, semelhante à função que calculou o número dos cupons. Utilizamos a fórmula descontada para calcular o fluxo de caixa final descontado e devolvemos o valor. Este é o fim desta aula antes de saltar para a próxima. Certifique-se de fazer o teste. Obrigado a todos pela vossa atenção. 6. O formulário de usuário do Excel para VBA: no Excel. Olá, pessoal. Bem-vindo de volta à classe de preços de títulos por VB um ponto financeiro com No final do anterior, escrevemos nossa função de preços. Agora vamos tentar exibi-lo em nosso formulário de usuário. Para fazer isso, vamos modificar a função de teste novamente que vamos chamá-lo de calcular. Uma vez que chamamos o teste de função a cada mudança no formulário do usuário, o aplicativo calculará o preço do vínculo cada vez que houver uma mudança nos parâmetros . Vamos começar com o formulário de usuário. Temos agora o preço com decimais. A fórmula para a função de sensibilidade é muito semelhante à função de preço, que possamos copiar e colar para o código e modificá-lo. A primeira modificação a fazer é multiplicar cada fluxo de caixa pelo período como um lembrete. Como o período não é anualizado, estamos dividindo-o pela maturidade para dar o período. Em anos, fazemos a mesma coisa para o fluxo de caixa final, e dividimos pelo preço multiplicado por um mais a taxa de desconto anual. Esta sensibilidade é simplesmente a primeira derivada do preço que mostramos sobre o power point para recuperar esta fórmula, você pode voltar para a parte teórica onde explicamos. A fórmula de convexidade também é muito semelhante. Então, novamente, podemos copiar e colar o código e simplesmente quadrado este valor mais um que é a fórmula que obtemos quando fazemos a segunda derivada do preço pela taxa de juros. Então aqui fazemos a mesma coisa. Então a maturidade ao quadrado. E, finalmente, também precisamos deste termo ao quadrado. Temos agora a fórmula para Preço, Convexidade e Sensibilidade. Ainda precisamos conectar a convexidade e Sensibilidade à respectiva caixa de texto. Fazemos isso no sub calcular que será executado cada vez. Há uma mudança nos parâmetros. Então agora contestamos e funciona perfeitamente. Temos agora a sensibilidade e as medidas de convexidade. Podemos vê-lo aumentar juntamente com a maturidade que é normal. Agora precisamos exibir a lista de cupons. Para fazer isso. Vamos voltar para o código de formulário do usuário e na função de cálculo, vamos obter a lista de cupons e preenchê-lo com a nossa caixa de listagem widget. Nós declaramos uma lista cubana variável que irá armazenar a lista de cupons que vamos obter de nosso vínculo. Teremos que fazer um loop sobre o vínculo. Então, precisamos adicionar um contador e vamos preencher nossa caixa de listagem. Desta forma. Adicionar item aqui nós em um objeto na caixa de lista que corresponde a uma linha aqui e nesta linha, vamos adicionar, são três elementos. Duas coisas que precisamos fazer antes que vamos definir o número de colunas de nossa caixa de lista , como dissemos, como dissemos, três para as características de vínculo cada vez que vamos calcular. Também vamos limpar a caixa de listagem de cupom para evitar acumular linhas em nossa tabela toda vez que relançamos o cálculo. Então, estamos prontos para adicionar itens. Modifique as três características de coluna para cada item. Então, acessamos a propriedade lista de cupom da caixa de listagem que contém a lista de linhas do widget, e vamos ter que indicar qual índice queremos modificar. No nosso caso, é a última linha porque é a linha, nós adicionamos , para não obter a última linha que fazemos cupons caixa lista ponto contagem menos um. Por que menos um? Porque as linhas estão numeradas. Começando do zero. Colocamos o valor um aqui para precisamente o valor que será exibido na primeira coluna , e acessamos o , contador de índice de lista de cupom, e a primeira propriedade de cupom que exibirá é o período. Então nós simplesmente direita ponto ponto LG. Fazemos as mesmas coisas para as duas outras colunas sem esquecer de alterar o índice para especificar qual coluna modificamos agora contestamos. Oh, temos um erro aqui. É porque nossa lista de cupom é um inteiro, então precisamos gerenciar esse caso. Aqui estão par. O valor não é exibido corretamente. Vamos tentar entender por que é porque o índice começa em zero. Então precisamos mudar isso. Está tudo bem. Agora temos a nossa lista de cupom com o número do período, o valor do cupom e o valor presente, nosso vínculo Pricer está agora terminado. Permite ao usuário inserir os diferentes parâmetros de entrada e conhecer o preço, as medidas de risco e a lista de cupons. Este é o fim desta aula. Certifique-se de fazer o último teste. Por favor, não hesite em contactar-nos para quaisquer dúvidas que possa ter. Vemo-nos novamente na próxima aula. Obrigado a todos pela vossa atenção.