Learn › Risk management

Volatility Clustering: Big Moves Follow Big Moves, and GARCH Made Simple

Tomorrow's direction is close to unpredictable, but the size of moves persists. Evidence from a GARCH simulation and gold, EURUSD and BTC data, plus how to size trades.

Intermediate 11 min read 22 October 2026

What you will learn
  • The direction of returns barely relates to the previous day, but the size of moves is clearly and persistently related
  • GARCH says today's volatility = a baseline + yesterday's shock + yesterday's volatility
  • α+β tells you how slowly a shock fades. Half-life = ln(0.5) ÷ ln(α+β), about 34 days at 0.98
  • Keep risk per trade constant, cut the lot when the market is wild, and never judge a system from a calm month

If the market swung hard yesterday, it will probably swing hard today. If yesterday was quiet, today will probably be quiet too. But the direction, up or down, is close to impossible to guess from yesterday. This is called volatility clustering. It is one of the most robust facts about financial markets, and it bears directly on your lot size, your Stop loss distance and how you judge whether a trading system still works.

Direction is forgotten, size is remembered

Benoit Mandelbrot noticed back in 1963 that large price changes tend to be followed by large changes of either sign, and small changes by small ones.

The tool to measure this is autocorrelation: how much today’s value goes the same way as the value k days ago. Zero means unrelated, positive means same direction. We measure two things:

  • Returns r (positive or negative), which answer the question about direction
  • Size of returns |r| (sign removed), which answer the question about strength

We built a simulated price series of 2,000 days with a GARCH(1,1) model (the formula is in the next section), with α = 0.08, β = 0.90 and long-run volatility of 1% a day. The rules are identical every day and there is no regime change at all, yet the result has both calm spells and storms.

Price (simulated GARCH series) Calm σ ≈ 0.63% Storm σ ≈ 1.38% Daily returns +5% 0 −5% Dashed = ±2 times the volatility the model expected that day
A price series simulated with GARCH(1,1) (α = 0.08, β = 0.90, long-run volatility 1% a day), not a real market. The rules are the same every day, yet big bars still arrive in groups. Calm spells and storms come from the same mechanism.

Measuring autocorrelation on the same series for lags 1 to 20:

Direction: autocorrelation of returns r Size: autocorrelation of |r| Chance band ±0.044 00.10 00.10 15101520lag
Autocorrelation of the 2,000-day simulated series. Direction (top) is close to zero at every lag. Size (bottom) is positive and lingers for weeks. The dashed lines are the band pure chance can produce.
  • Returns r: all 20 lags sit inside the ±0.044 band (1.96 ÷ √2,000, the size pure chance can produce). The furthest is 0.034
  • Size |r|: 16 of 20 lags sit above the band. Lag 1 = 0.101, lag 10 = 0.108, still high two weeks later
  • Control series, normal random draws at a constant 1% volatility: no lag of |r| leaves the band, so the clustering really comes from the GARCH mechanism

Another angle on the same simulation: the day after the 10% biggest moves averaged a 0.827% move, the day after the 10% quietest days averaged 0.670% (the average of all days is 0.698%). Yet after 106 big up days, the next day rose only 48.1% of the time, close to a coin flip.

Markets barely remember direction, but they remember size. Tomorrow’s volatility can be estimated. Tomorrow’s direction cannot.

Real data: gold, EURUSD and BTC

We used real daily bars we keep from price feeds (a broker feed for gold and EURUSD, a crypto exchange feed for BTC), with close-to-close log returns. Weekend bars are dropped for gold and EURUSD. BTC trades every day, so all 7 days are used.

MarketPeriodDaysr lag 1|r| lag 1|r| average of lags 1–20Chance band
Gold XAUUSDJan 2016 – Jul 20262,7180.0050.1560.142±0.038
BTCJan 2019 – May 20262,707−0.0730.1650.092±0.038
EURUSDMar 2024 – Jul 2026592−0.0100.1370.055±0.081

Gold’s |r| is above the band at all 20 lags (lowest 0.089), while r never goes beyond 0.053. BTC’s |r| is above the band at 19 of 20 lags, while its r at lag 1 is slightly negative (−0.073). The EURUSD sample is short, so its band is wide, but |r| at lag 1 still clears it.

The clearest picture: of gold’s 6 biggest daily moves in this data (2016–2026), 5 fall between October 2025 and February 2026, and 4 are less than 10 days apart: 28 Jan +6.38%, 30 Jan −10.60%, 5 Feb −6.35%, 6 Feb +5.47%. Big after big, with the sign flipping.

Gold’s daily volatility (the standard deviation of daily returns) also moves in clear spells: 0.63% in 2017, 0.60% in 2018, 1.23% in 2020, 1.20% in 2025 and 2.15% in 2026 (to 2 July). This is past price data, not a system test, and it says nothing about where volatility goes next.

GARCH without the heavy math

Robert Engle proposed the ARCH model in 1982 (part of the work behind his 2003 Nobel prize in economics), and Tim Bollerslev extended it to GARCH in 1986. GARCH(1,1) in plain words:

