Omvandla din kod till en obligationsvärderingsfunktion
I de tidigare övningarna gick du steg för steg igenom hur man beräknar värdet på en obligation. Att upprepa alla dessa steg för att värdera många obligationer skulle dock snabbt bli omständligt. Lyckligtvis kan du skapa en funktion som utför samma beräkningar om och om igen för olika obligationer.
Funktionen du skapar måste vara flexibel nog att ta emot obligationens viktigaste egenskaper som indata. Baserat på vårt tidigare exempel behöver funktionen kunna hantera en obligations nominella värde, kupongränta, löptid och avkastning.
I den här övningen skapar du funktionen bondprc, som tar dessa fyra indata och beräknar värdet på en obligation. Kom ihåg att du skapar en funktion med syntaxen function(input 1, input 2, ...) { [kodrader] }.
Den här övningen är en del av kursen
Obligationsvärdering och analys i R
Övningsinstruktioner
- En delvis byggd funktion,
bondprc, har genererats i din arbetsmiljö. Slutför funktionen genom att konstruera kommandotfunction()och ange namnen på de fyra indataparametrarna:pför nominellt värde,rför kupongränta,ttmför löptid ochyför avkastning. - Kontrollera att funktionen
bondprcger ett pris på 95,79 dollar för en obligation med ett nominellt värde på 100 dollar, 5 % kupongränta, 5 års löptid och 6 % avkastning till förfall.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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(___, ___, ___, ___)