将您的代码封装成债券定价函数
在之前的练习中,您一步步完成了债券定价的计算。不过,如果要反复为许多债券计算价格,逐步执行所有步骤会很繁琐。幸运的是,您可以创建一个函数,对不同的债券重复执行相同的计算。
您创建的函数需要足够灵活,允许您输入债券的关键特征。结合我们之前的示例,函数需要能够接收面值、票面利率、到期时间以及到期收益率。
在本练习中,您将创建函数 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(___, ___, ___, ___)