QuantLib + Python:TARGET() 宏和默认日历(运行时错误:选项已过期)
-
13-12-2019 - |
题
我正在使用 Quantlib 对历史数据执行计算。
设置所需的框架(曲线等)后,当我打电话时 option.ImpliedVolatility()
我抛出以下异常(对于已过期的选项):
File "/usr/local/lib/python2.6/dist-packages/QuantLib/QuantLib.py", line 3683, in impliedVolatility
def impliedVolatility(self, *args): return _QuantLib.VanillaOption_impliedVolatility(self, *args)
RuntimeError: option expired
用于设置所需曲线等的代码行片段如下所示:
dividend_yield = YieldTermStructureHandle(FlatForward(0, TARGET(), div_yield, Actual365Fixed()))
risk_free_rate = YieldTermStructureHandle(FlatForward(0, TARGET(), rf_rate, Actual365Fixed()))
volatility = BlackVolTermStructureHandle(BlackConstantVol(0, TARGET(), annualized_histvol, Actual360()))
我 强烈 怀疑 TARGET()
使用的宏默认为当前系统日期。
我如何设置图书馆以使用特定的历史日期?
解决方案
评估日期是通过运行来设置的,例如
Settings.instance().evaluationDate = Date(14,March,2010)
在计算之前。如果未设置,它将默认为您怀疑的当前日期。
TARGET 日历仅告诉曲线哪些天是假期,但对评估日期本身没有影响。
不隶属于 StackOverflow