← Back to all strategies

Strategies / Mean Reversion

Mean Reversion

6 min read · Strategy guide

The opposite trade to momentum: buy what just dropped, sell what just ripped. Easy to backtest, brutal in trends.

What it is

A short-horizon mean reversion strategy bets that overshoots correct. Concretely: if a name has dropped 2 standard deviations below its short-window mean, buy it and wait for the snap-back. If it rips 2 sigma above, fade it. The horizons that work are short — hours, days, occasionally weeks — because the longer you hold, the more likely the “overshoot” was the start of a trend, not noise.

The seminal academic reference is Lehmann (1990), which documented weekly reversal in US equities and showed the spread between past losers and past winners produced positive returns at the 1-week horizon. Practitioner versions use RSI, Bollinger bands, or z-scores against a rolling mean.

The core formula

# z-score variant (most common)
mean_n = rolling_mean(price, N)
std_n  = rolling_std(price, N)
z      = (price - mean_n) / std_n

if z < -2: buy   # oversold
if z > +2: sell  # overbought

# RSI variant
if RSI(14) < 30: buy
if RSI(14) > 70: sell

# Exit: z back through 0, or fixed N-bar holding period

Two parameters control the whole thing: the lookback window N (typically 5–20 bars) and the entry threshold (1.5–2.5 sigma). Tighter thresholds fire more often with smaller per-trade edge; wider thresholds wait for bigger dislocations but rarely trigger.

When it works

Range-bound markets. If the underlying is oscillating around a stable level — sector ETFs in a consolidation, FX pairs in a low-vol regime, single names with no fresh news — the z-score signal extracts the noise around the mean and pays for it. Hit rates on the entry side often run 55–65% in benign tape, and the strategy compounds via lots of small wins.

Pairs trading (long one, short its cointegrated twin) is the classic institutional version: the spread mean-reverts even when the individual legs are trending, and you neutralise broad market direction in the process.

When it fails

Trends. The same signal that earns 60% hit rate in a range turns into a buy-the-dip-then-buy-the-next-dip-then-blow-up flowchart in a downtrend. Every oversold reading prints another oversold reading 3 bars later, and the strategy accumulates losers that never come back. March 2020 nuked every reversion model calibrated on 2017–2019 data; same story for any RSI-based equity strategy through Q4 2008.

The mechanism is asymmetric in a nasty way. Reversion wins are capped (price snaps back to mean — typically 1–2% per trade), but losses run open-ended (price keeps dropping until you stop out or capitulate). Hit rate stays high right up to the point the average loss eats the cumulative wins.

What to watch in the result card

  • Hit rate > 55%. Mean reversion should have a high hit rate by construction. If yours is below 55%, the entry threshold is wrong or the regime doesn't support the strategy. Sub-50% with a positive expectancy is suspicious — usually a single fat-tail win carrying everything else.
  • Calmar often low. Reversion strategies have decent Sharpe but underwhelming Calmar because the drawdowns (when they come) are sharp. CAGR / MaxDD ratios under 0.5 are common even on healthy reversion backtests.
  • Turnover high. 400–800%/yr is normal for daily reversion. Anything below 200% means your threshold is so wide the strategy barely trades — and the headline Sharpe is then a small-sample artefact.
  • IC decay should be fast. Reversion edge lives in the next 1–3 bars. If your IC is still positive at horizon 10, you've mis-classified a momentum signal as reversion.

Common mistakes

  • Backtesting only in low-vol periods. 2014–2019 is a reversion paradise. Run the same parameters through 2008, 2020, and 2022 before you trust the number.
  • No stop-loss. The hit rate looks great until one un-stopped trade gives back three months of P&L. Either set a hard z-score stop (e.g. exit if z hits -4) or a time stop (exit after N bars regardless).
  • Ignoring transaction costs. Daily-reversion turnover at 600%/yr means costs scale linearly with trades. A 1.2 gross Sharpe on a name with 5bps round-trip costs is often 0.5 net.
  • Trading reversion on names with persistent drift. Mega-cap tech post-2009 had so much underlying drift that even “oversold” readings were just noise inside an uptrend — you weren't fading a dislocation, you were betting against the trend. Test on sector-relative or pair spreads instead.

Further reading

  • Momentum → the inverse trade — what wins in the regimes that kill reversion.
  • Hit rate → why a 60% hit rate doesn't mean a strategy is profitable.
  • Lehmann (1990). Fads, martingales, and market efficiency. Quarterly Journal of Economics.