【问题标题】:How to structure Fixed Rate cashflows with monthly interest rate compounded and paid Quarterly如何构建固定利率现金流,每月复利并按季度支付
【发布时间】:2020-11-01 04:56:51
【问题描述】:

我在 python 中使用 Quantlib swig 实现。我正在尝试对一些固定利率的贷款协议进行建模,该利率按月计算,按季度计算。 例子 发行日期 2011 年 3 月 18 日

2011 年 4 月 1 日的第一个存根

第二个利息日期 2011 年 7 月 1 日

下一个利息支付日期在 10 月 1 日之后的每个季度,依此类推。

8.45% 的优惠券按简单计算,每季度复利一次。

我无法使用 FixedRateLeg 或 FixedRateBond 函数来构建流程。

我注意到在 C++ 代码中可以选择使用 FixedRateLeg 和 couponRates。我可以提供带有 SimpleThenCompounded 复利的利率等级。但我认为这个函数覆盖在 Python swig 版本中不可用。

关于如何解决这个问题的任何解决方案?

【问题讨论】:

    标签: quantlib quantlib-swig


    【解决方案1】:

    对于日期,生成您想要的内容非常容易,因为如果没有定义任何内容,存根将在开头:

    issueDate = ql.Date(18,3,2011)
    maturityDate = ql.Date(1, 10, 2021)
    
    schedule = ql.MakeSchedule(issueDate, maturityDate, ql.Period('3M'))
    
    for date in [*schedule][:5]:
        print(date.ISO())
    

    2011-03-18
    2011-04-01
    2011-07-01
    2011-10-01
    2012-01-01

    至于费率,如果按季度付款,我不确定您的意思是按季度复利。例如,ql.SimpleThenCompounded 约定用于可能超过一年的 TBills,其中费率约定在一年之前是简单的,而在一年以上是复合的。

    你确定这不会给你想要的吗?

    dayCount = ql.Actual360()
    leg = ql.FixedRateLeg(schedule, dayCount, [100.], [0.0845])
    for cf in leg:
        print(cf.date().ISO(), cf.amount())
    

    【讨论】:

    • 谢谢。是的,我试过这个。但是在创建 FixedRateLeg 时无法设置复利。到目前为止,我已经开始使用等价率和季度复利来创建优惠券向量。这必须针对所有日期进行,因为费率取决于期间。并使用相同的方法创建 FixedRateLeg。我仍在尝试计算数字,因为存在一些差异。但是整个过程太绕了。应该有更简单的方法!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-08
    • 1970-01-01
    • 1970-01-01
    • 2019-09-14
    • 1970-01-01
    相关资源
    最近更新 更多