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 Inverse Fisher Trend Pullback is a with-trend pullback strategy for MetaTrader 5 that uses Ehlers' Inverse Fisher Transform (IFT) of the Relative Strength Index (RSI) as its timing engine, combined with a slow trend filter for direction. The RSI is a momentum oscillator that measures the speed and size of recent price changes on a 0–100 scale; the Inverse Fisher Transform is a mathematical function, tanh(x), that squashes a bounded input toward its extremes of −1 and +1. Small inputs stay near zero, while stretched inputs snap hard to the rails. Feeding a scaled RSI through this transform converts a soft, laggy oscillator into a crisp, near-bimodal signal that sits quietly during choppy markets and prints a sharp, unambiguous turn the moment a stretched move rolls over.
The strategy is designed for trending markets where a clear directional bias exists but price frequently pauses and retraces before resuming. Rather than trying to fade the dominant trend, this approach waits for a temporary dip inside an uptrend (or a temporary rip inside a downtrend) to finish, then times an entry as momentum turns back in the direction of the larger move. The idea being explored is that the cleanest edge in a trending market is rejoining the trend after a pullback exhausts, and that the saturation geometry of the Inverse Fisher Transform can mark that exhaustion bar more decisively than a raw oscillator.
As a learning tool, this strategy suits intermediate traders who already understand oscillators, moving averages, and Average True Range (ATR) based risk placement, and who want to study how signal-processing transforms can sharpen classic indicators. It is best viewed as a framework for analysis and experimentation on a demo account, not as a shortcut to results.
How It Works
The strategy evaluates its logic once per closed bar to avoid reacting to unfinished price action. On each new bar it rebuilds its Inverse Fisher signal and checks the trend regime before deciding whether to act.
Building the signal:
- Calculate the RSI over
RsiPeriodcloses. - Scale and centre it:
v1 = 0.1 × (RSI − 50), which recenters the oscillator around its 50 midline and maps it roughly into a −5 to +5 range. - Smooth
v1with a weighted moving average (WMA) overSmoothPeriodreadings, where the newest value carries the heaviest weight. This classic Ehlers pre-filter reduces jitter. - Apply the Inverse Fisher Transform:
ift = tanh(v2), producing a bounded value between −1 and +1. - A reading below −
SignalLevelmarks an oversold pocket; a reading above +SignalLevelmarks an overbought pocket.
Determining trend direction (direction comes from the trend filter, never from the oscillator):
- Compute a slow trend EMA over
TrendPeriodcloses and measure its slope overSlopeLookbackbars. - Uptrend: the last close is above the trend EMA and the EMA slope is positive.
- Downtrend: the last close is below the trend EMA and the EMA slope is negative.
Entry conditions the strategy signals:
- Long: in a confirmed uptrend, when the IFT crosses up through −
SignalLevel(previous value at or below the level, current value above it) — signalling that an oversold dip is finishing and price is turning back with the trend. - Short: in a confirmed downtrend, when the IFT crosses down through +
SignalLevel— signalling that an overbought rip is finishing and price is rolling back over with the trend.
Exit logic:
- Early momentum exit: a long position is closed if the IFT crosses down through +
SignalLevel(momentum has reached the far rail and rolled over — a natural profit-take at exhaustion). A short is closed if the IFT crosses up through −SignalLevel. - Stop-loss: placed
AtrMultSl × ATRaway from entry. - Take-profit: placed
AtrMultTp × ATRaway from entry.
Because both the stop and target are expressed in ATR units, the risk logic scales automatically with each symbol's and timeframe's volatility. The strategy also skips new entries when the current spread exceeds MaxSpreadPoints, and it holds only one position per magic number at a time.

