QuantLib 的 HestonModelHelper class 抛出错误
QuantLib's HestonModelHelper class is throwing error
我在 python
-
中有以下 QuantLib
模型
import QuantLib as ql
import pandas as pd
day_count = ql.Actual365Fixed()
calendar = ql.UnitedStates()
calculation_date = ql.Date(6, 11, 2015)
spot = ql.SimpleQuote(659.37)
risk_free_rate = ql.SimpleQuote(0.01)
dividend_rate = ql.SimpleQuote(0.0)
riskFreeCurve = ql.FlatForward(
calculation_date,
ql.QuoteHandle(risk_free_rate),
day_count
)
dividend_yield = ql.FlatForward(
calculation_date,
ql.QuoteHandle(dividend_rate),
day_count
)
yield_ts = ql.YieldTermStructureHandle(riskFreeCurve)
dividend_ts = ql.YieldTermStructureHandle(dividend_yield)
p = ql.Period(ql.Date(6,12,2015) - calculation_date, ql.Days)
s = 527.50
vols = 0.35
helper = ql.HestonModelHelper(
p,
calendar,
ql.QuoteHandle(spot),
ql.QuoteHandle(ql.SimpleQuote(s)),
ql.QuoteHandle(ql.SimpleQuote(vols)),
yield_ts,
dividend_ts
)
上面我得到了以下错误-
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
File "/usr/local/lib/python2.7/dist-packages/QuantLib/QuantLib.py", line 9840, in __init__
_QuantLib.HestonModelHelper_swiginit(self, _QuantLib.new_HestonModelHelper(*args))
TypeError: Wrong number or type of arguments for overloaded function 'new_HestonModelHelper'.
Possible C/C++ prototypes are:
HestonModelHelper::HestonModelHelper(Period const &,Calendar const &,Real const,Real const,Handle< Quote > const &,Handle< YieldTermStructure > const &,Handle< YieldTermStructure > const &,BlackCalibrationHelper::CalibrationErrorType)
HestonModelHelper::HestonModelHelper(Period const &,Calendar const &,Real const,Real const,Handle< Quote > const &,Handle< YieldTermStructure > const &,Handle< YieldTermStructure > const &)
我的代码出错的任何线索都将非常有帮助。
谢谢,
问题是 HestonModelHelper 期望现货类型和行权价是浮动的。
要使其以最小的变化工作,请使用:
helper = ql.HestonModelHelper(
p,
calendar,
spot.value(),
s,
ql.QuoteHandle(ql.SimpleQuote(vols)),
yield_ts,
dividend_ts
)
我在 python
-
QuantLib
模型
import QuantLib as ql
import pandas as pd
day_count = ql.Actual365Fixed()
calendar = ql.UnitedStates()
calculation_date = ql.Date(6, 11, 2015)
spot = ql.SimpleQuote(659.37)
risk_free_rate = ql.SimpleQuote(0.01)
dividend_rate = ql.SimpleQuote(0.0)
riskFreeCurve = ql.FlatForward(
calculation_date,
ql.QuoteHandle(risk_free_rate),
day_count
)
dividend_yield = ql.FlatForward(
calculation_date,
ql.QuoteHandle(dividend_rate),
day_count
)
yield_ts = ql.YieldTermStructureHandle(riskFreeCurve)
dividend_ts = ql.YieldTermStructureHandle(dividend_yield)
p = ql.Period(ql.Date(6,12,2015) - calculation_date, ql.Days)
s = 527.50
vols = 0.35
helper = ql.HestonModelHelper(
p,
calendar,
ql.QuoteHandle(spot),
ql.QuoteHandle(ql.SimpleQuote(s)),
ql.QuoteHandle(ql.SimpleQuote(vols)),
yield_ts,
dividend_ts
)
上面我得到了以下错误-
Traceback (most recent call last):
File "<stdin>", line 8, in <module>
File "/usr/local/lib/python2.7/dist-packages/QuantLib/QuantLib.py", line 9840, in __init__
_QuantLib.HestonModelHelper_swiginit(self, _QuantLib.new_HestonModelHelper(*args))
TypeError: Wrong number or type of arguments for overloaded function 'new_HestonModelHelper'.
Possible C/C++ prototypes are:
HestonModelHelper::HestonModelHelper(Period const &,Calendar const &,Real const,Real const,Handle< Quote > const &,Handle< YieldTermStructure > const &,Handle< YieldTermStructure > const &,BlackCalibrationHelper::CalibrationErrorType)
HestonModelHelper::HestonModelHelper(Period const &,Calendar const &,Real const,Real const,Handle< Quote > const &,Handle< YieldTermStructure > const &,Handle< YieldTermStructure > const &)
我的代码出错的任何线索都将非常有帮助。
谢谢,
问题是 HestonModelHelper 期望现货类型和行权价是浮动的。
要使其以最小的变化工作,请使用:
helper = ql.HestonModelHelper(
p,
calendar,
spot.value(),
s,
ql.QuoteHandle(ql.SimpleQuote(vols)),
yield_ts,
dividend_ts
)