Cálculo de rendimientos de bonos

Valoración y análisis de bonos en Python

Joshua Mayhew

Options Trader

Motivación del cálculo del rendimiento

  • El rendimiento hasta vencimiento es el retorno esperado
  • Útil para comparar bonos con distintas características
Valoración y análisis de bonos en Python

Fórmula de rendimiento en bono cupón cero

Recuerda la fórmula del precio de un bono cupón cero:

$PV = \frac{FV}{(1 + r)^n}$

Podemos despejar la rentabilidad $(r)$:

$FV = PV \times (1 + r)^n$

$ \frac{FV}{PV} = (1 + r)^n$

$ \sqrt[n]\frac{FV}{PV} = (1 + r)$

$ \sqrt[n]\frac{FV}{PV} -1 = r$

Valoración y análisis de bonos en Python

Ejemplo: rendimiento de bono cupón cero

Veamos el mismo bono cupón cero de antes, al revés:

  • Vence en 3 años
  • Valor nominal 100 USD
  • Precio 90,19 USD

 

¿Cuál es el rendimiento de este bono?

Valoración y análisis de bonos en Python

Cálculo: rendimiento en bono cupón cero

Bono cupón cero a 3 años, precio 90,19 USD, nominal 100 USD:

$r = \sqrt[n]\frac{FV}{PV} -1$

ytm = (100 / 90.19) ** (1/3) - 1
print(ytm)
0.035

 

Usaremos ytm para “yield to maturity”.

Valoración y análisis de bonos en Python

¿Fórmula del rendimiento con cupón?

Fórmula de bono con cupón:

$ PV = \frac{C}{(1 + r)^1} + \frac{C}{(1 + r)^2} + ... +\frac{C}{(1 + r)^n} + \frac{P}{(1 + r)^n}$

$ = \sum_{i=1}^n \frac{C}{(1 + r)^i} + \frac{P}{(1 + r)^n}$

Esta ecuación no se puede despejar en función de $r$

Usamos tanteo para encontrar $r$

Así funciona npf.rate()

Valoración y análisis de bonos en Python

Ejemplo: rendimiento de bono con cupón

Pensemos en el bono con cupón de antes que:

  • vence en 3 años
  • paga un cupón anual del 3%
  • tiene un precio de 97,22 USD

 

¿Cuál es su rendimiento hasta vencimiento?

Valoración y análisis de bonos en Python

Cálculo del rendimiento de bono con cupón

Bono con cupón a 3 años, cupón anual 3% y precio 97,22 USD:

import numpy_financial as npf
npf.rate(nper=3, pmt=3, pv=-97.22, fv=100)
0.04

Recuerda poner PV como número negativo.

Porque el precio del bono es dinero que pagamos (flujo negativo).

Valoración y análisis de bonos en Python

¡Vamos a practicar!

Valoración y análisis de bonos en Python

Preparing Video For Download...