QuantLib + Python:Макрос TARGET() и календарь по умолчанию (RuntimeError:срок действия истек)

StackOverflow https://stackoverflow.com//questions/11708666

Вопрос

Я использую 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