QUANTILB + PYTHON: TARGET () Macro e calendario predefinito (runtimeError: Opzione scaduta)
-
13-12-2019 - |
Domanda
Sto usando QUANTILL per eseguire calcoli sui dati storici.
Dopo aver impostato il quadro richiesto (curve ecc.), quando chiamo option.ImpliedVolatility()
ottengo la seguente eccezione lanciata (per le opzioni scadute):
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
.
A Snippet delle linee di codice per la configurazione delle curve richieste, ecc. È mostrata sotto:
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()))
.
I Fortemente Sospetto che la macro TARGET()
abbia utilizzato i valori predefiniti sulla data di sistema corrente.
Come posso impostare la libreria per utilizzare una data storica specifica?
Soluzione
La data di valutazione è impostata da corsa, dire,
Settings.instance().evaluationDate = Date(14,March,2010)
.
Prima dei calcoli.Se non impostato, è predefinita la data corrente mentre si sospetta.
Il calendario di destinazione racconta solo la curva in quali giorni sono le vacanze, ma non ha alcun effetto sulla data di valutazione stessa.