0

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

第一个存根 2011 年 4 月 1 日

第二个计息日 2011 年 7 月 1 日

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

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

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

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

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

4

1 回答 1

0

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

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())
于 2020-11-01T19:04:57.700 回答