如何解决99次迭代后未达到Quantlib收敛
我正在尝试为Euribor 6M计算NPV。我计算掉期净现值,但出现错误
RuntimeError: convergence not reached after 99 iterations; last improvement 5.04917e-05,required accuracy 1e-12
发生错误的代码是:
#%%timeit - itt álltam
#Swap pricing under each scenario
npv_cube = np.zeros((N,len(date_grid),len(portfolio)))
npv_cube_df = pd.DataFrame(index=np.arange(N),columns=date_grid)
for p in range(0,N):
for t in range(0,len(date_grid)):
print(p,t)
date = date_grid[t]
ql.Settings.instance().setEvaluationDate(date)
ycDates = [date,date + ql.Period(6,ql.Months)]
ycDates += [date + ql.Period(i,ql.Years) for i in range(1,11)]
yc = ql.DiscountCurve(ycDates,zero_bonds[p,t,:],ql.Actual365Fixed())
yc.enableExtrapolation()
hyts.linkTo(yc)
if euribor6m.isValidFixingDate(date):
fixing = euribor6m.fixing(date)
euribor6m.addFixing(date,fixing)
if euribor6m.isValidFixingDate(date):
fixing = euribor6m.fixing(date)
euribor6m.addFixing(date,fixing)
for i in range(len(portfolio)):
npv_cube[p,i] = portfolio[i][0].NPV()
npv_cube_df[date_grid[t]][p] = [portfolio[i][0].NPV() for i in range(len(portfolio))] ## putting values to dataframe for export
ql.IndexManager.instance().clearHistories()
ql.Settings.instance().setEvaluationDate(today)
hyts.linkTo(yts)
我提供了一个指向完整笔记本的链接,以检查其余代码。 https://colab.research.google.com/drive/14kCxOFm5n-wppNQqJt9b_Z4FpvIX2L-u?usp=sharing 您能告诉我如何解决吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。