寻求MATLAB actual/actual日计数基准的Python QuantLib等价实现
MATLAB
date2time(basis=0) 转Python QuantLib 等价日计数基准问题 我正在把MATLAB代码迁移到Python,需要找到和MATLAB中date2time函数的basis=0(即actual/actual日计数基准)等价的设置。原MATLAB代码用该函数计算两个日期之间的期间长度(以年为单位),默认使用basis=0的actual/actual规则。
我选用Python的QuantLib库处理这个任务,尝试了ql.ActualActual的所有选项(ISMA、Bond、ISDA、AFB等),但都无法精准复现MATLAB的计算结果。我希望找到现成的解决方案,不想自己去研究MATLAB函数实现再重写Python代码。
可复现示例
MATLAB计算结果
period = date2time(datetime(2006,3,20), datetime(2036,3,31), 1, 0) period = 30.0302
Python QuantLib测试结果
import QuantLib as ql dateS = ql.Date(20,3,2006) dateE = ql.Date(31,3,2036) # 各选项计算结果 ql.ActualActual(ql.ActualActual.ISDA).yearFraction(dateS, dateE) # 30.032203009207276 ql.ActualActual(ql.ActualActual.Bond).yearFraction(dateS, dateE) # 30.083333333333332 ql.ActualActual(ql.ActualActual.AFB).yearFraction(dateS, dateE) # 30.03013698630137
内容的提问来源于stack exchange,提问作者Martin Kabelka
相关产品推荐
相关产品推荐

