Forecasting Volatility with GARCH Model-Volatility Analysis in Python

Subscribe to newsletter

In a previous post, we presented an example of volatility analysis using Close-to-Close historical volatility. In this post, we are going to use the Generalized Autoregressive Conditional Heteroskedasticity (GARCH) model to forecast volatility.

In econometrics, the autoregressive conditional heteroscedasticity (ARCH) model is a statistical model for time series data that describes the variance of the current error term or innovation as a function of the actual sizes of the previous time periods’ error terms; often the variance is related to the squares of the previous innovations. The ARCH model is appropriate when the error variance in a time series follows an autoregressive (AR) model; if an autoregressive moving average (ARMA) model is assumed for the error variance, the model is a generalized autoregressive conditional heteroskedasticity (GARCH) model.

ARCH models are commonly employed in modeling financial time series that exhibit time-varying volatility and volatility clustering, i.e. periods of swings interspersed with periods of relative calm. ARCH-type models are sometimes considered to be in the family of stochastic volatility models, although this is strictly incorrect since at time t the volatility is completely pre-determined (deterministic) given previous values.  Read more

Subscribe to newsletter https://harbourfrontquant.substack.com/ Newsletter Covering Trading Strategies, Risk Management, Financial Derivatives, Career Perspectives, and More

As an example, we are going to apply the GARCH model to the SP500. We first downloaded 5 years of historical data of SPY from Yahoo Finance. Next, we used the first 4 years of data as the training set and fit the data to the GARCH (1, 1) model. The Python ARCH program returned the following model parameters,

GARCH volatility model in python

After obtaining the parameters, we applied the model to the remaining 1 year of data and calculated the forecasted volatility on a rolling window of 1 month. The picture below shows the rolling forecasted volatility,

GARCH volatility trading in python


To download the accompanying Excel workbook or Python program for this post:
1. Subscribe to the newsletter. If you're already a subscriber, go to the next step
2. Once subscribed, wait for the next newsletter where you can find a link for referring a friend. Use that link to refer a friend or two
After completing these steps, you’ll gain access to the file for this post, along with files for a dozen other posts.

Further questions

What's your question? Ask it in the discussion forum

Have an answer to the questions below? Post it here or in the forum

LATEST NEWSUS tech stocks rebound despite Amazon plunge
US tech stocks rebound despite Amazon plunge

Nasdaq climbs after sell-off fuelled by worries over vast AI spending

Stay up-to-date with the latest news - click here
LATEST NEWSPiper Sandler raises Alphabet stock price target to $395 on strong results
Piper Sandler raises Alphabet stock price target to $395 on strong results
Stay up-to-date with the latest news - click here
LATEST NEWSPiper Sandler reiterates Overweight rating on Qualcomm stock at $200
Piper Sandler reiterates Overweight rating on Qualcomm stock at $200
Stay up-to-date with the latest news - click here
LATEST NEWSBMO Capital lowers Genpact stock price target to $44 on AI sentiment
BMO Capital lowers Genpact stock price target to $44 on AI sentiment
Stay up-to-date with the latest news - click here
LATEST NEWSEmerson stock price target raised to $185 from $155 at KeyBanc
Emerson stock price target raised to $185 from $155 at KeyBanc
Stay up-to-date with the latest news - click here

5 Comments

Leave a Reply