Fibonacci Extension Indicator: ABC Legs Projected Forward

Written by Dominic Walsh · Published · Last updated

The fibonacci extension indicator answers a question retracements cannot. Once a move resumes, how far might it run? It finds an ABC swing sequence and measures the AB leg. Then it projects that distance forward from point C at a set of Fibonacci multiples. The 1.618 level gets the boldest line, because that is the one most traders watch.

This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.

Platforms MT4 (.ex4) + MT5 (.ex5)
Chart window Main price chart
Plots 7: Swing A, Swing B, Swing C, Ext 1.272, Ext 1.414, Ext 1.618, Ext 2.000
Alerts popup, push notification, email
Inputs 17

What the Fibonacci Extension Indicator draws on the chart

Swing A, Swing B and Swing C mark the three pivots with silver, gold and dodger blue dots.

Ext 1.272 and Ext 1.414 draw as thin green lines above or below point C.

The 1.618 projection draws thicker in orange, since that is the level most traders act on.

Ext 2.000 draws in tomato, and trend line objects with text labels carry the projections forward.

  • Swing A: arrow, silver, width 2, arrow code 159
  • Swing B: arrow, gold, width 2, arrow code 159
  • Swing C: arrow, dodger blue, width 2, arrow code 159
  • Ext 1.272: line, medium sea green, width 1
  • Ext 1.414: line, lime green, width 1
  • Ext 1.618: line, orange, width 2
  • Ext 2.000: line, tomato, width 1
Fibonacci extension indicator on EURUSD H1 with ABC swings and projected extension levels
Fibonacci extension indicator on EURUSD H1 with ABC swings and projected extension levels

How the Fibonacci Extension Indicator calculates its values

Collecting confirmed swings

IsSwingHigh and IsSwingLow scan with `InpSwingLeft` and `InpSwingRight`, both `3` by default. Each confirmed pivot stores its price in sw_price and its direction in sw_type. `InpLookback` caps the history at `500` bars. That bounds the work without losing recent structure.

Recognising an ABC sequence

Three consecutive stored swings become a candidate. bull requires the pattern low, high, low across a_pos, b_pos and c_pos, while bear requires high, low, high. Checking the type sequence rather than just the prices is what stops the code pairing two highs and calling it a leg.

Projecting from point C

ab takes MathAbs of the price difference between B and A. Each extension then lands at base_price plus ab times the level for a bullish sequence, or minus it for a bearish one. `InpExt1` through `InpExt5` supply the multiples. t_end pushes the drawn lines `InpProjectBars` into the future, so a level is visible before price reaches it.

How to read the signals

The three dots show which swings produced the projection. Check them before trusting a level.

Levels sit above point C in a bullish sequence and below it in a bearish one.

The orange 1.618 line is drawn thicker on purpose, since it is the level most traders act on.

Projections appear as soon as C confirms, which means they are visible well before price arrives.

Alert channels in this build: popup, push notification and email, one message per closed bar.

Three channels ship here: a terminal popup through `InpEnablePopup`, a mobile notification through `InpEnablePush`, and email through `InpEnableEmail`. There is no sound option. `InpAlertOnHit` governs the lot and its comment is specific: the message follows price reaching the 1.618 level, not any of the others.

Every Fibonacci Extension Indicator input

Core settings

Setting What it does Default
InpSwingLeft Swing left bars. Bars on the older side of a swing, default `3`, with `InpSwingRight` doing the same for the newer side. 3
InpSwingRight Swing right bars (right-side confirm). 3
InpLookback History bars to scan. History scanned for swings, default `500` bars. 500
InpMaxABC Max ABC projections displayed. How many projections stay on the chart, default `6`. Lower it when the display gets busy. 6
InpExt1 Extension level 1. First projection level, default `1.272`. 1.272
InpExt2 Extension level 2. Second level, default `1.414`. 1.414
InpExt3 Extension level 3 (key). The key level at `1.618`, drawn thicker than the rest. 1.618
InpExt4 Extension level 4. Fourth level, default `2.000`. 2.000
InpExt5 Extension level 5. Furthest level, default `2.618`. 2.618
InpProjectBars Bars to project to the right. How far the drawn levels reach to the right, default `60` bars. 60
InpObjPrefix Names the line and text objects, default `”FibExt_”`. FibExt_

Display settings

Setting What it does Default
InpBullColor (see inputs panel) medium sea green
InpBearColor (see inputs panel) tomato

Alert settings

Setting What it does Default
InpAlertOnHit Alert when price hits 1.618. on
InpEnablePopup (see inputs panel) on
InpEnablePush (see inputs panel) off
InpEnableEmail (see inputs panel) off
Fibonacci extension indicator inputs: InpSwingLeft, InpExt3 and InpProjectBars
Fibonacci extension indicator inputs: InpSwingLeft, InpExt3 and InpProjectBars

Settings that fit your chart

Extension work needs legs long enough to project from, which favours H1 and above. EURUSD H1 is the reference chart. A swing setting of 3 there produces ABC sequences a few times a week. On M5 the same setting finds them constantly, and most projections span too little ground to trade. The daily chart gives fewer sequences with much longer horizons.

When the Fibonacci Extension Indicator fails

Extensions are projections, not levels price has already respected. Nothing has traded there yet.

The ABC test checks the swing sequence and the AB distance. It never checks the depth of the BC retracement, which many traders treat as part of a valid setup.

Swings confirm three bars late by default. The projection therefore appears after point C has passed, rather than as it forms.

Copy the compiled Fibonacci Extension Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.

Related on forexmt4systems.com: Fibonacci Retracement Strategy.

Background reading on the method behind the Fibonacci Extension Indicator: Fibonacci Arcs at StockCharts ChartSchool, Interest rate parity on Wikipedia.

Download the Fibonacci Extension Indicator for MT4 and MT5

The zip holds the compiled Fibonacci Extension Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. Enter your email below and the download link arrives in your inbox.

Download this indicator free

Enter your email and the file is yours. You also get the full MT4 and MT5 library.

  • 1,380+ indicators
  • MT4 and MT5 files
  • No spam, unsubscribe any time

FAQ

Which swing sequence does the tool need before it projects anything?

Three confirmed swings in alternating order. bull wants low, high, low across points A, B and C. bear wants high, low, high. The code checks sw_type for that pattern rather than comparing prices alone, which stops it treating two consecutive highs as a leg.

Why is Ext 1.618 drawn thicker than the others?

Because it is the level most extension traders act on, so the build gives it visual priority. The code assigns orange when the level matches 1.618 within a small tolerance. The other four plot as thin lines around it. That keeps the key level readable on a busy chart.

What is InpProjectBars actually doing?

Extending the drawn lines to the right of the current bar, `60` bars by default. It affects the drawing only. A projection is calculated the moment point C confirms, and the extension simply makes the level visible ahead of price so you can see it approaching.

Can I change the extension multiples?

Yes, all five are inputs. `InpExt1` holds `1.272`, `InpExt2` holds `1.414`, `InpExt3` holds `1.618`, `InpExt4` holds `2.000` and `InpExt5` holds `2.618`. Traders who work with a different set can replace them outright. The colour rule keys off the 1.618 value, so moving that one changes which line gets the emphasis.

Are results guaranteed?

No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Fibonacci Extension Indicator as one input. Always backtest before trading live.

Category: this is part of our Support and Resistance collection. Then, plainly, browse more Support and Resistance for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.

External references

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

How we build, test and correct every tool: Editorial & Testing Policy. Trading carries risk; see the disclaimer.

Leave a Comment