Disclaimer: This article is for educational and informational purposes only. It does not constitute financial or investment advice. Trading forex and CFDs carries significant risk of loss. Past performance of any strategy — including backtests — does not guarantee future results. Never trade with money you cannot afford to lose.
What Is This Strategy?
The Daily Range Exhaustion Reversal is a selective, counter-trend day-trading strategy built around the Average Daily Range (ADR) — one of the most widely used measurements in retail forex trading. The ADR is simply the average distance a currency pair travels between its high and low over a typical day. The core idea behind this strategy is that a market has only so much "fuel" in a single session: once today's realised range has already covered roughly a full typical day, the odds of the current one-directional leg extending much further tend to decline, and price often snaps back toward the middle of the day's range.
Rather than blindly selling because price is "up a lot" or buying because it is "down a lot," the strategy layers three independent filters that must all agree on the same freshly-closed bar. It combines the ADR exhaustion measure with a candlestick rejection pattern (a fresh daily extreme that gets rejected with a dominant wick) and the Relative Strength Index (RSI) — a momentum oscillator that flags overbought and oversold conditions. Only when all three line up does the strategy signal a fade of the exhausted move.
As a learning tool, this strategy is well suited to traders who want to study mean-reversion and counter-trend logic in a disciplined, rules-based way. Because it fades established moves rather than following them, it behaves very differently from trend-following systems and is a useful contrast for anyone building intuition about market structure. It is designed for liquid conditions and is intentionally selective — it produces relatively few signals, which is a deliberate part of its design.
How It Works
The strategy evaluates conditions only on a freshly-completed bar to avoid repainting — it never acts on a bar that is still forming. Three conditions must all be satisfied before an entry is signalled.
Entry — the three-part confirmation:
- 1. ADR exhaustion: The strategy tracks today's travelled range (the running day high minus the day low) and compares it to the Average Daily Range, calculated as the simple average of the previous AdrPeriod completed days' high-low ranges. A fade is only armed once today's range has reached at least AdrExhaustionPct of that ADR. The day map is built by aggregating bars from the chart's own timeframe by calendar date, so no separate daily series is needed.
- 2. Fresh extreme + rejection: The signal bar must print a new extreme for the day — a new day low for a long, or a new day high for a short — yet reject it. For a long, the bar closes back in the upper part of its own range with a dominant lower wick; for a short, it closes in the lower part with a dominant upper wick. This shows the opposing side stepped in exactly where the move ran out of ADR budget.
- 3. Stretched momentum (RSI): RSI must be oversold for a long (at or below
100 − RsiExtreme) or overbought for a short (at or aboveRsiExtreme), giving independent confirmation that the leg being faded is genuinely stretched.
Signal summary:
- Long signal: Day range has met the ADR budget, the signal bar makes a fresh day low, closes in its upper part with a dominant lower wick, and RSI is oversold. The strategy fades the sell-off by buying the rejection.
- Short signal: Day range has met the ADR budget, the signal bar makes a fresh day high, closes in its lower part with a dominant upper wick, and RSI is overbought. The strategy fades the rally by selling the rejection.
Stop-loss logic: Risk is structural and volatility-based, using the Average True Range (ATR) — a measure of recent price volatility. For a long, the stop is placed StopAtrMult × ATR below the rejected day low; for a short, the same distance above the rejected day high. The reasoning is direct: if price trades back through the very extreme that was supposed to hold, the reversal thesis has failed and the position is closed.
Take-profit logic: The target is set at RewardRatio multiplied by the structural stop distance, measured from the entry price. This keeps the reward-to-risk relationship consistent regardless of how wide the stop happens to be.
Break-even management: Once price has travelled BreakevenAtr × ATR in the trade's favour, the stop is pulled to the entry price. This is intended to reduce the risk on trades that move favourably before reaching the target. The strategy also holds only one position at a time per magic number and skips new entries when the spread is wider than MaxSpreadPoints.

