Notebook implementation wrong?

Course Name: Options Volatility Trading: Concepts and Strategies, section 15, GARCH Parameters Estimation and Volatility Forecast notebook.



Step-3: Forecast Volatility Using GARCH(1,1) Model

In cell 10:




long term volatility, squared returns at t-1 and volatility at t-1 in GARCH(1,1) equation


volatility_forecast = estimated_parameters[0] * parkinson_volatility[0] + \
    estimated_parameters[1] * monthly_returns[-1]**2 + \
    estimated_parameters[2] * parkinson_volatility[-1]

In this code snippet parkinson_volatility[0] represents the long term volatility. Why are we taking the value of parkinson_volatility at index 0 for long term vol?
I don't see how this make sense and how this can accurately represent long term vol. We're essentially taking a single point in time and saying this is our long term vol value. One can assume we will get pretty different forecasts if our data starts at a different point in time which is not ideal. Wouldn't we want to get consistent forecasts no matter what start date we sample.

Maybe I'm wrong here but couldn't figure this one out myself. To recap how is the value of parkinson_volatility at index 0 representative (if at all) for long term vol

Thanks in advance.

Hello Oliver, 

The GARCH(1,1) model employs weighted sums of volatility attributes to forecast future volatility. 

One of these attributes is the tendency of volatility to revert to its mean. Due to this property of mean reversion, the very long-term volatility is assumed to be equivalent to past volatility. Consequently, the oldest available volatility value (estimated using the Parkinson volatility estimator) is selected as the representation of long-term volatility.

Please let me know if you have any more questions on this. 

Thanks for the reply,



The very long-term volatility is assumed to be equivalent to past volatility. I understand this but how does selecting the oldest value of volatilty wrok as a proxy for long term volatility?

Assume these 2 scenario's

1: The oldest value for parkinson vol in the dataset is 2. Now we assume our long term vol to be 2 and assume it will mean revert around 2.

2: The oldest value for parkinson vol in the dataset is 200. Now we assume our long term vol to be 200 and assume it will mean revert around 200.



See how vastly our forecasts will change just depending on 1 single value of where our data starts?

Shouldn't we be using a long term average or something similar instead? I just can't wrap my head around how a random single value is representitive of long term volatility solely because it is an old value.

Hi Oliver,

Thank you for your insightful observation and feedback.

Yes, it would make more sense to use the recent value of a rolling metric than considering the older one (a single data point). In fact, we can use the recent value of volatility estimated by the Parkinson volatility estimator considering the rolling nature of the calculation.

The notebooks will be updated accordingly. 



Thanks again!

Hello Oliver, these changes have been made. 



Thank you