You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 17:56:18