Obligatierendement berekenen

Waardering en analyse van obligaties in Python

Joshua Mayhew

Options Trader

Waarom rendement berekenen?

  • Yield to maturity geeft het verwachte rendement
  • Handig om obligaties met verschillende kenmerken te vergelijken
Waardering en analyse van obligaties in Python

Zerocoupon-obligatie: rendementsformule

Herinner de prijsformule voor een zerocouponobligatie:

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

We kunnen dit herschikken om het rendement $(r)$ te vinden:

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

Waardering en analyse van obligaties in Python

Voorbeeld: zerocoupon-rendement

Kijk terug naar dezelfde zerocouponobligatie, nu achteruit redeneren:

  • Looptijd 3 jaar
  • Nominale waarde USD 100
  • Prijs USD 90,19

 

Wat is het rendement van deze obligatie?

Waardering en analyse van obligaties in Python

Berekening zerocoupon-rendement

3 jaar zerocoupon, prijs USD 90,19, nominale waarde USD 100:

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

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

 

We gebruiken ytm voor 'yield to maturity'.

Waardering en analyse van obligaties in Python

Couponobligatie: rendementsformule?

Formule couponobligatie:

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

Deze vergelijking is niet naar $r$ op te lossen

We vinden $r$ met trial-and-error

Zo werkt de functie npf.rate()

Waardering en analyse van obligaties in Python

Voorbeeld: couponobligatie-rendement

Kijk naar onze couponobligatie van eerder die:

  • een looptijd van 3 jaar heeft
  • een jaarlijkse coupon van 3% betaalt
  • een prijs van USD 97,22 heeft

 

Wat is het yield to maturity?

Waardering en analyse van obligaties in Python

Berekening couponobligatie-rendement

3 jaar couponobligatie, 3% jaarlijkse coupon met een prijs van USD 97,22:

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

Onthoud dat we PV negatief moeten zetten.

Dat komt omdat de prijs een uitgaande kasstroom is (geld dat we betalen).

Waardering en analyse van obligaties in Python

Laten we oefenen!

Waardering en analyse van obligaties in Python

Preparing Video For Download...