Despite their popularity, mainly in the retail space, mean reversion strategies have a huge optimization space due to a large number of possible rules and parameters.
Numerous accounts on social media present backtests of mean reversion strategies mainly for stocks and ETFs. Most of these strategies are over-optimized after adjusting parameters and/or adding filters and suitable entry/exit conditions.
In another article, I have referred to the fact that mean reversion encompasses a broad spectrum of strategies, not the simpler version of buying dips that is commonly presented on social media and in the blogosphere:
Although trend-following has a simpler interpretation, mean-reversion does not because it encompasses a wide range of strategies.
- Reversion to an indicator (for example, a moving average).
- Reversion to a price level.
- Reversion from overbought to oversold and the other way.
- Reversion due to negative autocorrelation.
- Statistical arbitrage and pair trading.
- Long-term fundamental reversion.
Most mean-reversion strategies in the retail space attempt to exploit #3 and #4, i.e., negative autocorrelation in daily returns.
The primary objective in developing mean-reversion strategies should be to minimize the optimization space; otherwise, the strategies will be sensitive to regime changes. This is challenging because mean-reversion edges are scarce. Most strategies are variations of “buying the dip” with different parameters and exit/entry rules. However, they are essentially the same as far as being sensitive to regime changes.
Below is a list of parameters that contribute to the huge optimization space. Note that not all parameters need to be present in a strategy.
Entry Signal Rules and Parameters The lookback period for entry signals |
Exit Signal Rules and Parameters Profit target function (simple percentage or ATR multiples) |
Position Size Fixed vs. dynamic |
Dynamic Exits Dynamic profit target function (simple percentage or ATR multiples) |
Market Filters Close above/below a moving average |
Volatility filters Volatility greater/lower than a certain threshold as a function of ATR multiples |
Rank function If there are more signals than allowed open positions, rank according to some metric |
Dynamic Vs. Static Rank Keep open position until closed, or exit if there are entries with higher rank |
Maximum Number of Positions The maximum number of allowed open positions. |
Even a small subset of the above possibilities maps to a huge optimization space. Depending on the strategy, variations in some parameters may not have a material impact. However, if we solely focus on the entry/exit, as is often the case, the outcome remains a vast optimization space.
Example
This is an example of a strategy with an unknown origin but with many different variations. Social media and the blogosphere have repeatedly employed this strategy as clickbait.
Universe
Nasdaq-100 (we use Norgate data with delistings.)
Maximum Number of Open Positions
10
Entry Rule
Buy at the close if a stock falls more than 3% for the day.
Market Filter
Buy stocks above their 200-day moving average.
Volatility Filter
Only consider stocks with ATR (5) > 3%
Rank Function
ATR(5) / Close
Exit Signals
10-day time-based exit.
The close is above the previous day’s high
Dynamic Profit Target
Last close + 0.5 × ATR(5)
We will not even attempt to calculate the degrees of freedom of this popular strategy; it is huge by any standards, but it’s surprising that it’s purported as a “simple strategy.”
Backtest (01/03/1994 – 01/30/2025)
Most amateur trading strategy developers find the above backtest remarkable. However, besides the fact that the bulk of the performance was realized in the 1990s bull market, which was a regime that will probably not repeat, there are other serious issues. For example, if we remove the market filter, this is what we get:
The maximum drawdown surged to nearly 72! The market filter has a purpose, but it incurs a cost. Without the filter, the strategy has matched the performance of the QQQ ETF buy-and-hold strategy since 2010, prior to the inclusion of transaction costs.
However, adding the filter, which “smoothed” performance during the dot-com period, delivers this.
The strategy underperformed the buy-and-hold (QQQ ETF) by a wide margin even before any transaction costs.
Moreover, the overoptimized nature of the strategy can be shown after an optimization run: we keep all parameters constant, and we only vary the volatility filter percentage from 2% to 10%.
The annualized return and the Sharpe ratio show a rapid decline in performance once ATR (5) exceeds 3%. The addition of the volatility filter appears to boost performance, but it is highly regime dependent.
We can go on and on to show how this strategy was overoptimized, and for this reason it is not robust, so it can fail. The more the parameters, the higher the probability that a strategy will fail. This popular strategy has so many parameters that, in our opinion, it will fail with probability 1.
Related article: The Huge Optimization Space of Trend-Following
Mean-reversion Subscription
Disclaimer: No part of the analysis in this blog constitutes a trade recommendation. The past performance of any trading system or methodology is not necessarily indicative of future results. Read the full disclaimer here.
Charting and backtesting program: Amibroker. Data provider: Norgate Data
If you found this article interesting, you may follow this blog via RSS or Email, or on X.