首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >NotImplementedError:重载函数Quantlib Python的参数数量或类型错误

NotImplementedError:重载函数Quantlib Python的参数数量或类型错误
EN

Stack Overflow用户
提问于 2018-09-05 23:52:02
回答 2查看 3.9K关注 0票数 0

我是QuantLib新手,刚刚安装了Quantlib和Quantlib-Python。我有MS Visual Studio 2017和2.7.15 64位。

我正在尝试完成Goutham Balaraman的博客(http://gouthamanbalaraman.com/blog/quantlib-basics.html)中的示例。但是,我遇到了一个错误。

代码:

代码语言:javascript
复制
    # schedule object can be used to construct a list of dates such as coupon payments
    date1 = ql.Date(1, 1, 2015)
    date2 = ql.Date(1, 1, 2016)
    tenor = ql.Period(ql.Monthly)
    calendar = ql.UnitedStates
    schedule = ql.Schedule(date1, date2, tenor, calendar, ql.Following, ql.Following, ql.DateGeneration.Forward, False)
schedule 




Error:
---------------------------------------------------------------------------
NotImplementedError                       Traceback (most recent call last)
<ipython-input-5-cae31a33e500> in <module>()
      4 tenor = ql.Period(ql.Monthly)
      5 calendar = ql.UnitedStates
----> 6 schedule = ql.Schedule(date1, date2, tenor, calendar, ql.Following, ql.Following, ql.DateGeneration.Forward, False)
      7 schedule

c:\users\papu\envs\quantlib\lib\site-packages\QuantLib\QuantLib.pyc in __init__(self, *args)
   9419 
   9420     def __init__(self, *args):
-> 9421         this = _QuantLib.new_Schedule(*args)
   9422         try:
   9423             self.this.append(this)

NotImplementedError: Wrong number or type of arguments for overloaded function 'new_Schedule'.
  Possible C/C++ prototypes are:
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &,Calendar const &,BusinessDayConvention const,boost::optional< BusinessDayConvention >,boost::optional< Period > const,boost::optional< DateGeneration::Rule >,boost::optional< bool >,std::vector< bool,std::allocator< bool > > const &)
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &,Calendar const &,BusinessDayConvention const,boost::optional< BusinessDayConvention >,boost::optional< Period > const,boost::optional< DateGeneration::Rule >,boost::optional< bool >)
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &,Calendar const &,BusinessDayConvention const,boost::optional< BusinessDayConvention >,boost::optional< Period > const,boost::optional< DateGeneration::Rule >)
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &,Calendar const &,BusinessDayConvention const,boost::optional< BusinessDayConvention >,boost::optional< Period > const)
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &,Calendar const &,BusinessDayConvention const,boost::optional< BusinessDayConvention >)
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &,Calendar const &,BusinessDayConvention const)
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &,Calendar const &)
    Schedule::Schedule(std::vector< Date,std::allocator< Date > > const &)
    Schedule::Schedule(Date const &,Date const &,Period const &,Calendar const &,BusinessDayConvention,BusinessDayConvention,DateGeneration::Rule,bool,Date const &,Date const &)
    Schedule::Schedule(Date const &,Date const &,Period const &,Calendar const &,BusinessDayConvention,BusinessDayConvention,DateGeneration::Rule,bool,Date const &)
    Schedule::Schedule(Date const &,Date const &,Period const &,Calendar const &,BusinessDayConvention,BusinessDayConvention,DateGeneration::Rule,bool)
    Schedule::Schedule()

对哪里出了问题有什么帮助吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-06 03:15:32

日历应该是ql.UnitedStates(),而不是ql.UnitedStates。现在,您传递的是类本身,而不是它的一个实例。

票数 0
EN

Stack Overflow用户

发布于 2018-09-06 01:59:53

不是真正的答案,仍然在这里给出,因为答案是正确的格式,而评论是不正确的。

最符合你的参数的重载:

代码语言:javascript
复制
schedule = ql.Schedule(
    date1,
    date2,
    tenor,
    calendar,
    ql.Following,
    ql.Following,
    ql.DateGeneration.Forward,
    False
)

是:

代码语言:javascript
复制
Schedule::Schedule(
    Date const &,
    Date const &,
    Period const &,
    Calendar const &,
    BusinessDayConvention,
    BusinessDayConvention,
    DateGeneration::Rule,
    bool
)

假设ql.DataGeneration.Forward的类型是DataGeneration.Rule,不幸的是我看不出你的代码有什么问题...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52189166

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档