将代码封装为函数

用 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):将 x 重复 y 次
  • x = p * r:票息支付
  • y = ttm - 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
  • 计算现值因子
cf$pv <- cf$cf * cf$pv_factor
  • 计算各期现金流现值
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 进行债券估值与分析

Passons à la pratique !

用 R 进行债券估值与分析

Preparing Video For Download...