Skip to content

Mean Reversion Strategies

Difficulty intermediate

Concept

Mean reversion is based on the observation that prices tend to return to their average over time. After extreme moves, prices typically revert toward the mean.

price                                                                   
  │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─  +2σ (sell)
  │            ●           ●←─ short entry                              
  │          ╱   ╲       ╱   ╲                                          
  │        ╱       ╲   ╱       ╲                                        
  │ ─ ─ ─╱─ ─ ─ ─ ─ ●─ ─ ─ ─ ─ ─ ●─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─  μ (mean)    
  │   ╱                            ╲       ╱                            
  │ ╱           covering           ╲     ╱                              
  │             at mean →           ╲   ╱                               
  │ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─●─ ─ ─ ─ ─ ─ ─ ─ ─ ─ ─  −2σ (buy) 
  │                                   ↑                                 
  │                              long entry                             
  └──────────────────────────────────────────────────────→ time         

  rule: fade extremes back toward μ · exit when price re-touches μ      
  works ONLY when series is stationary — test before deploying          

Core Assumption

Price_t = μ + ε_t
where ε_t is mean-reverting noise

When |ε_t| is large, expect reversion toward μ

where: Price_t observed price at time t · μ long-run mean · ε_t stationary deviation from mean. does: formalizes the mean-reversion bet — when the residual ε_t is far from zero, expect price to drift back. Valid only when the series passes a stationarity test (ADF, KPSS).

Stationarity Requirement

Mean reversion only works if the series is stationary — constant mean, constant variance, no trend. Test with Augmented Dickey-Fuller (ADF) or KPSS; reject the unit-root null before deploying. Non-stationary series will trend away from the assumed mean and produce unbounded losses. Re-test on a rolling window — stationarity can break with regime change.

Strategy 1: Bollinger Band Reversion

Entry Long: Price touches lower Bollinger Band
Entry Short: Price touches upper Bollinger Band
Exit: Price returns to middle band (SMA)
Stop: Beyond the band (1.5-2x band width)

Strategy 2: RSI Reversion

Entry Long: RSI < 30 (oversold) and crosses back above
Entry Short: RSI > 70 (overbought) and crosses back below
Exit: RSI crosses 50
Stop: New extreme beyond entry

Strategy 3: Z-Score Reversion

Z = (Price - MA) / StdDev

Entry Long: Z < -2
Entry Short: Z > +2
Exit: Z crosses 0
Stop: Z exceeds ±3

where: Z z-score · Price current price · MA rolling moving average · StdDev rolling standard deviation. does: normalizes price deviation in σ units so thresholds are comparable across assets. Workhorse trigger for systematic mean-reversion entries and stops.

Strategy 4: Pairs Trading

See Pairs Trading for detailed implementation.

Strategy 5: Gap Reversion

Overnight Gap = Open - PrevClose

If gap > 2× ATR → expect gap fill
Entry: At open
Target: Previous close
Stop: Beyond gap extreme

Half-Life of Mean Reversion

From Ornstein-Uhlenbeck process:
Half-life = ln(2) / θ

where θ is the speed of mean reversion

where: Half-life expected time to close half the gap to the mean · ln(2) ≈ 0.693 · θ OU mean-reversion speed parameter (estimated from regression of Δprice on price). does: sets the holding-period horizon for a mean-reversion strategy. Short half-life (hours) → intraday; long (weeks) → swing. If half-life > intended holding period, edge dies before reversion completes.

Risk Management

Parameter Guideline
Entry Threshold 2 standard deviations
Stop Loss 3 standard deviations
Position Size 1-2% risk per trade
Max Concurrent 5-10 positions (diversify)
Holding Period Short (days, not weeks)

When Mean Reversion Fails

Condition Problem Solution
Strong trend Price doesn't revert Trend filter
Structural break Mean has shifted Adaptive lookback
Low volatility No edge Volatility filter
Earnings/news Fundamental change Avoid event periods

Enhancing Mean Reversion

  1. Volatility Filter — Only trade when vol is in normal range
  2. Trend Filter — Don't trade against strong trends
  3. Volume Confirmation — Reversal on high volume is stronger
  4. Multiple Timeframes — Confirm on higher TF
  5. Candlestick Confirmation — Wait for reversal candle

Performance Expectations

Metric Typical Range
Win Rate 55-70%
Profit Factor 1.2-1.8
Sharpe Ratio 0.5-1.5
Max Drawdown 10-25%
Avg Holding Period 1-5 days

Practical Guidelines

  1. Test for Stationarity — Don't apply to trending assets
  2. Define the Mean — Moving average, fair value, or cointegrated pair
  3. Size Appropriately — Mean reversion has fat tails (big losses possible)
  4. Exit Discipline — Don't hold hoping for more reversion
  5. Monitor Regime — Mean reversion works best in range-bound markets

Next Steps