Today’s variance = baseline (ω) + α × (yesterday’s return)² + β × yesterday’s variance

  • ω a small baseline that pulls volatility back to its long-run level
  • α how strongly the market reacts to yesterday’s news or shock
  • β how much of the old volatility “sticks” into today

Long-run volatility = √(ω ÷ (1 − α − β))

Example, with the same values as the simulation: ω = 0.000002, α = 0.08, β = 0.90. Long-run volatility = √(0.000002 ÷ 0.02) = √0.0001 = 1%. Say yesterday GARCH expected 1% volatility (variance 0.0001).

  1. If yesterday price moved 3%: 0.000002 + 0.08 × 0.0009 + 0.90 × 0.0001 = 0.000002 + 0.000072 + 0.00009 = 0.000164 → √ = 1.28%
  2. If yesterday price moved only 0.2%: 0.000002 + 0.08 × 0.000004 + 0.00009 = 0.0000923 → √ = 0.96%

A wild day lifts expected volatility at once. A quiet day lets it drift down. GARCH ignores the sign: up 3% and down 3% have the same effect.

The half-life of a shock

After a wild day, the excess volatility (the part above the long-run level) fades by a factor of (α+β) each day. The easiest number to use is the half-life, the number of days until half of the excess is gone.

Half-life = ln(0.5) ÷ ln(α + β)

α + βHalf-life (trading days)
0.906.6
0.9513.5
0.9722.8
0.9834.3
0.9969.0

Check: 0.98 to the power 34 = 0.503, so half really is left.

Share of excess volatility remaining α+β = 0.98 · half-life 34.3 daysα+β = 0.95 · half-life 13.5 daysα+β = 0.90 · half-life 6.6 days Half left 100%50%0 0255075100 Days after a wild day
Diagram from the formula (α+β) to the power of the number of days. The closer α+β is to 1, the longer a shock lingers. The dots on the dashed line mark where half the excess is gone.

We made a rough GARCH(1,1) estimate on the same daily data (grid search, normal likelihood, long-run volatility pinned to the sample’s). Gold 2016–2026 gives α ≈ 0.09, β ≈ 0.88, sum 0.97, a half-life of about 25 trading days, a little over a month. BTC gives α ≈ 0.10, β ≈ 0.85, sum 0.95, a half-life of about 13 days (calendar days, since BTC trades every day). These values move with the sample and the method. Use them as a rough picture, “a storm lingers for weeks to a month, not a day or two”, not as precise numbers. And if the market shifts permanently to a new volatility level in the middle of the sample, the estimated α+β tends to come out too high.

Volatility runs on a clock: hours and weekdays

Besides clustering, volatility rises and falls with the time of day in a repeating pattern, because big markets open and close and major news comes out on schedule.

EURUSD Gold XAUUSD Peak 21:00 · EURUSD 1.66× · gold 1.62× EURUSD low 04:00–06:00 · 0.50× 0.5×1×1.5× 00:0004:0008:0012:0016:0020:0023:00Thai time (bar start hour) · 1× = all-day average
Average H1 bar range (High − Low as a % of the open) for each hour, relative to the all-hours average. Real data from a broker price feed we keep, 26 Mar 2024 to 2 Jul 2026, weekends removed. Gold has fewer bars from 04:00 to 06:00 because of the daily trading break.
  • EURUSD is quietest from 04:00 to 06:00 Thai time (0.50 times its average) and widest at 21:00 (1.66 times), a 3.3-fold gap
  • Gold is lowest at 11:00 (0.64 times) and highest at 21:00 (1.62 times), a 2.5-fold gap, with another bump at 08:00 (1.35 times)
  • London and New York opening times in Thai time shift by 1 hour with daylight saving (DST). This data mixes both periods, so the real peaks are sharper than in the chart. See the timetable in Forex market hours in Thai time

Weekdays differ much less. Over the same period, gold’s average daily bar range was Monday 1.89%, Tuesday 1.84%, Wednesday 1.79%, Thursday 1.93% and Friday 1.95% (less than 10% apart), and EURUSD stayed between 0.62% and 0.67%. More on weekdays in Day-of-week seasonality, tested.

A small trap: measure the autocorrelation of |r| directly on hourly bars and you get a bump at 24 hours (EURUSD lag 12 = 0.025 but lag 24 = 0.144). That is the clock, not clustering. Divide each bar’s |r| by the average for its hour first, and lag 12 = 0.091, lag 24 = 0.099. The clustering is still there once the clock is taken out.

In practice 1: size positions by volatility

If volatility comes in spells, a fixed lot means a risk per trade that is not fixed. The fix is to set the Stop loss by volatility, then work the lot back from the money you are willing to lose.

Example on EURUSD: a 10,000-dollar account, risking 1% = 100 dollars, 1 lot = 10 dollars per pip, Stop loss at 1.5 times ATR.

ATRStop losslot = 100 ÷ (SL × 10)If you always trade 0.13 lot
Calm market50 pips75 pips0.133 → 0.13Risk 98 dollars (≈1%)
Wild market120 pips180 pips0.056 → 0.05Risk 234 dollars (2.3%)

