Valoração e Análise de Títulos em Python
Joshua Mayhew
Options Trader
Considere um título de 3 anos com cupom anual de 3%, valor nominal de USD 100 e yield de 4%:

ATENÇÃO: O cupom é fixo e não muda!
Decompomos o título em uma coleção de zeros, e então precificamos:
Título de 3 anos com cupom anual de 3%, valor nominal de USD 100 e yield de 4%
Usando nossa fórmula de juros compostos vista antes:
$ \text{Preço ZCB 1 ano: } \frac{3}{(1 + 0.04)^1} = 2.88$
$ \text{Preço ZCB 2 anos: } \ \frac{3}{(1 + 0.04)^2} = 2.77$
$ \text{Preço ZCB 3 anos: } \ \frac{103}{(1 + 0.04)^3} = 91.57$
$\text{Preço do título com cupom: } 2.88 + 2.77 + 91.57 = 97.22$
De forma geral, a fórmula para o preço de um título com cupom é:
$ Price = 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}$
Usando o mesmo título de 3 anos, cupom anual de 3% e yield to maturity de 4%:
import numpy_financial as npf
-npf.pv(rate=0.04, nper=3, pmt=3, fv=100)
97.22
Definimos pmt como positivo.
Também colocamos um sinal de menos antes da função.
Definimos fv como 100, não 103.
Valoração e Análise de Títulos em Python