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 Fibonacci Impulse Overextension Fade is a mean-reversion trading strategy built around the Fibonacci extension — a projection tool that measures where a price move may become statistically "overextended" — combined with a symmetric fractal swing detector and an Average True Range (ATR) volatility filter. In plain terms, it is a counter-trend fade: it waits for a fast, parabolic price spike to overshoot a calculated exhaustion level, then positions for the sharp snapback that often follows when momentum runs out.
The strategy is designed for fast, volatile trending markets — the kind of parabolic runs you commonly see in gold (XAU/USD), index CFDs, or crypto on lower timeframes such as M5 to M15. The underlying code is timeframe-agnostic and will run on whatever primary chart it is attached to, but its logic assumes an instrument capable of producing genuine impulse spikes. It reads a parabolic run as three legs: a measured impulse (A→B), a shallow pullback (B→C), and an accelerating extension leg (C→D). The 1.618 "golden" Fibonacci ratio projects where that extension leg statistically exhausts.
As a learning tool, this strategy is well suited to intermediate traders who want to study how Fibonacci extensions, swing-structure detection, and volatility filtering can be combined into a single rules-based system. It is framed here as a strategy analysis — a way to understand fade mechanics and structure-based exits — not as a profit opportunity. If you are new to counter-trend trading, it offers a clear, transparent example of how each condition is defined and tested before a trade is signalled.
How It Works
The strategy continuously maps market structure and only acts on a freshly-completed bar, which avoids repainting (signals changing after the fact). Here is the logic in plain English:
- Swing detection: Price swings are identified with a symmetric fractal — a pivot that is the highest high (or lowest low) with
PivotStrengthbars on each side. These pivots are fed through a zig-zag filter so that highs and lows strictly alternate, producing a clean A → B → C sequence. - Impulse qualification: The strategy measures the primary impulse leg (A→B). It only proceeds if that impulse is larger than
ImpulseAtrMultiple × ATR, ensuring it only fades genuinely volatile spikes rather than routine noise. - Extension projection: A Fibonacci extension is anchored to the impulse (A→B) and projected forward from the pullback pivot C to produce the exhaustion point D:
- Up pattern (low A → high B → higher-low C):
D = C + Ratio × (B − A), placing D above the impulse high. This signals a potential short fade. - Down pattern (high A → low B → lower-high C):
D = C − Ratio × (A − B), placing D below the impulse low. This signals a potential long fade. - Entry trigger: The strategy signals an entry only when a bar spikes through D but closes back inside it, and the close is in the fade direction (a bearish bar for shorts, a bullish bar for longs). This "pierce and reject" pattern may indicate that momentum has failed at the overextension level.
- Timeliness filter: The fade spike must occur within
ExtensionWindowbars of the C pivot. If the setup goes stale, it is discarded. Each anchored setup is traded only once. - Stop-loss logic: The stop is placed beyond the extreme of the spike (the higher of the bar high or D for shorts, the lower of the bar low or D for longs), padded by
StopAtrMult × ATR. This keeps risk anchored to actual volatility. - Take-profit logic: The target is a structure-based Fibonacci retracement back toward the C anchor, sized by
TpRetraceRatio. It aims for the snapback rather than a fixed pip target. - Breakeven lock: Once price travels
BreakevenAtr × ATRin favour of the position, the stop is pulled to the entry price to reduce downside on a trade that has moved into profit. - One position at a time: The strategy holds only a single open position per symbol and magic number, keeping exposure controlled.