Strategy Parameters
| Parameter | Default | Min | Max | Description |
|---|---|---|---|---|
| RsiPeriod | 14 | 5 | 30 | RSI lookback fed into the Inverse Fisher Transform. |
| SmoothPeriod | 9 | 3 | 20 | Weighted-moving-average smoothing of the scaled RSI before the transform. |
| SignalLevel | 0.50 | 0.20 | 0.85 | Saturation threshold on the IFT; a reading beyond ±this marks a stretched pocket. |
| TrendPeriod | 100 | 30 | 300 | Slow trend EMA period; trades are only taken in its direction. |
| SlopeLookback | 5 | 2 | 20 | Bars used to measure the trend EMA's slope for regime confirmation. |
| AtrPeriod | 14 | 5 | 40 | ATR period used for stop-loss and take-profit distances. |
| AtrMultSl | 1.80 | 0.50 | 5.00 | Stop-loss distance expressed in ATRs. |
| AtrMultTp | 3.00 | 0.50 | 8.00 | Take-profit distance expressed in ATRs. |
| MaxSpreadPoints | 30 | 1 | 200 | Skip new entries when the current spread (in points) is wider than this. |
| Lots | 0.10 | 0.01 | 1.00 | Order volume in lots. |
| Magic | 20713 | 0 | 9,999,999 | Magic number identifying this EA's positions. |

Recommended Chart Settings
This strategy was designed with a trending major currency pair such as EURUSD or GBPUSD in mind, on the H1 or H4 timeframe, in a swing-trading style. These higher timeframes give the slow trend EMA room to define a meaningful regime and allow pullbacks to develop and exhaust with enough structure for the Inverse Fisher signal to time cleanly.
That said, no single configuration is optimal everywhere. Results will vary across different symbols, timeframes, broker spreads, and market conditions. Treat the defaults as a starting point for study rather than a finished setting, and always test any changes on a demo account across a range of market environments 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 of this approach. The Inverse Fisher Transform's key benefit is decisiveness. By saturating stretched readings toward its rails, it converts a mushy RSI band into a sharp turn signal, which can help time the end of a pullback rather than guessing somewhere inside it. Pairing that timing with a slow trend filter enforces discipline: the strategy only rejoins the dominant move and never tries to pick a top or bottom against it. ATR-based stops and targets keep risk proportional to current volatility, and the spread filter helps avoid entering during costly, illiquid conditions.
Known limitations. Like all trend-following pullback systems, this approach depends on a trend actually being present. In ranging, sideways, or choppy markets, the trend filter may flip direction frequently, producing whipsaw entries that get stopped out repeatedly. The Inverse Fisher signal is also derived from RSI, which remains a lagging, price-based indicator — smoothing and transforming it cannot eliminate lag entirely, and sharp reversals can still catch the strategy on the wrong side. During strong, uninterrupted trends with shallow pullbacks, the oscillator may not stretch far enough to trigger, causing missed moves.
Where it may underperform. Expect reduced effectiveness during low-volatility consolidations, around major news releases that spike spreads and gap price, and on symbols or timeframes where noise dominates structure. The fixed one-position-per-magic design also means the strategy does not scale into or pyramid positions, which limits how it participates in extended runs. Understanding these trade-offs is part of evaluating whether the approach fits your own analysis and risk tolerance.
Risk Management Tips
Sound risk management matters far more than any single indicator. Consider these general principles as you study this strategy:
- Position sizing: size trades so that a losing trade costs only a small, predefined fraction of your account. A common educational guideline is to risk no more than 1–2% of account equity per trade.
- Use a demo account first: test the strategy and any parameter changes in a risk-free simulated environment until you understand its behaviour across different market conditions.
- Understand drawdown: every strategy experiences losing streaks. Study the depth and duration of drawdown you would need to tolerate, and confirm it fits your temperament and capital.
- Respect the stops: the ATR-based stop-loss is there to cap losses. Avoid the temptation to widen or remove it after entry.
- Diversify and avoid overexposure: running one EA across many correlated pairs can multiply hidden risk. Keep total exposure in check.
- Keep expectations realistic: treat this as a tool for learning about signal transforms and trend-pullback logic, not as a source of certainty.
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: InverseFisherTrendPullback.ex5 (51 downloads)
- Source Code: InverseFisherTrendPullback.mq5 (54 downloads)
- Documentation: InverseFisherTrendPullback.pdf (59 downloads)