Zet je code om in een functie

Obligatiewaardering en -analyse in R

Clifford Ang

Senior Vice President, Compass Lexecon

Functie voor obligatiewaardering

  • We waarderen veel obligaties in deze course
  • Stappen uit het vorige hoofdstuk herhalen we
  • We maken de functie bondprc() om te vereenvoudigen
Obligatiewaardering en -analyse in R

Stappen in obligatiewaardering

  • Generaliseer deze inputs:
    • p voor pariwaarde
    • r voor couponrente
    • ttm voor looptijd (time to maturity)
    • y voor rendement (yield)
  • We maken ook wat code generieker
Obligatiewaardering en -analyse in R

Stappen in obligatiewaardering

cf <- c(rep(p * r, ttm - 1), p * (1 + r))
  • rep(x, y) - herhaalt y keer de waarde x
  • x = p * r = couponbetaling
  • y = ttm - 1 = looptijd minus één jaar
  • p * (1 + r) = hoofdsom + laatste couponbetaling
Obligatiewaardering en -analyse in R

Stappen in obligatiewaardering

cf <- data.frame(cf)
  • Zet om naar data frame om variabelen toe te voegen (zoals in de vorige sectie)
cf$t <- as.numeric(rownames(cf))
  • Maak tijdindex voor contant maken
    • rownames() van cf is 1, 2, 3, 4, tot aan de ttm van de obligatie
    • as.numeric() zorgt dat waarden numeriek zijn
Obligatiewaardering en -analyse in R

Stappen in obligatiewaardering

cf$pv_factor <- 1 / (1 + y)^cf$t
  • Bereken contantmakingsfactor
cf$pv <- cf$cf * cf$pv_factor
  • Bereken contante waarde per kasstroom
sum(cf$pv)
  • Sommeer CV om de obligatiewaarde te krijgen
Obligatiewaardering en -analyse in R

Verpak de code

  • Maak de functie bondprc()
  • Deze neemt als input p, r, ttm en y
bondprc <- function(p, r, ttm, y){
   cf <- c(rep(p * r, ttm - 1), p * (1 + r))
   cf <- data.frame(cf)
   cf$t <- as.numeric(rownames(cf))
   cf$pv_factor <- 1 / (1 + y)^cf$t
   cf$pv <- cf$cf * cf$pv_factor
   sum(cf$pv)
}
Obligatiewaardering en -analyse in R

Laten we oefenen!

Obligatiewaardering en -analyse in R

Preparing Video For Download...