Dluhopisy s kupónem

Oceňování a analýza dluhopisů v Pythonu

Joshua Mayhew

Options Trader

Definice kupónového dluhopisu

  • V průběhu životnosti vyplácí pravidelné peněžní toky (kupóny)
  • V době splatnosti vyplácí kupón i nominální hodnotu
  • Kupóny jsou zpravidla vypláceny ročně nebo pololetně
  • Počet kupónů vyplacených za rok se nazývá frekvence
  • Výnos do splatnosti je roční výnos z koupě a držení dluhopisu do splatnosti
Oceňování a analýza dluhopisů v Pythonu

Příklad kupónového dluhopisu

3letý dluhopis s ročním kupónem 3 %, nominální hodnotou 100 USD a výnosem 4 %:

UPOZORNĚNÍ: Kupón je pevný a nemění se!

Oceňování a analýza dluhopisů v Pythonu

Ocenění kupónového dluhopisu

Dluhopis rozložíme na soubor bezkupónových dluhopisů a ty oceníme:

  • 1letý bezkupónový dluhopis s nominální hodnotou 3 USD
  • 2letý bezkupónový dluhopis s nominální hodnotou 3 USD
  • 3letý bezkupónový dluhopis s nominální hodnotou 103 USD
Oceňování a analýza dluhopisů v Pythonu

Ocenění kupónového dluhopisu

3letý dluhopis s ročním kupónem 3 %, nominální hodnotou 100 USD a výnosem 4 %

Použijeme vzorec pro složené úročení z předchozí části:

$ \text{1yr ZCB Price: } \frac{3}{(1 + 0.04)^1} = 2.88$

$ \text{2yr ZCB Price: } \ \frac{3}{(1 + 0.04)^2} = 2.77$

$ \text{3yr ZCB Price: } \ \frac{103}{(1 + 0.04)^3} = 91.57$

$\text{Coupon Bond Price: } 2.88 + 2.77 + 91.57 = 97.22$

Oceňování a analýza dluhopisů v Pythonu

Vzorec pro kupónový dluhopis

Obecný vzorec pro cenu kupónového dluhopisu:

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

  • $C$ je kupón vyplacený v každém časovém období
  • $r$ je výnos dluhopisu do splatnosti
  • $P$ je nominální hodnota (jistina) splatná při splatnosti
  • $n$ je počet časových období (zpravidla let)
Oceňování a analýza dluhopisů v Pythonu

Použití funkce pv()

Stejný 3letý dluhopis s ročním kupónem 3 % a výnosem do splatnosti 4 %:

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

pmt nastavíme jako kladné.

Před funkci přidáme znaménko minus.

fv nastavíme na 100, nikoli 103.

Oceňování a analýza dluhopisů v Pythonu

Pojďme si procvičit!

Oceňování a analýza dluhopisů v Pythonu

Preparing Video For Download...