Quant Memo
Core

EWMA Volatility and RiskMetrics

A plain rolling-window volatility treats a return from 30 days ago exactly as important as yesterday's, then drops it off a cliff the instant it exits the window. EWMA instead lets old news fade out smoothly, weighting recent days more.

Prerequisites: Volatility, GARCH Volatility Models

A simple 30-day rolling volatility estimate has an odd flaw: a single huge return from exactly 30 days ago counts with the same full weight as yesterday's return, right up until day 31, when it vanishes from the average entirely and the estimate can jump abruptly even though nothing new happened. Markets do not actually forget information on a hard 30-day cliff, recent shocks matter more than old ones, and that extra importance should fade gradually. The exponentially weighted moving average (EWMA), popularized by J.P. Morgan's RiskMetrics, replaces the hard cutoff with a smooth fade.

The analogy

Think of how a rumor's influence on your opinion decays. Something you heard this morning shapes your view strongly. Something you heard a week ago still nudges you a little. Something from a year ago barely registers, but it never disappears entirely, it is just discounted almost to nothing. A simple rolling average is like an office where gossip from exactly 30 days ago is discussed with full seriousness right up until the 31st day, when it is suddenly, completely forgotten and never mentioned again. EWMA is the more human version: everything fades continuously, nothing drops off a cliff.

Building the formula

Let rtr_t be today's return and σt2\sigma_t^2 yesterday's variance estimate. EWMA updates the variance estimate as

σt2=λσt12+(1λ)rt2.\sigma_t^2 = \lambda \sigma_{t-1}^2 + (1-\lambda) r_t^2.

In words: today's variance estimate is a blend of yesterday's variance estimate and today's squared return, one fresh data point recalibrating an existing belief, not a fresh calculation from scratch over a whole window. λ\lambda (the "decay factor," RiskMetrics famously used λ=0.94\lambda = 0.94 for daily data) controls how much weight stays on the past: closer to 1 means slow-moving, heavily-smoothed volatility; closer to 0 means the estimate reacts almost entirely to today's move and forgets yesterday almost completely.

Unrolling the recursion shows the "smooth fade" directly:

σt2=(1λ)i=0λirti2.\sigma_t^2 = (1-\lambda)\sum_{i=0}^{\infty} \lambda^i r_{t-i}^2.

In words: today's variance is a weighted sum of every past squared return, with weights (1λ),(1λ)λ,(1λ)λ2,(1-\lambda), (1-\lambda)\lambda, (1-\lambda)\lambda^2, \dots shrinking geometrically the further back you go. No return is ever fully forgotten, and none is dropped in one abrupt jump, unlike a rolling window's hard edge.

Path explorer
13055time →
end (bold path) 100.38spread of ends 58.966 independent paths, same settings

Generate a path and picture a shock, one unusually large move partway through. In a rolling-window estimate, that shock's effect appears suddenly and then disappears suddenly exactly NN days later, a visible step down. In an EWMA estimate, the same shock's effect appears immediately but decays smoothly afterward.

shock hits rolling window: hard drop at N days EWMA: smooth fade
A rolling-window estimate (grey) keeps a shock at full weight, then drops it entirely once it exits the window, a visible cliff. EWMA (green) lets the same shock's influence decay continuously instead.

EWMA is GARCH's simple cousin: it is a restricted GARCH(1,1) model with the "long-run average variance" term dropped and the persistence and reaction parameters constrained to sum to exactly 1. It captures volatility clustering (the one robust fact about return volatility) with a single tunable knob, λ\lambda.

Worked example 1: updating the estimate by hand

Yesterday's EWMA variance was σt12=0.0001\sigma_{t-1}^2 = 0.0001 (a daily standard deviation of 1%1\%). Today's return comes in unusually large at rt=3%r_t = 3\%, so rt2=0.0009r_t^2 = 0.0009. Using λ=0.94\lambda = 0.94:

σt2=0.94×0.0001+0.06×0.0009=0.000094+0.000054=0.000148.\sigma_t^2 = 0.94 \times 0.0001 + 0.06 \times 0.0009 = 0.000094 + 0.000054 = 0.000148.

New daily volatility: 0.0001481.22%\sqrt{0.000148} \approx 1.22\%. A single 3% shock moved the volatility estimate from 1.0% to 1.22%, a meaningful but not overwhelming jump, exactly the "recent news matters, but does not dominate" behavior the decay factor is designed to produce. Tomorrow, absent another shock, this estimate will itself decay back toward calmer levels rather than staying frozen at 1.22% for a fixed window length.

Worked example 2: comparing decay factors

Same shock, rt2=0.0009r_t^2 = 0.0009, same starting point σt12=0.0001\sigma_{t-1}^2 = 0.0001, but now with λ=0.99\lambda = 0.99 (slow-moving, used for lower-frequency risk):

σt2=0.99×0.0001+0.01×0.0009=0.000099+0.000009=0.000108σt1.04%.\sigma_t^2 = 0.99 \times 0.0001 + 0.01 \times 0.0009 = 0.000099 + 0.000009 = 0.000108 \Rightarrow \sigma_t \approx 1.04\%.

Versus λ=0.90\lambda = 0.90 (fast-reacting):

σt2=0.90×0.0001+0.10×0.0009=0.00009+0.00009=0.00018σt1.34%.\sigma_t^2 = 0.90 \times 0.0001 + 0.10 \times 0.0009 = 0.00009 + 0.00009 = 0.00018 \Rightarrow \sigma_t \approx 1.34\%.

Same shock, same starting volatility, three quite different next-day estimates (1.04%, 1.22%, 1.34%) purely from the choice of λ\lambda. A risk system tuned with too high a λ\lambda will be slow to flag a genuine regime change; one tuned too low will whipsaw its risk limits after every ordinary noisy day. There is no universally correct λ\lambda, only a trade-off a risk manager chooses deliberately.

What this means in practice

EWMA volatility feeds directly into daily VaR calculations at most banks (it is the core of the original RiskMetrics methodology), position sizing rules that scale exposure inversely with recent volatility, and stop-loss triggers that widen or tighten with market conditions. Its main appeal over full GARCH is that it needs no numerical estimation, λ\lambda is chosen once and the recursion runs in real time with a single multiply-and-add per day.

EWMA has no "floor," it assumes volatility can decay all the way toward zero if returns stay calm long enough, with no pull back toward a long-run average. Real volatility mean-reverts: after a calm stretch, a full GARCH(1,1) model (which includes that pull-back term) will predict a rebound toward normal levels, while EWMA will keep predicting continued calm right up until the next shock arrives, understating risk precisely at the moments complacency is most dangerous.

Related concepts

Practice in interviews

Further reading

  • J.P. Morgan (1996), RiskMetrics Technical Document
  • Bollerslev (1986), Generalized ARCH
ShareTwitterLinkedIn