我正在使用 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 日历仅告诉曲线哪些天是假期,但对评估日期本身没有影响。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top