Calcule o rendimento de um título e resgate de uma ligação através do método de bisseção e VBA. Outrossim, o rendimento até o vencimento de um título não é dado por uma equação simples e explícita. Como resultado, você precisa de métodos iterativos para retroceder a fórmula de precificação de títulos.
Do mesmo modo, a função TAXA do Excel, calcula iterativamente os rendimentos dos títulos. No entanto, você pode querer calcular essa quantidade com um pequeno código VBA e criar sua própria fórmula.
Usando VBA para calcular o rendimento de um título
Mas por que usar o VBA quando a fórmula TAXA resolve? Bem, existem vários bons motivos.
- Você aprende a teoria por trás do método de bisseção e aplica os conceitos a um problema prático.
- Você pode aproveitar seu novo conhecimento para resolver outros problemas numéricos complicados, como o cálculo da volatilidade implícita em um rendimento.
- Você ganha familiaridade com o VBA - uma ferramenta amplamente usada em negócios e finanças.
Essa equação descreve o preço de um título.
C(1 + R)-1 + C(1 + R)-2 + . . . + C(1 + R)-N + B(1 + R)-N = P
Onde:
C = pagamento anual do cupom.
N = número de anos até o vencimento.
B = valor nominal.
P = preço de compra.
Veja outra equação para rendimento de um título.
Esta equação não pode ser rearranjada para dar i. Logo e seguida, mostrarei um pouco de VBA que aplica o método de bisseção para resolver esta equação para i
Onde temos:
- C é o cupom
- i é o rendimento até o vencimento
- M é o valor nominal
- F é a frequência de pagamento
- n é o número de pagamentos
Copie e cole a tabela a seguir, na célula A1 em uma nova planilha de Excel.
Calcular Rendimentos de um título. | |
---|---|
Dados | Descrição do rendimento |
20 | Anos até a maturidade |
6 | Frequência de Pagamento |
R$ 15.000,00 | Valor nominal |
8,45% | Taxa anual de cupons |
R$ 2.300,00 | Valor presente |
=A4*TAXA(A3*A4;A5*A6/A4;-A7;A5;0) | Rendimento até o vencimento usando TAXA |
=RendimentoDaMaturidade(A5;A3;A6*A5;A7;A4) | Rendimento da maturidade usando VBA e Bisseção |
Use o código VBA a seguir. Copie e cole na área do Visual Basic Applications de sua pasta de trabalho. Depois acrescentes as seguintes funções para calcular o rendimento de um título no Excel.
Function BondPrice(ParValue As Double, NumeroDePagamento As Double, RendimentoDaMaturidade As Double, Coupon As Double, Frequency As Double) BondPrice = Coupon / Frequency * (1 - 1 / (1 + RendimentoDaMaturidade / Frequency) ^ (NumeroDePagamento * Frequency)) / (RendimentoDaMaturidade / Frequency) _ + ParValue / (1 + RendimentoDaMaturidade / Frequency) ^ (NumeroDePagamento * Frequency) End Function Function RendimentoDaMaturidade( _ ByVal ParValue As Double, _ ByVal NumeroDePagamento As Double, _ ByVal Coupon As Double, _ ByVal Price As Double, _ ByVal Frequency As Double) As Double Dim epsilonABS As Double Dim epsilonSTEP As Double Dim iMid As Double Dim niter As Integer Dim iLower As Double Dim iUpper As Double epsilonABS = 0.0000001 epsilonSTEP = 0.0000001 niter = 0 iLower = 0.0000001 iUpper = 1 Do While niter < 100 _ Or iUpper - iLower >= epsilonSTEP _ Or Abs(BondPrice(ParValue, NumeroDePagamento, iLower, Coupon, Frequency) - Price) >= epsilonABS _ And epsilonABS <= Abs(BondPrice(ParValue, NumeroDePagamento, iUpper, Coupon, Frequency) - Price) >= epsilonABS iMid = (iLower + iUpper) / 2 If Abs(BondPrice(ParValue, NumeroDePagamento, iMid, Coupon, Frequency) - Price) <= epsilonABS Then Exit Do ElseIf ((BondPrice(ParValue, NumeroDePagamento, iLower, Coupon, Frequency) - Price) * (BondPrice(ParValue, NumeroDePagamento, iMid, Coupon, Frequency) - Price) < 0) Then iUpper = iMid Else iLower = iMid End If niter = niter + 1 Loop RendimentoDaMaturidade = iLower End Function
O código contém duas funções.
BondPrice (ParValue, NumeroDePagamento, RendimentoDaMaturidade, Cupom, Frequência). Isso calcula o preço de um título.
RendimentoDaMaturidade (ParValue, NumeroDePagamento, Cupom, Preço, Frequência). Esta função resolve o BondPrice para dar o rendimento até o vencimento.
Você pode alterar o código, assim como os dados da tabela, para ver a correta funcionalidade.
E mais...
Compre Aqui pelo menor preço: Notebooks, Smartphones, Livros e tudo que você precisa. Receba suas compras rapidamente! |
Você também pode comprar Microsoft 365 Family, Microsoft 365 Personal, Office 365 Home, ou Office Professional Plus. |