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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...