Pergunta

Estou usando o Quantlib para realizar cálculos em dados históricos.

Depois de configurar a estrutura necessária (curvas, etc.), quando eu ligo option.ImpliedVolatility() Recebo a seguinte exceção (para opções que expiraram):

  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

Um trecho das linhas de código para configurar as curvas necessárias, etc., é mostrado abaixo:

        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()))

EU FORTEMENTE suspeitar que o TARGET() a macro usada tem como padrão a data atual do sistema.

Como posso configurar a biblioteca para usar uma data histórica específica?

Foi útil?

Solução

A data de avaliação é definida executando, digamos,

Settings.instance().evaluationDate = Date(14,March,2010)

antes dos cálculos.Se não for definido, o padrão será a data atual, conforme você suspeitava.

O calendário do TARGET apenas informa à curva quais dias são feriados, mas não tem efeito na data de avaliação em si.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top