Obligacje kuponowe

Wycena i analiza obligacji w Pythonie

Joshua Mayhew

Options Trader

Definicja obligacji kuponowej

  • Wypłaca regularne przepływy pieniężne (kupony) w trakcie trwania
  • W terminie wykupu wypłaca kupon oraz wartość nominalną
  • Kupony są zazwyczaj wypłacane rocznie lub półrocznie
  • Liczba kuponów wypłacanych w roku nazywana jest częstotliwością
  • Rentowność do wykupu to roczna stopa zwrotu z zakupu i utrzymania obligacji do wykupu
Wycena i analiza obligacji w Pythonie

Przykład obligacji kuponowej

Rozważmy 3-letnią obligację z rocznym kuponem 3%, wartością nominalną 100 USD i rentownością 4%:

UWAGA: Kupon jest stały i nie zmienia się!

Wycena i analiza obligacji w Pythonie

Wycena obligacji kuponowej

Rozkładamy obligację na zbiór obligacji zerokuponowych, a następnie wyceniamy je:

  • 1-letnia obligacja zerokuponowa o wartości nominalnej 3 USD
  • 2-letnia obligacja zerokuponowa o wartości nominalnej 3 USD
  • 3-letnia obligacja zerokuponowa o wartości nominalnej 103 USD
Wycena i analiza obligacji w Pythonie

Wycena obligacji kuponowej

3-letnia obligacja z rocznym kuponem 3%, wartością nominalną 100 USD i rentownością 4%

Korzystając z wcześniejszego wzoru na procent składany:

$ \text{Cena OZK 1r: } \frac{3}{(1 + 0.04)^1} = 2.88$

$ \text{Cena OZK 2r: } \ \frac{3}{(1 + 0.04)^2} = 2.77$

$ \text{Cena OZK 3r: } \ \frac{103}{(1 + 0.04)^3} = 91.57$

$\text{Cena obligacji kuponowej: } 2.88 + 2.77 + 91.57 = 97.22$

Wycena i analiza obligacji w Pythonie

Wzór na wycenę obligacji kuponowej

Ogólny wzór na cenę obligacji kuponowej:

$ 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$ to kupon wypłacany w każdym okresie
  • $r$ to rentowność do wykupu obligacji
  • $P$ to wartość nominalna (kapitał) wypłacana w terminie wykupu
  • $n$ to liczba okresów (zazwyczaj lat)
Wycena i analiza obligacji w Pythonie

Użycie funkcji pv()

Biorąc tę samą 3-letnią obligację z rocznym kuponem 3% i rentownością do wykupu 4%:

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

Ustawiamy pmt jako wartość dodatnią.

Stawiamy minus przed funkcją.

Ustawiamy fv na 100, nie 103.

Wycena i analiza obligacji w Pythonie

Czas na ćwiczenia!

Wycena i analiza obligacji w Pythonie

Preparing Video For Download...