liveBook · Manning

Volatility clustering

As explained in Build a Robo-Advisor with Python (From Scratch)

Volatility clustering is the tendency for large changes in returns to be followed by large changes and small changes to be followed by small changes.

Volatility clustering is the tendency for large return changes to follow large changes, while small changes follow small changes. It matters because historical variances and covariances can miss current volatility conditions. section 3.2.2 section 3.3

The 1987 crash

The S&P 500 fell approximately 20% on October 19, 1987. The following trading days included moves of about +5%, +9%, −4%, 0%, and −8%, illustrating that unusually large changes persisted after the crash. section 3.2.2

A practical test uses the autocorrelation of squared returns, Corr(r²t−1, r²t). For the S&P 500, the measured autocorrelation is 0.2228, with a standard error of 0.0106 and a t-statistic of 21.03, providing strong evidence of clustering. section 3.2.2

Volatility clustering also supports forecasting and crisis interpretation:

  • Volatility can spike during crises and later return toward its earlier level; VIX implied volatility rose to about 80% during the 2008 crisis and later declined to 21%. section 3.2.2
  • A GARCH model can forecast future volatility from return data; a 63-day AAPL forecast produces a volatility estimate of 0.4810 after annualization. section 3.2.2
Table 3.9 S&P500 returns around the stock market crash of 1987
Date Close % Change
1987-10-08 314.160004 -1.375025
1987-10-09 311.070007 -0.983574
1987-10-12 309.390015 -0.540069
1987-10-13 314.519989 1.658093
1987-10-14 305.230011 -2.9537
1987-10-15 298.079987 -2.342504
1987-10-16 282.700012 -5.15968
1987-10-19 224.839996 -20.466931
1987-10-20 236.830002 5.332684
1987-10-21 258.380005 9.099355
1987-10-22 248.250000 -3.920584
1987-10-23 248.220001 -0.012084
1987-10-26 227.669998 -8.278947
1987-10-27 233.190002 2.424564
1987-10-28 233.279999 0.038594
1987-10-29 244.770004 4.925414
1987-10-30 251.789993 2.867994

Browse the S&P 500 return table to inspect the crash and the unusually large movements that followed it. section 3.2.2

How Build a Robo-Advisor with Python (From Scratch) covers it

How deep it goes
Defines clustering, tests squared-return autocorrelation, and applies GARCH forecasting without deriving model internals.
Examples
Demonstrates the 1987 S&P 500 crash, post-crash returns, squared-return autocorrelation, and the 2008 VIX path.
What it assumes
Assumes familiarity with returns, variances, covariances, autocorrelation, and statistical significance.
What you can do after
Diagnoses clustering with Python autocorrelation calculations and forecasts volatility using the arch GARCH implementation.
How it connects
Links return autocorrelation, squared returns, GARCH models, covariance matrices, and VIX implied volatility.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Build a Robo-Advisor with Python (From Scratch). The section links point to the parts of the book it draws on.