Reversal Fractals Indicator for MT4 and MT5

Written by Dominic Walsh · Published · Last updated

A fractal at a random price is noise; a fractal at a level price already tested is a reaction. The reversal fractals indicator dots every Bill Williams fractal and counts how often price visited the same level in the last 200 bars. It marks a reversal when that level saw earlier tests and the next closes pull away.

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 4: Reversal Fractal Buy, Reversal Fractal Sell, Up Fractal, Down Fractal
Alerts popup, push notification, email, sound
Inputs 12

Plots, colours and placement

Fractal dots and two reversal marks.

`Up Fractal` dots aqua with arrow code 217.

`Down Fractal` dots magenta with arrow code 218.

`Reversal Fractal Sell` prints red with arrow 234.

`Reversal Fractal Buy` prints lime with arrow 233.

A comment lists the settings.

  • Reversal Fractal Buy: arrow, lime, width 2, arrow code 233
  • Reversal Fractal Sell: arrow, red, width 2, arrow code 234
  • Up Fractal: arrow, aqua, width 1, arrow code 217
  • Down Fractal: arrow, magenta, width 1, arrow code 218
reversal fractals indicator: Fractals with tested-level reversal marks, EURUSD H1.
Fractals with tested-level reversal marks, EURUSD H1.

From bar to value

Fractal

`FractalBars` `2` bars on each side must stay below a high, which is the classic five-bar fractal.

Tested level

Highs within `TouchTolerancePt` `60` points in the last `LookbackBars` `200` bars count as touches. The level needs `MinStrength` `2`.

Rejection

One of the next two closes must land more than the tolerance below the fractal high. That turns it into a reversal mark.

Making the output useful

Small dots show every fractal.

Large marks show fractals at tested levels.

Marks confirm two bars after the turn.

`ConfirmOnClose` `true` skips the forming bar.

`ArrowOffsetPts` `80` places marks well clear.

Warm-up needs a few bars.

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

Reversal fractals report once confirmed. `EnableAlerts` passes them through, and the popup is the route active by default.

Every Reversal Fractals Indicator input

Core settings

Setting What it does Default
FractalBars bars each side (Bill Williams = 2 → 5-bar). Bars on each side of a fractal, `2`. 2
LookbackBars max scan window. History searched for touches, `200`. 200
MinStrength touches needed for a level. Touches a level needs, `2`. 2
TouchTolerancePt tolerance in points for clustering. Touch tolerance in points, `60`. 60
ConfirmOnClose non-repaint (skip bar 0 fractal). Closed bars only, `true`. on

Display settings

Setting What it does Default
ArrowOffsetPts arrow offset (points). Mark gap in points, `80`. 80

Alert settings

Setting What it does Default
EnableAlerts Master alert switch, `true`. on
EnablePopup Popup, `true`. on
EnablePushNotify Mobile route, `false`. off
EnableEmail (see inputs panel) off
EnableSound Speaker, `false`. off
SoundFile (see inputs panel) alert.wav
reversal fractals indicator: Inputs panel, fractal and touch settings together.
Inputs panel, fractal and touch settings together.

Where the defaults suit

Tested-level fractals appear several times a week on hourly charts. EURUSD H1 is the reference chart. On M15 the 60-point tolerance is wide, so marks multiply. On D1 widen it for daily ranges.

Where this one struggles

Sixty points is a fixed tolerance, not tied to ATR.

Touches can come from far back in the window.

Rejection needs only one close away.

The popup is the only route on at first.

Copy the compiled Reversal Fractals 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.

Download the Reversal Fractals Indicator for MT4 and MT5

The zip holds the compiled Reversal Fractals 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

What does TouchTolerancePt 60 count as the same level?

Highs within sixty points of the fractal high. On EURUSD that is six pips; on a gold chart it is far tighter, so adjust it per symbol.

What makes a Reversal Fractal Sell different from an Up Fractal?

Every fractal high gets a dot. A reversal mark also needs a level tested at least twice and a close in the next two bars that falls clearly below the high.

Why does MinStrength 2 matter?

It asks for an earlier visit to the level. A fractal at a price nobody reacted to before gets a dot but no reversal mark, which keeps the marks for levels with history.

Why confirm with ConfirmOnClose?

Fractals need two closed bars on their right. With the option on, the build never uses the forming bar, so marks do not appear and then vanish.

Are results guaranteed?

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

Category: this is part of our Support and Resistance collection. 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