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 Reflex Oscillator Trend Shift is a momentum-shift trading strategy built around John Ehlers' Reflex indicator, a near-zero-lag oscillator he introduced in Stocks & Commodities magazine (February 2020). Traditional oscillators such as RSI or MACD lag price because they average older data; Ehlers designed Reflex specifically to lead, so it can flag the moment momentum genuinely turns rather than confirming it several bars later. This makes the strategy a trend-confirmed momentum system — it looks for a decisive shift in momentum and only acts when the smoothed price trend agrees.
Under the hood, Reflex is built in two stages. First, a SuperSmoother filter (a two-pole, Butterworth-style low-pass filter set to half the cycle length) strips tick noise out of price with almost no lag, producing a clean smoothed line. Second, the indicator draws a straight "chord" from the current smoothed value to the smoothed value a set number of bars ago, then measures how far the actual smoothed path bulged away from that chord over the window. That bulge is normalized by its own running root-mean-square (RMS), so the output becomes a scale-free oscillator that swings around zero — roughly between −3 and +3 on typical forex data — regardless of whether you are trading a low-volatility currency pair, gold, or an index.
As a learning tool, this strategy is well suited to intermediate traders who already understand basic indicator concepts and want to study how digital signal processing ideas — filtering, chords, and normalization — can be applied to markets. It is designed for markets that develop directional moves out of noise, and it is best viewed as an educational example of a modern, self-normalizing oscillator rather than a guaranteed edge.
How It Works
The strategy processes one completed bar at a time on your chosen timeframe. On each newly closed bar it updates the SuperSmoother line, recomputes the Reflex oscillator, and checks whether a fresh trade signal has appeared. Here is the logic in plain English:
- Signal calculation: The strategy maintains the SuperSmoother line recursively and computes the Reflex oscillator value from the last
ReflexLength+1 smoothed values. The oscillator is normalized so it swings around zero. - Long entry — the strategy signals a long when the Reflex oscillator makes a fresh upward cross through the
+Triggerband (its previous value was at or below the band and its current value is above it), and the SuperSmoother line is rising over the lastSlopeLookbackbars. Both conditions must be true on the same bar. - Short entry — the strategy signals a short when the Reflex oscillator makes a fresh downward cross through the
−Triggerband, and the SuperSmoother line is falling over the lastSlopeLookbackbars. - Why the trend filter matters: Requiring the smoothed price itself to slope in the same direction as the oscillator cross is what separates this approach from a raw oscillator. It is intended to filter out the counter-trend "head-fakes" that frequently trigger oscillator systems during choppy conditions.
- One position at a time: The strategy holds only one position per magic number. If a trade is already open, no new entry is taken until it closes.
- Stop-loss logic: When a trade opens, a protective stop is placed at a distance of
AtrMult × ATRfrom entry, where ATR (Average True Range) measures recent volatility. This adapts the stop to current market conditions — wider stops in volatile markets, tighter stops in calm ones. - Take-profit logic: The take-profit is placed at a
RewardRiskmultiple of the stop distance. With the default reward:risk of 2.0, the target sits twice as far from entry as the stop. - Exit management: There is no separate exit signal. Once a position is open, the fixed stop-loss and take-profit bracket manages the outcome, so every trade has a defined risk and a defined target from the moment it is placed.

Strategy Parameters
| Parameter | Default | Min | Max | Description |
|---|---|---|---|---|
| ReflexLength | 20 | 8 | 60 | The Reflex/SuperSmoother cycle length — the dominant window the oscillator measures. Larger values smooth more and react slower. |
| Trigger | 0.50 | 0.0 | 2.0 | How far the Reflex oscillator must cross from zero to count as a decisive momentum shift. Higher values demand stronger moves. |
| SlopeLookback | 3 | 1 | 10 | Number of bars back used to measure the SuperSmoother slope for trend confirmation. |
| AtrPeriod | 14 | 5 | 40 | The lookback period for the ATR calculation used to size the protective stop. |
| AtrMult | 2.0 | 1.0 | 5.0 | Stop-loss distance as a multiple of ATR. Larger values give the trade more room but risk more per unit. |
| RewardRisk | 2.0 | 1.0 | 5.0 | Take-profit distance expressed as a reward:risk multiple of the stop distance. |
| Lots | 0.10 | 0.01 | 1.0 | Trade volume in lots. Should be set relative to your account size and risk tolerance. |

Recommended Chart Settings
The Reflex Oscillator Trend Shift is timeframe-agnostic — every calculation uses the chart's primary timeframe, so it runs on whatever chart you attach it to. A common starting point for study is a major forex pair such as EUR/USD on an intraday timeframe like the H1 (1-hour) chart, which gives the SuperSmoother filter enough clean bars to work with while still producing a reasonable number of signals. Because the Reflex oscillator self-normalizes by its own RMS, the strategy also adapts naturally to instruments with very different volatility profiles, such as metals or indices.
That said, no single setting is optimal everywhere. Results will vary considerably across symbols, timeframes, and market conditions, so treat any configuration as a baseline for your own testing rather than a recommendation.
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
Every strategy has strengths and weaknesses, and understanding both is part of trading responsibly.
Strengths of this approach:
- The SuperSmoother filter reduces noise with very little lag, so the Reflex oscillator can flag momentum shifts earlier and more cleanly than a lagging RSI or MACD zero-cross.
- Self-normalization by running RMS makes the oscillator scale-free, so the same trigger settings behave consistently across instruments with wildly different volatilities.
- The mandatory trend-slope filter is designed to suppress the counter-trend false signals that plague raw oscillators.
- Every trade carries a predefined, volatility-adjusted stop and target, which enforces disciplined risk on each position.
Known limitations:
- Like all trend-confirmed systems, it may lag genuine reversals at the exact turning point, because the SuperSmoother slope has to confirm the direction before an entry is allowed.
- In range-bound or choppy markets, momentum shifts can trigger frequently and then fail, leading to a string of stop-outs even with the trend filter in place.
- A fixed take-profit does not adapt to trades that could run much further, so strong trends may be exited early relative to their full potential.
- Performance is sensitive to the
ReflexLengthandTriggersettings; a configuration that historically suited one symbol and timeframe may behave very differently on another.
The strategy is best understood as an educational illustration of a modern signal-processing oscillator, not as a finished, all-weather system.
Risk Management Tips
Sound risk management matters far more than any single indicator setting. Consider these general principles:
- Risk a small, fixed percentage per trade. Many educators suggest never risking more than 1–2% of your account on any single position. Set your
LotsandAtrMultso the distance to your stop equals that amount. - Test on a demo account first. Run the strategy on a demo or a backtest across different market conditions before considering any live capital, so you understand how it behaves during losing streaks.
- Understand drawdown. Every strategy experiences losing periods. Know the largest peak-to-trough decline you are willing to tolerate, and stop trading if it is exceeded.
- Size positions to your account, not to the default. The default 0.10 lots is illustrative; scale volume to your own account size and risk budget.
- Avoid over-optimization. Tuning parameters until a backtest looks perfect (curve-fitting) rarely holds up in live conditions. Prefer robust settings that work reasonably across several symbols and periods.
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: ReflexOscillatorTrendShift.ex5 (31 downloads)
- Source Code: ReflexOscillatorTrendShift.mq5 (31 downloads)
- Documentation: ReflexOscillatorTrendShift.pdf (35 downloads)