Z-Score Trading Strategy: Statistical Mean Reversion Across Equities & ETFs [2026]
Date Published
1. Normalizing Price Action with the Z-Score
Statistical Standard Deviation Bands in Python
The Z-score measures how many standard deviations an asset's current price is trading above or below its historical rolling mean: Z = (P_t - mu_n) / sigma_n. In normally distributed stationary series, 95.4% of all prices fall within ±2.0 standard deviations.
2. 10-Year Backtest Across ETFs and Equities
Evaluating Mean Reversion Bounds Across 10,000 Trades
Below is the empirical performance comparison between trading broad ETFs vs high-beta individual equities using Z-score mean reversion.
Asset Class | Rolling Window | Entry Threshold | Exit Target | Win Rate | Profit Factor Broad Index ETFs (SPY, QQQ) | 20 Days | Z <= -2.0 SD | Z = 0.0 SD | 68.4% | 1.62 Liquid Mega-Caps (AAPL, MSFT) | 20 Days | Z <= -2.2 SD | Z = 0.0 SD | 62.1% | 1.45 Small-Cap High-Beta Stocks | 20 Days | Z <= -2.5 SD | Z = 0.0 SD | 48.2% | 0.98 (Loss without filter) Filtered Small-Caps (Trend Filter) | 20 Days | Z <= -2.5 SD | Z = 0.0 SD | 58.6% | 1.54
Was this article helpful?
Your feedback directly guides the research and strategies we publish next.