Volatility models for FRM candidates: EWMA and GARCH(1,1)
Volatility is not constant: calm spells are followed by turbulent ones. Risk managers therefore want a forecast that reacts to new data, rather than one flat standard deviation over a long window. Two standard tools are the exponentially weighted moving average (EWMA) and GARCH(1,1). Both feed measures such as value at risk, and both appear in FRM® Part I. For the wider syllabus see the FRM page.
The idea: variance clusters
Large moves tend to follow large moves. Both models forecast tomorrow's variance (volatility squared) from the latest squared return and the latest variance forecast. They assume daily returns have a mean close to zero, so the squared return stands in for the realised variance.
EWMA
The EWMA update is:
variance(t) = lambda x variance(t-1) + (1 - lambda) x return(t-1)^2
Lambda, between 0 and 1, is the decay factor. A value near 1 gives a slow-moving estimate; a smaller value reacts faster. A figure of 0.94 for daily data is a well-known industry convention, but the right value depends on the data, and the choice is a judgement. EWMA has no long-run level to return to: it is a special case of GARCH with omega = 0 and alpha + beta = 1.
GARCH(1,1)
The GARCH(1,1) equation is:
variance(t) = omega + alpha x return(t-1)^2 + beta x variance(t-1)
- omega is a constant, alpha the weight on the latest squared return, beta the weight on the previous variance.
- Persistence is alpha + beta. For a stationary model it must be below 1.
- Long-run (unconditional) variance is V = omega / (1 - alpha - beta).
Because omega pulls the forecast towards V, GARCH is mean reverting. The expected variance k days ahead is:
E[variance(t+k)] = V + (alpha + beta)^k x (variance(t) - V)
The closer persistence is to 1, the slower the reversion. Parameters are normally estimated by maximum likelihood, which is beyond hand calculation; exam questions typically give them.
Worked example
An invented trading desk, Orrin Vale Equities, has a daily GARCH(1,1) with omega = 0.000002, alpha = 0.08 and beta = 0.90. Yesterday's return was -2.0% and yesterday's volatility forecast was 1.2%. All numbers below were computed and asserted in Python.
- Persistence = 0.08 + 0.90 = 0.98.
- Long-run variance = 0.000002 / (1 - 0.98) = 0.0001, so long-run daily volatility is 1.00%.
- Today's variance = 0.000002 + 0.08 x 0.0004 + 0.90 x 0.000144 = 0.0001636. Volatility = 1.279%.
Compare EWMA with lambda = 0.94 on the same inputs:
- Variance = 0.94 x 0.000144 + 0.06 x 0.0004 = 0.00015936. Volatility = 1.262%.
The two forecasts are close because both react to the 2% shock and the elevated prior forecast. They differ in that GARCH is nudged towards 1.00% by omega. Looking ahead, the GARCH variance on the tenth day is 0.0001 + 0.98^9 x (0.0001636 - 0.0001) = 0.000153, a volatility of 1.237%, drifting down towards 1.00%. Summing the ten daily variances gives a ten-day volatility of 3.98%. EWMA has no reversion, so it carries 0.00015936 forward at every horizon: ten-day volatility is 3.99%.
When each is used
- EWMA: simple, one parameter, widely used for quick daily risk estimates and in covariance updates.
- GARCH: preferred when mean reversion matters, for longer horizons, or when a model for the long-run level is useful, as in option pricing and volatility term structures.
- Equal-weighted history: transparent but slow to react, and a calm window gives a low reading, as discussed in fat tails, skewness and kurtosis.
Usual mistakes
- Mixing volatility and variance: the update equations use variance, and you must square a volatility input and take a square root of the result.
- Forgetting that omega divided by (1 - alpha - beta) gives a variance, not a volatility.
- Using the latest return in the wrong place: it enters as the previous period's squared return.
- Applying the long-run formula when alpha + beta is 1 or more.
- Reading alpha and beta separately: alpha shows how sharply the model reacts to shocks, beta how long the effect lasts.
How the exam typically tests it
Typically you compute one update step, derive the long-run variance from the parameters, check persistence, or explain why GARCH mean reverts and EWMA does not. Charta's practice questions for this topic let you rehearse these steps.
Common questions
What is the difference between EWMA and GARCH?
EWMA has one parameter and no long-run level. GARCH(1,1) adds a constant omega, so the forecast reverts towards a long-run variance.
What does persistence mean in GARCH?
It is alpha plus beta. The nearer it is to 1, the longer a volatility shock lasts. At 1 or above, no finite long-run variance exists.
How do I find long-run volatility?
Compute omega / (1 - alpha - beta) to get variance, then take the square root.
What lambda should I use in EWMA?
A figure such as 0.94 for daily data is a common convention, but there is no universal answer. Lower values react faster and are noisier.
Sources
- GARP, the FRM programme: what the exam is and its two parts.
The exam and the syllabus can change. Check GARP's current details before you book.