如何以固定利率现金流量以及每月复利和每月支付的利率来构建

问题描述

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

2011年4月1日第一个存根

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

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

凭单计算的优惠券为8.45%,每季度计算一次。

我无法使用FixedrateLeg或FixedrateBond函数整理流。

我注意到在C ++代码中,可以选择将FixedrateLeg与couponRates一起使用。我可以提供利率类与SimpleThenCompounded的复合。但是我认为此功能覆盖在Python swig版本中不可用。

关于我该如何解决的任何解决方案?

解决方法

对于日期,可以很容易地生成您想要的内容,因为如果未定义,则存根将处于开始状态:

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约定例如用于可能存在超过一年的TBill,其中费率约定将一直使用到一年,而复合则超过一年。

您确定这不会满足您的需求吗?

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