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

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 |

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.
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
- Learn more about the underlying method in Boiler room (business) on Wikipedia.
- For wider market background, see Nyse Equity Indices at StockCharts ChartSchool.