Strategy Parameters
| Parameter | Default | Min | Max | Description |
|---|---|---|---|---|
| AdrPeriod | 14 | 5 | 40 | Number of completed days used to calculate the Average Daily Range. |
| AdrExhaustionPct | 1.00 | 0.60 | 1.60 | Fraction of the ADR the current day must already have travelled before a fade is armed. |
| RsiPeriod | 14 | 5 | 30 | Smoothing period for the RSI momentum oscillator. |
| RsiExtreme | 62.0 | 55.0 | 80.0 | RSI level treated as overbought (short); the oversold level is 100 − this value. |
| ClosePosFrac | 0.55 | 0.30 | 0.90 | How far the rejection close must sit from the rejected extreme, as a fraction of the bar's range. |
| AtrPeriod | 14 | 5 | 30 | ATR period used for the structural stop and break-even trigger. |
| StopAtrMult | 0.50 | 0.10 | 2.00 | Stop distance beyond the rejected day extreme, expressed in ATRs. |
| RewardRatio | 1.20 | 0.50 | 3.00 | Take-profit distance as a multiple of the structural stop distance. |
| BreakevenAtr | 0.70 | 0.10 | 2.00 | Favourable travel, in ATRs, required before the stop is moved to break-even. |
| MaxSpreadPoints | 40 | 1 | 300 | Maximum spread (in points) allowed when opening a new position. |
| Lots | 0.10 | 0.01 | 1.00 | Trade volume in lots. |
| Magic | 4726 | 0 | 9,999,999 | Unique identifier so the EA manages only its own trades. |

Recommended Chart Settings
The Daily Range Exhaustion Reversal was designed with liquid FX majors in mind — pairs such as EURUSD or GBPUSD on the M15 or M30 timeframe, the classic home of ADR-based day-trading. That said, the logic is symbol- and timeframe-neutral: the day map is built directly from the chart's own bars, so the strategy runs on whatever instrument and timeframe you apply it to. Because market behaviour, volatility, and typical daily ranges differ between instruments and change over time, results will vary across different symbols and market conditions. Always test any configuration on your own data before drawing conclusions.
How to Install on MetaTrader 5
- Download the .ex5 file from the link below
- Copy it to your MT5
MQL5\Expertsfolder - Restart MetaTrader 5 or refresh the Navigator panel
- Drag the EA onto a chart matching the recommended symbol and timeframe
- Configure the input parameters and enable Algo Trading
What to Consider Before Using This EA
Strengths. The main appeal of this approach is its selectivity. By requiring ADR exhaustion and a fresh-extreme rejection and an RSI extreme all on the same bar, setups are rare and highly filtered, which is intended to keep drawdown tight. The structural stop is logically anchored — it sits just beyond the price level that must hold for the trade thesis to remain valid — and the break-even mechanic aims to protect trades that start well. The ADR concept itself is intuitive and widely studied, making the strategy a good teaching example of mean-reversion thinking.
Limitations. Counter-trend systems face a fundamental challenge: strong, news-driven trends can blow straight through "exhausted" levels, and a day can extend well beyond its average range. When that happens, fading the move means trading against momentum. ADR is a backward-looking average, so during volatility regime shifts it can misjudge how much room a day really has. RSI can also remain overbought or oversold for extended periods in a persistent trend, so the momentum filter is a confirmation aid, not a guarantee.
Where it may underperform. Expect this strategy to struggle during trending or breakout environments, major economic releases, and periods of expanding volatility, where "exhaustion" repeatedly fails to hold. It is likely more comfortable in ranging, balanced conditions. Because signals are infrequent, meaningful evaluation requires a long test window rather than a handful of trades.
Risk Management Tips
Sound risk management matters more than any single entry rule. Consider limiting the capital you expose on any one trade to a small fraction of your account — many educational sources suggest risking no more than 1–2% per trade — and size your Lots setting accordingly rather than leaving it at a default. Understand your potential drawdown (the peak-to-trough decline in account equity) before committing real capital, and remember that a string of losing trades is a normal part of any strategy's behaviour.
Always begin on a demo account so you can observe how the strategy responds to live spreads, slippage, and different market regimes without financial risk. Keep the MaxSpreadPoints filter realistic for your broker, and review how the ATR-based stops behave on your chosen instrument. Treat every parameter as a subject for study, not a fixed answer, and never rely on a strategy you do not fully understand.
Risk Warning
Trading foreign exchange, CFDs, and other leveraged financial instruments involves substantial risk of loss and is not suitable for all investors. The strategies and tools discussed on this page are provided for educational purposes only and do not constitute financial advice, investment recommendations, or solicitation to trade. Always consult a qualified financial adviser before making trading decisions. Past backtest performance is not indicative of future results.
Downloads
- Expert Advisor: DailyRangeExhaustionReversal.ex5 (20 downloads)
- Source Code: DailyRangeExhaustionReversal.mq5 (18 downloads)
- Documentation: DailyRangeExhaustionReversal.pdf (22 downloads)