Aan de slagBegin gratis

Zet je code om in een functie voor obligatiewaardering

In de vorige oefeningen heb je stap voor stap berekend wat een obligatie waard is. Maar al die stappen steeds herhalen voor veel obligaties is onhandig. Gelukkig kun je een functie maken die dezelfde berekeningen herhaaldelijk uitvoert voor verschillende obligaties.

De functie die je maakt, moet flexibel genoeg zijn om de belangrijkste kenmerken van de obligatie als input te geven. In aansluiting op ons eerdere voorbeeld moet de functie de nominale waarde, couponrente, resterende looptijd en yield kunnen verwerken.

In deze oefening maak je de functie bondprc die deze vier inputs gebruikt om de waarde van een obligatie te berekenen. Onthoud dat je een functie maakt met function(input 1, input 2, ...) { [regels code] }.

Deze oefening maakt deel uit van de cursus

Obligatiewaardering en -analyse in R

Bekijk cursus

Oefeninstructies

  • In je werkruimte staat een gedeeltelijk opgebouwde functie, bondprc. Maak de functie af door het function()-commando te construeren en de namen van vier inputs te geven: p voor nominale waarde (par), r voor couponrente, ttm voor resterende looptijd (time to maturity) en y voor yield.
  • Controleer dat de functie bondprc een prijs van $95.79 geeft voor een obligatie met een nominale waarde van $100, 5% couponrente, 5 jaar tot aflossing en 6% yield to maturity.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

# Create function
bondprc <- ___(___, ___, ___, ___) {
  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)
}

# Verify prior result
bondprc(___, ___, ___, ___)
Code bewerken en uitvoeren