Calcolo dei rendimenti delle obbligazioni

Valutazione e analisi delle obbligazioni in Python

Joshua Mayhew

Options Trader

Perché calcolare il rendimento

  • Il rendimento a scadenza indica il ritorno atteso sull’investimento
  • Utile per confrontare obbligazioni con caratteristiche diverse
Valutazione e analisi delle obbligazioni in Python

Formula rendimento zero coupon

Ricorda la formula del prezzo di un’obbligazione zero coupon:

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

Possiamo riarrangiare per trovare il rendimento $(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$

Valutazione e analisi delle obbligazioni in Python

Esempio: rendimento zero coupon

Vediamo la stessa zero coupon di prima al contrario:

  • Scadenza 3 anni
  • Valore nominale 100 USD
  • Prezzo 90,19 USD

 

Qual è il rendimento di questa obbligazione?

Valutazione e analisi delle obbligazioni in Python

Calcolo rendimento zero coupon

Zero coupon a 3 anni, prezzo 90,19 USD, nominale 100 USD:

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

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

 

Useremo ytm per “yield to maturity”.

Valutazione e analisi delle obbligazioni in Python

Formula rendimento con cedola?

Formula obbligazione con cedola:

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

Questa equazione non si può isolare in $r$

Usiamo tentativi per trovare $r$

Così funziona la funzione npf.rate()

Valutazione e analisi delle obbligazioni in Python

Esempio: rendimento di un’obbligazione con cedola

Consideriamo l’obbligazione con cedola di prima che:

  • scade tra 3 anni
  • paga una cedola annua del 3%
  • ha un prezzo di 97,22 USD

 

Qual è il suo rendimento a scadenza?

Valutazione e analisi delle obbligazioni in Python

Calcolo del rendimento con cedola

Obbligazione a 3 anni, cedola annua 3%, prezzo 97,22 USD:

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

Ricorda: dobbiamo impostare PV come numero negativo.

Questo perché il prezzo è denaro che paghiamo (flusso di cassa negativo).

Valutazione e analisi delle obbligazioni in Python

Passons à la pratique !

Valutazione e analisi delle obbligazioni in Python

Preparing Video For Download...