gpt4 book ai didi

bootstrapping - Quantlib 引导错误,99 次迭代后未达到收敛

转载 作者:行者123 更新时间:2023-12-04 07:13:43 27 4
gpt4 key购买 nike

试图通过使用来自彭​​博社的以下数据建立澳元的即期 yield 曲线,RBACOR 指数 澳大利亚储备银行同业隔夜现金利率 0.03 ADBB1M 1m 银行票据 0.005 ADBB2M 2m 银行票据 0.015 ADBB3M 3m 银行票据 0.015 数据来自上周五2021 年 8 月 13 日,但是下面的代码返回错误 RuntimeError:99 次迭代后未达到收敛;最后改进 4.45714e-05,要求精度 1e-12。我可以将精度降低到 1e-04 来完成这项工作,但想检查这里出了什么问题?看起来 100 万美元的银行票据利率低得惊人,而隔夜现金利率却太高了。欢迎/赞赏任何帮助/评论。

dateStr = '2021-07-30'
pricingDate = ql.DateParser.parseFormatted(dateStr, '%Y-%m-%d')

depoHelpers = []
depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.03/100)),
ql.Period(1, ql.Days),
2,
ql.Australia(),
ql.ModifiedFollowing,
False,
ql.Actual365Fixed()))


depoHelpers.append(ql.DepositRateHelper(ql.QuoteHandle(ql.SimpleQuote(0.0051/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()))

yieldcurve = ql.PiecewiseLogCubicDiscount(pricingDate,
depoHelpers,
ql.Actual360())

yieldcurve.enableExtrapolation()
yieldcurve.dates()

最佳答案

对于大多数插值,移动节点仅对最近的间隔有影响。相反,在三次(或对数三次)插值中,移动节点会对整个曲线产生影响。
这意味着,随着引导过程在日期上循环,添加新节点可能会导致早期工具不再准确重新定价。为避免这种情况,当使用三次插值时,重复引导循环,直到节点收敛到对所有工具重新定价的最终曲线。
在你的情况下,没有达到收敛。可能是您的节点数量很少并且曲线过于受限,或者也可能与仅使用存款有关,而存款实际上并不使用插值。
使用具有不同插值的曲线,例如 ql.PiecewiseLogLinearDiscount , 将避免额外的收敛循环和你得到的错误。

关于bootstrapping - Quantlib 引导错误,99 次迭代后未达到收敛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68901406/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com