QuantLib构建澳元即期收益率曲线bootstrapping报错99次迭代未收敛排查
报错根本原因排查
1. 核心日期不匹配
你标注的利率数据取数日期为2021年8月13日,但代码中硬编码的定价日期为2021-07-30,两者相差14天,相当于用A日期的市场利率去拟合B日期的收益率曲线,输入数据和拟合逻辑完全错位,是导致收敛失败的最主要原因。
2. 利率曲线结构异常
你输入的短期利率存在明显的非单调跳变:隔夜利率0.03%、1M利率直接跌到0.005%、2M又跳回0.015%,这种不符合常规市场逻辑的倒挂结构,会让PiecewiseLogCubicDiscount的三次样条拟合算法很难在1e-12的高精度要求下,同时满足所有节点的贴现因子约束,迭代到上限也达不到精度要求。
3. 参数配置错误
- 计息基准混用:存款工具的计息规则用的是
Actual365Fixed,但构建收益率曲线时传入的日计数基准是Actual360,两者不匹配会导致贴现因子计算出现系统偏差,进一步加大拟合难度。 - 清算天数设置错误:澳元隔夜现金利率(RBACOR)为T+0清算,你给隔夜存款工具设置了2天的清算期,相当于把隔夜工具的到期日延后了2天,和后续1M、2M的期限节点出现逻辑冲突。
修复方案
按以下优先级调整即可解决问题:
- 对齐日期:将代码中的
dateStr修改为实际取数日期2021-08-13,保证定价日和市场数据日期一致。 - 修正参数错误:
- 隔夜存款工具的清算天数从2改为0,符合RBACOR的交易规则
- 收益率曲线构建的日计数基准改为
Actual365Fixed,和存款工具的计息基准保持一致
- 适配异常数据:如果确认1M利率是真实市场数据而非取数错误,可以将拟合方法换成
PiecewiseLinearZero或PiecewiseFlatForward,线性拟合对非单调数据的容忍度更高,更容易收敛;如果是取数错误,建议取彭博对应期限的买价卖价中间价,避免异常成交点干扰。 - 合理设置精度:金融场景下收益率曲线拟合精度到1e-6就完全满足估值、定价需求,没必要硬卡1e-12的超高标准,市场数据本身的误差远大于这个量级。
修正后代码示例
import QuantLib as ql # 对齐取数日期 dateStr = '2021-08-13' pricingDate = ql.DateParser.parseFormatted(dateStr, '%Y-%m-%d') ql.Settings.instance().evaluationDate = pricingDate depoHelpers = [] # 隔夜利率清算天数改为0 depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.03/100)), ql.Period(1, ql.Days), 0, ql.Australia(), ql.ModifiedFollowing, False, ql.Actual365Fixed())) depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.005/100)), ql.Period('1M'), 2, ql.Australia(), ql.ModifiedFollowing, False, ql.Actual365Fixed())) depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.015/100)), ql.Period('2M'), 2, ql.Australia(), ql.ModifiedFollowing, False, ql.Actual365Fixed())) depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.015/100)), ql.Period('3M'), 2, ql.Australia(), ql.ModifiedFollowing, False, ql.Actual365Fixed())) # 日计数基准和helper保持一致,可按需换成PiecewiseLinearZero yieldcurve = ql.PiecewiseLogCubicDiscount(pricingDate, depoHelpers, ql.Actual365Fixed()) yieldcurve.enableExtrapolation() print(yieldcurve.dates())
内容的提问来源于stack exchange,提问作者user51725
相关产品推荐
相关产品推荐