A trader on a fixed lot more than doubles their risk in exactly the stretch where big back-to-back losses are most likely. Always round down, and if the result is below the minimum lot, the safe choice is to skip that trade. Try your own numbers in the lot calculator. The full method is in Position size from your Stop loss, and the crypto side is in Crypto position sizing by volatility.

Keep the risk per trade constant. The lot is what has to change.

In practice 2: ATR adapts, but always lags

ATR is a Wilder average of True Range. A new bar carries only 1/14 of the weight (at the default of 14). So an ATR-based Stop loss widens by itself when the market gets wild, which is exactly what volatility clustering says you should do. But ATR moves step by step.

  • Going into a storm, the first wild bar lifts ATR only partly, so a Stop loss based on that day’s ATR is still too tight for the next day
  • Coming out of a storm, ATR stays high for weeks. Stops are wider and lots smaller than needed. That is not dangerous, just over-cautious

Rule of thumb: after an unusually wide bar, assume the next day is likely wide too. Don’t tighten your Stop loss because of one quiet bar, and if you do enter after a wild day, use a lot based on the ATR that already includes that bar.

In practice 3: never judge a system from a calm month

In the GARCH simulation, where the rules never change over 2,000 days, realised volatility over the last 21 days (about a month) ranged from 0.25% to 1.57%, a 6.4-fold spread, and sat between 0.60% and 1.18% 80% of the time. Real gold is wider still: from 0.27% (June 2018) to 3.76% (February 2026).

What follows:

  • On a fixed lot, monthly profit and loss scale with volatility. A calm month shows a smaller Drawdown than the real one
  • One calm month is no proof a system is safe, and one stormy month is no proof it is broken. The same market under the same rules swings between both
  • Test across calm and stormy spells. See How many trades is enough and Monte Carlo, and allow for days far from the average as in Fat tails and black swans

Breakouts and mean reversion behave differently across volatility regimes

High volatility does not mean a trend. The autocorrelation of r stays near 0 even in storms. But volatility changes the arithmetic of these two kinds of systems in opposite ways.

  • Breakout and trend-following systems need price to travel far enough to pay for the spread and the frequent stop-outs. When moves are big, fixed costs become a smaller share of the distance price travels
  • Mean-reversion systems live on price swinging back. With a fixed-distance Stop loss, storms sweep the stop more often through noise, and in calm spells the profit target shrinks until the spread eats a big share of it

In our own measurements on gold (XAUUSD) M1, the median width of big price swings (measured on 1-minute bars) as a % of price was 0.76% in 2022, 0.64% in 2023, 0.89% in 2025 and 1.18% in 2026. Several unrelated systems we tested on gold M1 mostly lost money or broke even in 2022–2024, were mixed in 2025 and clearly made money in 2026, as described in Market regime change. Backtests for 2022–2025 used ticks generated from 1-minute bars; only 2026 used real ticks. Backtests and past results do not predict future results.

Rule of thumb: record volatility (for example ATR as a % of price) on every trade in your trading journal, then split results by volatility level. You will see which regime your system survives in and which one it loses in, before the market shows you.

What GARCH cannot tell you

  • Direction. Nothing at all about up or down
  • News jumps. The first shock from news or a Monday gap happens before the model knows. GARCH only reacts afterwards. See News spikes and slippage and Weekend gap risk
  • Permanent level shifts. GARCH(1,1) pulls back to a single long-run level. If the market moves to a new level, the model expects a return that comes too fast
  • Asymmetry. In stock markets, falls tend to raise volatility more than rises. Basic GARCH doesn’t capture this. In currencies the effect is less clear

Common mistakes

  • Thinking high volatility = trend. Big size says nothing about direction. Gold’s early-2026 storm in our data mixed big up days with big down days
  • Trading the same lot all the time. Risk per trade then grows by itself in the most dangerous stretch
  • Tightening the Stop loss after one quiet bar. A shock has a half-life of weeks, not hours
  • Judging a system from one month. A calm month makes a system look safe, a stormy month makes it look broken, even when it’s the same system in the same market
  • Comparing volatility across hours without looking at the clock. ATR measured at 05:00 and at 21:00 Thai time can differ threefold without the market changing character at all
Try it with your own numbers

Frequently asked questions

Does high volatility mean the market is trending?

No. Volatility tells you the size of moves, not their direction. A wild stretch can be big up days mixed with big down days. In our gold data from late January to early February 2026, the four biggest days included both gains and losses.

Do I need to calculate GARCH myself?

No. What you need is the idea that volatility comes in spells and fades slowly. The ATR on every platform is enough for setting Stop loss and lot size, as long as you remember that ATR always lags reality.

When in the day is volatility highest?

In the hourly data we keep (March 2024 to July 2026), both EURUSD and gold were widest from 20:00 to 22:00 Thai time (UTC+7), and EURUSD was quietest from 04:00 to 06:00. The times shift with daylight saving in Europe and the US.

This is general education, not investment advice. Trading is risky and you may lose all of your capital.

Tools Chat on LINE