GARCH(1,1) volatility forecasting
How volatile the portfolio is now, where the model expects volatility to go, and whether the model fits.
What it does
GARCH(1,1) estimates today's volatility from yesterday's volatility and yesterday's surprise, then projects it forward. Volatility forecasts drift back toward a long-run level at a speed the model estimates from the data.
Why it is used
Market volatility clusters: turbulent days follow turbulent days. A single long-run volatility figure ignores that. GARCH is the standard, well-understood model of it and needs only the return history.
Inputs
- Daily portfolio returns (ten years by default); each holding is also fitted on its own.
Formulas
Assumptions
- Returns are fitted with a constant mean and normal quasi-likelihood. The normality is only used for estimation; the fitted parameters stay valid under fat tails.
- Positive and negative shocks raise volatility equally. In practice, falls raise it more (the leverage effect), which this model does not capture.
- Parameters are constant over the estimation window.
How to read the results
The 21-day forecast is the average volatility expected over the next 21 trading days, which is the right input for anything that spans the whole period. The forecast for day 21 alone would overstate it when volatility is falling and understate it when rising. Persistence (α + β) close to 1 means shocks fade slowly; the half-life is how long it takes for half of a shock to fade.
Limitations
- The model reacts only after returns move. It does not anticipate scheduled events or news.
- With persistence near 1, long-horizon forecasts depend heavily on a long-run level that is itself uncertain.
Where it can fail
- If the optimizer returns a degenerate fit (α near 0 with β near 1), fails to converge, or implies non-stationary volatility, the engine falls back to an exponentially weighted average with λ = 0.94 (RiskMetrics) and says so. That fallback's forecast is flat.
- A Ljung-Box test on squared standardized residuals with a p-value below 0.05 means volatility clustering remains that the model did not capture.
Changes from the original version
DeanOS began as a personal tool. Rebuilding it for the public meant rechecking each model; these are the changes that came out of that.
- The original version reported the day-21 forecast as the '21-day forecast'. It is now the average over the 21 days, and both are shown.
- Residual diagnostics (Ljung-Box) are new.
- The fallback forecast is now flat, as EWMA implies, rather than blended toward a long-run level.
Validation on current data
Fitted parameters and residual diagnostics for the example portfolios from the current snapshot.
References
- Engle, R. (1982). Autoregressive conditional heteroscedasticity. Econometrica 50(4).
- Bollerslev, T. (1986). Generalized autoregressive conditional heteroskedasticity. Journal of Econometrics 31(3).
- J.P. Morgan/Reuters (1996). RiskMetrics Technical Document, 4th ed.
- Ljung, G. and Box, G. (1978). On a measure of lack of fit in time series models. Biometrika 65(2).