Quantlib Schedule创建报错:参数数量或类型不符问题求助
Quantlib Schedule创建报错及资源求助解决
问题详情
尝试创建Quantlib Schedule时触发类型错误,报错信息为Wrong number or type of arguments for overloaded function 'new_Schedule',怀疑是传入类而非实例导致问题。已查阅《Python Cookbook》和Quantlib官方Read the Docs文档,希望获取更多包含Python代码示例的学习资源,同时解决当前报错。
原代码
import quantlib as ql issue_date = ql.Date(30,3,2021) maturity_date = ql.Date(23,4,2028) frequency = ql.Semiannual calendar = ql.UnitedKingdom bus_day_convention = ql.ModifiedFollowing schedule = ql.Schedule( issue_date, maturity_date, ql.Period(frequency), calendar, bus_day_convention, bus_day_convention, ql.DateGeneration.Backward, False )
错误信息
TypeError: Wrong number or type of arguments for overloaded function Possible C/C++ prototypes are: [...] Schedule::Schedule(Date const &,Date const &,Period const &,Calendar const &,BusinessDayConvention,BusinessDayConvention,DateGeneration::Rule,bool)
更新:已将frequency替换为ql.Period(frequency),但错误仍存在。
错误原因及修正
报错核心原因是传入了Calendar类而非实例:ql.UnitedKingdom是Calendar的子类,需要通过()实例化后才能传入Schedule构造函数。
修正后的代码
import quantlib as ql issue_date = ql.Date(30,3,2021) maturity_date = ql.Date(23,4,2028) frequency = ql.Semiannual # 修正:实例化Calendar类 calendar = ql.UnitedKingdom() bus_day_convention = ql.ModifiedFollowing schedule = ql.Schedule( issue_date, maturity_date, ql.Period(frequency), calendar, bus_day_convention, bus_day_convention, ql.DateGeneration.Backward, False )
补充学习资源推荐
除已查阅的资料外,这些资源能提供更多Python代码示例:
- Quantlib官方示例集:包含覆盖利率产品、期权、债券定价等多场景的Python代码,直观展示各类类和函数的正确调用方式
- 社区实操教程:不少开发者整理了从基础对象(Date、Schedule)到复杂定价的分步教程,全部配有可运行的代码片段
- Quantlib官方论坛:论坛内有大量用户分享的问题及解决方案,搜索特定功能关键词可找到对应代码示例
- 开源量化项目:查看GitHub上的量化投资开源项目,能学习到Quantlib在实际业务场景中的用法
内容的提问来源于stack exchange,提问作者TheGr8Destructo
相关产品推荐
相关产品推荐

