首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >债券未来息票支付日期的构建

债券未来息票支付日期的构建
EN

Stack Overflow用户
提问于 2017-07-07 09:42:36
回答 1查看 434关注 0票数 0

我有一个问题,如果你能帮我的话,我将非常感激。

开始情况:

  • 债券:"026351AZ9“"026351BC9"
  • 这些债券的首张息票日期:"2029-02-15“"2010-09-11" (档次日期)
  • 债券支付息票的年份:3年和1年
  • 每年也有一个优惠券频率:2和4,这意味着在下一年将有2次付款(4次付款)。

第一种情况:3年,每年2次优惠券支付->,因此今后3年每6个月支付一次优惠券。相同的一年和4倍的利息支付。

结果:应该是这样的:

datesBond1 = "2029-02-15" "2029-08-15" "2030-02-15" "2030-08-15" "2031-02-15" "2031-08-15"

datesBond2 = "2010-09-11" "2010-12-11" "2010-03-11" "2010-06-11"

这只是个样本。在我的例子中,我有更多的ISINS,日期,以及不同的年份和优惠券频率。

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-07 11:00:17

您可以使用months函数构造未来的息票支付日期,并将计算封装在可用于单个债券的自定义函数中。

债券2的预期产出中有错误,最后两个值应与2011年相对应。

代码语言:javascript
运行
复制
fn_cpnPayDates = function(cpnStartDt = as.Date("2029-02-15"),numYears = 3, freq = 6) {

# number of coupon payments per year
numPayPerYear = 12 / freq

#total payments
numPayments = numYears * numPayPerYear

cpnDatesAll = rep(cpnStartDt, numPayments)

for(i in 1:numPayments) cpnDatesAll[i] = cpnDatesAll[i] + months((i-1)* freq)


return(cpnDatesAll)

}

datesBond1 = fn_cpnPayDates(cpnStartDt = as.Date("2029-02-15"),numYears = 3, freq = 6)
datesBond1
#[1] "2029-02-15" "2029-08-15" "2030-02-15" "2030-08-15" "2031-02-15" "2031-08-15"

datesBond2 = fn_cpnPayDates(cpnStartDt = as.Date("2010-09-11"),numYears = 1, freq = 3)
datesBond2
#[1] "2010-09-11" "2010-12-11" "2011-03-11" "2011-06-11"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44967596

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档