Valoración y análisis de bonos en Python
Joshua Mayhew
Options Trader
-npf.pv(rate=0.05, nper=5, pmt=5, fv=100)
-npf.pv(rate=0.05, nper=10, pmt=5, fv=100)
100.00
100.00
Si los tipos suben al 6%:
-npf.pv(rate=0.06, nper=5, pmt=5, fv=100)
-npf.pv(rate=0.06, nper=10, pmt=5, fv=100)
95.79
92.64
El bono a 5 años perdió un 4,21% de valor; el de 10 años, un 7,36%
El bono a 10 años fue más sensible a cambios en tipos
Usaremos una fórmula simplificada de duración:
${\large Duration = \frac{P_{down}\ -\ P_{up} }{2\ \times\ P\ \times\ \Delta y}}$
Bono a 10 años, cupón anual 5%, TIR 4%. ¿Cuál es su duración?
${ Duration = \frac{P_{down}\ -\ P_{up} }{2\ \times\ P\ \times\ \Delta y}}$
price = -npf.pv(rate=0.05, nper=10, pmt=5, fv=100)price_up = -npf.pv(rate=0.06, nper=10, pmt=5, fv=100) price_down = -npf.pv(rate=0.04, nper=10, pmt=5, fv=100)duration = (price_down - price_up) / (2 * price * 0.01) print(duration)
7.74
Un movimiento del 1% en los tipos provoca un cambio del 7,74% en el precio del bono.
Valoración y análisis de bonos en Python