用 R 进行债券估值与分析
Clifford Ang
Senior Vice President, Compass Lexecon
bondprc() 函数以简化计算p:票面价值r:票息率ttm:到期时间y:到期收益率cf <- c(rep(p * r, ttm - 1), p * (1 + r))
rep(x, y):将 x 重复 y 次x = p * r:票息支付y = ttm - 1:到期时间减一年p * (1 + r):本金 + 末期票息cf <- data.frame(cf)
cf$t <- as.numeric(rownames(cf))
cf 向量的 rownames() 为 1, 2, 3, 4,直到债券的 ttmas.numeric() 确保读作数值cf$pv_factor <- 1 / (1 + y)^cf$t
cf$pv <- cf$cf * cf$pv_factor
sum(cf$pv)
bondprc() 函数p、r、ttm 和 ybondprc <- 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 进行债券估值与分析