Het rendement van een obligatie schatten

Obligatiewaardering en -analyse in R

Clifford Ang

Senior Vice President, Compass Lexecon

Rendement vinden door proberen en bijstellen

  • Bij verhandelde obligaties kunnen we het rendement afleiden
  • Ken je de prijs en kasstromen, dan kun je "gokken" wat het rendement is
  • Het "juiste" rendement maakt prijs gelijk aan de contante waarde van de kasstromen
Obligatiewaardering en -analyse in R

Itereren over verschillende schattingen

  • Obligatie met $100 nominale waarde, 5% coupon, 10 jaar looptijd, prijs $92,64
  • 1e gok: 5% → prijs $100 (te hoog)
  • 2e gok: 7% → prijs $85,95 (te laag)
  • 3e gok: 6% → prijs $92,64 (correct)
Obligatiewaardering en -analyse in R

Het proces automatiseren

  • Proberen-en-fouten is inefficiënt
  • Gebruik uniroot() in R om dit te automatiseren
Obligatiewaardering en -analyse in R

Functie maken met uniroot()

ytm <- function(cf) {
    uniroot(bval, c(0, 1), cf = cf)$root
}
  • Maak de functie ytm() met uniroot()
  • Neemt een aangepaste kasstroomvector (cf) en gebruikt de aangepaste waarderingsfunctie (bval)
  • c(0,1) beperkt de zoekinterval tot een rendement tussen 0% en 100%
Obligatiewaardering en -analyse in R

Aangepaste kasstroomvector

cf <- c(-92.64, 5, 5, 5, 5, 5, 5, 5, 5, 5, 105)
  • Eerste element is de prijs van de obligatie als negatief getal
  • Vanaf het tweede element: kasstromen — coupons plus nominale waarde
  • Zelfde obligatie: prijs is -$\$92.64$, nominale waarde $\$100$, 5% coupon, 10 jaar looptijd
Obligatiewaardering en -analyse in R

Aangepaste waarderingsfunctie voor obligaties

bval <- function(i, cf, t = seq(along = cf))  sum(cf / (1 + i)^t)
  • Maak de waarderingsfunctie bval() die de aangepaste kasstroomvector (cf) gebruikt
  • Zelfde logica als onze bondprc()-functie
  • Maak tijdaanwijzer (t)
  • Disconteer kasstromen met rente (i)
Obligatiewaardering en -analyse in R

Laten we oefenen!

Obligatiewaardering en -analyse in R

Preparing Video For Download...