把程式碼封裝成函式

在 R 中進行債券評價與分析

Clifford Ang

Senior Vice President, Compass Lexecon

債券評價函式

  • 本課會評價多檔債券
  • 先前章節的步驟會重複使用
  • 我們會建立 bondprc() 函式來簡化計算
在 R 中進行債券評價與分析

債券評價步驟

  • 將這些輸入一般化:
    • p:票面金額
    • r:票面利率
    • ttm:剩餘到期年數
    • y:殖利率
  • 同時讓部分程式更通用
在 R 中進行債券評價與分析

債券評價步驟

cf <- c(rep(p * r, ttm - 1), p * (1 + r))
  • rep(x, y)-重複 y 次 x 的值
  • x = p * r=票息金額
  • y = ttm - 1=到期年數減 1 年
  • p * (1 + r)=本金+最後一期票息
在 R 中進行債券評價與分析

債券評價步驟

cf <- data.frame(cf)
  • 轉成資料框,便於加入變數(與上一節相同)
cf$t <- as.numeric(rownames(cf))
  • 建立折現用的時間索引
    • cf 向量的 rownames() 依序為 1、2、3、4,直到債券的 ttm
    • 需用 as.numeric() 確保讀成數值
在 R 中進行債券評價與分析

債券評價步驟

cf$pv_factor <- 1 / (1 + y)^cf$t
  • 計算現值係數(PV factor)
cf$pv <- cf$cf * cf$pv_factor
  • 計算各期現值(PV)
sum(cf$pv)
  • 將現值相加得到債券價值
在 R 中進行債券評價與分析

封裝程式碼

  • 建立 bondprc() 函式
  • 輸入為 prttmy
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)
}
在 R 中進行債券評價與分析

一起來練習吧!

在 R 中進行債券評價與分析

Preparing Video For Download...