把你的程式碼轉成債券定價函式
在前面的練習中,你已經一步一步完成如何計算債券的價值。不過,若要重複對許多債券做同樣的步驟,會相當費時。所幸,你可以建立一個函式,讓這些計算能針對不同債券重複執行。
你建立的函式需要有彈性,能讓你輸入債券的關鍵特性。在我們先前的例子中,你需要讓函式可以納入債券的面額(par value)、票面利率(coupon rate)、到期年數(time to maturity),以及殖利率(yield)。
在這個練習中,你會建立函式 bondprc,它接受這四個輸入來計算債券的價值。回想一下,建立函式可以使用 function(input 1, input 2, ...) { [lines of code] }。
本練習屬於課程
在 R 中進行債券評價與分析
練習說明
- 你的工作空間中已經產生一個部分完成的函式
bondprc。請完成這個函式:建立function()指令,並提供四個輸入名稱:面額用p、票面利率用r、到期年數用ttm、殖利率用y。 - 驗證
bondprc函式是否回傳 $95.79 的價格,條件為面額 $100、票面利率 5%、到期年數 5 年、到期殖利率 6%。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# 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(___, ___, ___, ___)