Articles

How do you calculate EWMA volatility with a lambda of 0.94?

The RiskMetrics recursion worked day by day on an 840M fund, with the weights, the half-life, the choice of lambda and the mistake that turns it into noise.

EWMA volatility updates yesterday's variance estimate with today's squared return: new variance = λ × old variance + (1 − λ) × return², with λ = 0.94 for daily data in the RiskMetrics convention. On an illustrative 840M fund running at 0.370 per cent daily volatility, ten days that include four large losses lift the estimate to 0.603 per cent, and the one-day 99 per cent VaR from 7,229,208 to 11,786,624, a rise of 63.0 per cent that an equally weighted 250-day window would barely register.

Worked in full in Financial Risk Management by Julian R. Sterling, with every figure reproduced in a free workbook.See the book on Amazon →

The point of the exponential weighting is that the estimate reacts to what just happened and then forgets it at a known rate. That is what a risk manager wants from the volatility that feeds a parametric VaR, and it is also why the number can move sharply in a week without anything in the portfolio changing.

The inputs

Illustrative fund, daily returns in per cent.
InputValue
Net asset value840,000,000
Decay factor λ0.94
Daily volatility estimate going in0.370%
Variance going in (0.370²)0.1369
99% one-tailed multiplier2.326

The calculation, step by step

σ²t = λ × σ²t−1 + (1 − λ) × r²t

In Excel, with the previous volatility in C2 and today's return in B3: =SQRT(0.94*C2^2+0.06*B3^2)

Day 1. The return is 0.20 per cent, so r² is 0.0400. The old variance contributes 0.94 × 0.1369 = 0.1287 and the new return 0.06 × 0.0400 = 0.0024. The new variance is 0.1311, a volatility of 0.362 per cent. A quiet day pulls the estimate down slightly.

Day 4. A loss of 1.20 per cent arrives. The old variance contributes 0.94 × 0.1233 = 0.1159; the return contributes 0.06 × 1.4400 = 0.0864, almost as much on its own. The variance jumps to 0.2023 and volatility to 0.450 per cent in one day.

The ten days, λ = 0.94. Returns and volatility in per cent.
DayReturnReturn²VarianceVolatility
Start0.13690.370
10.200.04000.13110.362
2−0.350.12250.13060.361
30.100.01000.12330.351
4−1.201.44000.20230.450
5−1.602.56000.34380.586
60.900.81000.37180.610
7−1.101.21000.42210.650
80.400.16000.40630.637
9−0.250.06250.38570.621
100.150.02250.36390.603

Volatility peaks at 0.650 per cent on day 7 and is already falling by day 10, because the three calm days that follow each carry more weight than the shocks they push down the queue. The return is squared without subtracting a mean: over a day the mean is too small to estimate and too small to matter, and the convention keeps the estimate from being dragged around by a noisy average.

The result

The end volatility of 0.603 per cent is 63.0 per cent above the 0.370 going in. Annualised with the square root of 252 days (15.87), that is a move from 5.87 per cent to 9.58 per cent. The one-day 99 per cent VaR, 2.326 × volatility × NAV, goes from 7,229,208 (0.861 per cent of NAV) to 11,786,624 (1.403 per cent), a rise of 4,557,416 with no change in positions.

The weights explain the speed. Today's squared return carries 6 per cent, yesterday's 5.64, the tenth most recent 3.44. The last 10 days hold 46.1 per cent of the total weight, the last 25 days 78.7 per cent, and 99 per cent of the weight sits within about 74 days. The half-life is ln(0.5) ÷ ln(0.94) = 11.2 days: if the fund goes back to moving 0.370 per cent a day, the excess variance halves in 11.2 days, and expected volatility is back to 0.450 per cent after 20 days and 0.377 after 60.

What if: the choice of lambda

The same ten days under four decay factors.
λWeight on todayHalf-life, daysPeak volDay-10 volDay-10 VaR
0.9010%6.60.763%0.667%13,032,513
0.946%11.20.650%0.603%11,786,624
0.973%22.80.535%0.518%10,125,646
0.991%69.00.434%0.430%8,409,117

A lower λ reacts faster and forgets faster; a higher one is steadier and slower. The day-10 VaR ranges from 8,409,117 to 13,032,513 on the same data, a spread of 4,623,396 or 39.2 per cent of the base figure, which is why the decay factor belongs in the model documentation with its justification rather than in a hidden cell. The equally weighted volatility of the same ten days alone is 0.802 per cent (12.74 per cent a year); spread across a 250-day window those ten days would move the estimate very little. The two answers bracket EWMA, which is the point of it. The close-to-close method behind the equal-weight figure is in how to calculate historical volatility.

The common mistake

The common mistake is to put λ on the new observation instead of the old variance: σ² = 0.06 × old + 0.94 × r². The result is an estimate that is almost entirely yesterday's squared return. On these ten days it ends at 0.160 per cent, because the last return was a quiet 0.15, and it read 1.577 per cent on day 5 and 0.128 per cent on day 3. A volatility that swings with every single day is not a model. The second mistake is to seed the recursion with one squared return; seed it with a sample variance over a reasonable window, or run it from far enough back that the seed's weight has decayed.

Regulatory VaR is different. Bank capital rules have long required an observation period of at least one year and, where observations are weighted, a weighted average time lag of at least six months. At λ = 0.94 the average lag is 15.7 days. EWMA is a risk management estimate, not a capital one.

Takeaway

Square the return, weight it by 1 − λ, add λ times yesterday's variance and take the root. At 0.94 the estimate has an 11.2-day half-life and here moves VaR 63.0 per cent in ten days. Report λ next to the number, and set the EWMA figure beside an equally weighted one so the committee sees how much of the move is the model's memory. The fund's own VaR, its correlation switch and its backtest are built in the free workbook for this case, and a ready-made sheet is in the VaR and expected shortfall template.

Questions readers ask

Why is lambda 0.94 for daily volatility?

It is the decay factor RiskMetrics published for daily data, chosen because it forecast volatility well across many markets. It puts 6 per cent of the weight on the latest squared return and gives a half-life of 11.2 days. It is a convention, not a law: on the illustrative fund, 0.97 gives a day-10 VaR of 10,125,646 against 11,786,624 at 0.94.

How do you annualise EWMA volatility?

Multiply the daily figure by the square root of the number of trading days, usually 252. A daily EWMA volatility of 0.603 per cent annualises to 0.603 x 15.87 = 9.58 per cent. Use the same day count as the returns: mixing calendar days with trading-day returns overstates the annual figure.

What is the difference between EWMA and GARCH?

EWMA is a GARCH(1,1) with the constant term set to zero and the two weights summing to one, so its forecast for every future day is simply today's estimate: 0.603 per cent here, with no pull back towards a long-run level. GARCH adds a mean-reversion term estimated from the data. The estimate itself still forgets shocks at the rate lambda sets, a half-life of 11.2 days at 0.94.

Read the whole case

This article is one calculation from Financial Risk Management. The book takes the same case from first principles to the decision, chapter by chapter, and every figure it prints is a live formula in the free companion workbooks.

Get the book on Amazon →Free companion files

Also on Amazon UK · Amazon Germany · Amazon France · Amazon Canada

Also on this site

Reading guide: corporate finance, valuation and markets → · All 1340 articles →

If this book helped, or didn’t, a few lines on Amazon are worth more than they look: they are what the next reader goes on. Write a review. The workbook stays free either way.