Strategy Parameters
| Parameter | Default | Min | Max | Description |
|---|---|---|---|---|
| PivotStrength | 3 | 2 | 6 | Number of bars required on each side of a fractal pivot. Higher values detect larger, more significant swings. |
| ExtensionRatio | 1.618 | 1.20 | 2.60 | Fibonacci overextension ratio used to project the exhaustion point D. Defaults to the 1.618 "golden" extension. |
| ImpulseAtrMultiple | 2.00 | 1.00 | 6.00 | Minimum impulse size, expressed in ATRs. Filters out small moves so only volatile impulses are faded. |
| AtrPeriod | 14 | 7 | 28 | Lookback period for the ATR volatility measure used across sizing and filtering. |
| StopAtrMult | 1.00 | 0.30 | 3.00 | Stop-loss distance beyond the spike extreme, measured in ATRs. |
| TpRetraceRatio | 0.618 | 0.30 | 1.00 | Fibonacci retracement fraction toward the C anchor used to set the take-profit target. |
| ExtensionWindow | 25 | 5 | 80 | Maximum number of bars allowed between the C pivot and the fade spike before the setup expires. |
| BreakevenAtr | 1.00 | 0.00 | 3.00 | Profit distance, in ATRs, after which the stop is moved to breakeven. Set to 0 to disable. |
| Lots | 0.10 | 0.01 | 1.00 | Order volume (position size) in lots. |

Recommended Chart Settings
This strategy was designed with fast, volatile instruments in mind — for example XAU/USD (gold), index CFDs, or crypto on the M5 to M15 timeframes, where parabolic impulse spikes occur frequently enough to generate setups. Because the logic is timeframe-agnostic, you can attach it to other symbols and timeframes for study, but its behaviour is tuned to markets that produce genuine overextension moves.
Keep in mind that results will vary considerably across different instruments, timeframes, and market conditions. A parameter set that behaves one way on gold may behave very differently on a currency pair with lower volatility. Always test on historical data and a demo account before drawing any conclusions.
How to Install on MetaTrader 5
- Download the
.ex5file 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
Like any strategy, the Fibonacci Impulse Overextension Fade has clear strengths and equally clear limitations. Understanding both is part of using it responsibly.
Strengths:
- The entry logic is transparent and structure-based — every trade is anchored to a defined A/B/C swing sequence and a measurable exhaustion level, which makes the reasoning easy to study and audit.
- The ATR-based impulse filter and stop distance adapt to current volatility rather than relying on fixed pip values, which helps the logic remain consistent across changing conditions.
- The breakeven lock and single-position rule impose discipline on risk exposure.
Limitations:
- Fading a strong trend is inherently counter-trend. When a market is in a genuine runaway move, an overextension level can be pierced and keep going, which is exactly the scenario that produces losses for fade strategies. The "pierce and reject" confirmation reduces but does not eliminate this risk.
- Fractal and zig-zag pivot detection always confirms with a lag, since it needs bars to form on both sides of a pivot. In very fast markets the structure may be recognised only after the best fade entry has passed.
- Performance is sensitive to the
ExtensionRatio,ImpulseAtrMultiple, andExtensionWindowsettings. Over-tuning these to one historical period may not carry over to future conditions — a common pitfall known as curve-fitting. - On quiet, ranging, or low-volatility instruments the impulse filter may rarely trigger, producing few or no signals.
This is a tool for learning how overextension fades are constructed, not a hands-off system. Treat every signal as a hypothesis to be evaluated, not a certainty.
Risk Management Tips
Sound risk management matters more than any single entry rule. Whatever strategy you study, these general principles apply:
- Position sizing: Size each trade so that a full stop-loss represents only a small slice of your account. Many educators suggest risking no more than 1–2% of account equity per trade.
- Use a demo account first: Test the strategy on a demo or simulated account until you understand how it behaves in live conditions, including how it handles losing streaks.
- Understand drawdown: Every strategy experiences losing periods. Study the depth and duration of drawdown you might face, and ask yourself whether you could hold to the plan through it.
- Avoid over-leverage: Leverage magnifies losses as much as gains. Keep total exposure conservative, especially on volatile instruments like gold or crypto.
- Keep a trading journal: Record why each trade was taken and how it resolved. Over time this reveals whether the strategy suits your temperament and goals.
Remember that no combination of parameters removes risk — it only reshapes it. The goal of studying a strategy like this is to build understanding, not to chase 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: FibonacciImpulseOverextensionFade.ex5 (40 downloads)
- Source Code: FibonacciImpulseOverextensionFade.mq5 (37 downloads)
- Documentation: FibonacciImpulseOverextensionFade.pdf (39 downloads)