Obliczanie rentowności obligacji

Wycena i analiza obligacji w Pythonie

Joshua Mayhew

Options Trader

Motywacja do obliczania rentowności

  • Rentowność do wykupu informuje o oczekiwanej stopie zwrotu
  • Przydatna do porównywania obligacji o różnych cechach
Wycena i analiza obligacji w Pythonie

Wzór na rentowność obligacji zerokuponowej

Przypomnijmy wzór na cenę obligacji zerokuponowej:

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

Możemy przekształcić to równanie, aby wyznaczyć rentowność $(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$

Wycena i analiza obligacji w Pythonie

Przykład: rentowność obligacji zerokuponowej

Przeanalizujmy wcześniejszą obligację zerokuponową:

  • Termin zapadalności: 3 lata
  • Wartość nominalna: 100 USD
  • Cena: 90,19 USD

 

Jaka jest rentowność tej obligacji?

Wycena i analiza obligacji w Pythonie

Obliczanie rentowności obligacji zerokuponowej

3-letnia obligacja zerokuponowa, cena 90,19 USD, wartość nominalna 100 USD:

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

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

 

Będziemy używać ytm dla „rentowności do wykupu".

Wycena i analiza obligacji w Pythonie

Wzór na rentowność obligacji kuponowej?

Wzór na cenę obligacji kuponowej:

$ 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}$

Tego równania nie można przekształcić względem $r$

Wykorzystujemy metodę prób i błędów, aby znaleźć $r$

W ten sposób działa funkcja npf.rate()

Wycena i analiza obligacji w Pythonie

Przykład: rentowność obligacji kuponowej

Rozważmy wcześniejszą obligację kuponową, która:

  • ma termin zapadalności 3 lata
  • płaci roczny kupon 3%
  • ma cenę 97,22 USD

 

Jaka jest jej rentowność do wykupu?

Wycena i analiza obligacji w Pythonie

Obliczanie rentowności obligacji kuponowej

3-letnia obligacja kuponowa, kupon roczny 3%, cena 97,22 USD:

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

Pamiętaj, że PV musi być liczbą ujemną.

Cena obligacji to środki, które płacimy (ujemny przepływ gotówkowy).

Wycena i analiza obligacji w Pythonie

Czas na ćwiczenia!

Wycena i analiza obligacji w Pythonie

Preparing Video For Download...