The accurate reversal indicator pairs a fractal swing check with an RSI reading at an extreme. Only when both agree does it plot an arrow. Buy and Sell mark that swing. It runs on EURUSD H1, aimed at setups where price shape and momentum both point one way.
This build ships as accurate-reversal-indicator-indicator-forexmt4systems.ex4 for MT4 and accurate-reversal-indicator-indicator-forexmt4systems.ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 2: Buy, Sell |
| Alerts | popup, push notification, email, sound |
| Inputs | 11 |
What the Accurate Reversal Indicator draws on the chart
Buy (lime, DRAW_ARROW, code 233) sits below the bar’s low. It needs a fractal swing low plus RSI under OverSold.
Sell (red, DRAW_ARROW, code 234) sits above the bar’s high. It needs a fractal swing high plus RSI over OverBought.
- Buy: arrow, lime, width 4, arrow code 233
- Sell: arrow, red, width 4, arrow code 234

How the Accurate Reversal Indicator calculates its values
Confirming the fractal swing
The code checks FractalDepth bars on each side of a candidate bar. FractalDepth defaults to 3. A swing low needs 3 bars on either side with a higher low. A swing high needs 3 bars with a lower high.
Every bar nearby has to fail to beat the candidate. Only then does the swing count. That happens FractalDepth bars after the real turning point.
Adding the RSI filter
RsiPeriod, 14 by default, feeds a plain RSI reading at the candidate bar. A swing low only becomes a Buy arrow when that reading sits below OverSold, 35 by default.
A swing high only becomes a Sell arrow when RSI sits above OverBought. ArrowOffsetPoints, 40 by default, sets the arrow’s gap from the candle.
Warm-up and updates
The code needs FractalDepth plus RsiPeriod plus a few extra bars of history before it runs at all. Below that floor it draws nothing.
After that first pass, later ticks only walk forward from where the code stopped. They skip the older bars already checked.
How to read the signals
A Buy arrow means a fractal swing low lined up with a low RSI reading, under OverSold.
A Sell arrow is the mirror case: a swing high with RSI over OverBought.
The fractal check always lags. The arrow shows up FractalDepth bars after the real swing, not at it.
Once an arrow prints on a bar, it stays fixed there. It never moves once the check has run.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
EnableAlerts is the master toggle. EnablePopup, EnablePushNotify, EnableEmail and EnableSound pick the channels. The check runs once on the last closed bar. It fires a BUY or SELL message on a fresh arrow.
Every Accurate Reversal Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
FractalDepth |
FractalDepth sets how many bars on each side must agree on a swing point. It defaults to 3. | 3 |
RsiPeriod |
RsiPeriod sets the RSI lookback checked at each candidate swing. It defaults to 14. | 14 |
OverBought |
OverBought is the RSI level a swing high must clear for a Sell arrow. It defaults to 65. | 65 |
OverSold |
OverSold is the RSI level a swing low must fall under for a Buy arrow. It defaults to 35. | 35 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ArrowOffsetPoints |
ArrowOffsetPoints is a cosmetic gap value. It defaults to 40 points, clear of the candle. | 40 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
master toggle. | on |
EnablePopup |
MT4 popup dialog. | on |
EnablePushNotify |
mobile MT4 push notification. | off |
EnableEmail |
SMTP email (Tools > Options > Email). | off |
EnableSound |
play sound file from MT4/Sounds/. | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
The screenshot runs the accurate reversal indicator on EURUSD H1. That timeframe gives clear signals without too much noise. Two checks stacked together means fewer signals than either one alone. That suits traders who want a strict setup over a busy one. A calmer pair on the same settings tends to clear both checks less often.
When the Accurate Reversal Indicator fails
The fractal check lags the real turn by design. By the time an arrow prints, price has often moved a few bars away from the true low or high.
In a strong trend, RSI can sit past its extreme for a long stretch with no real turn in price. An arrow can print well before the trend is done.
Both checks must land on the same bar. A real turn that only clears one of the two gets no arrow at all.
There is no trend filter beyond the RSI level itself. A reversal call can still fire against a strong prevailing trend.
Copy accurate-reversal-indicator-indicator-forexmt4systems.ex4 into MQL4/Indicators and accurate-reversal-indicator-indicator-forexmt4systems.ex5 into MQL5/Indicators, then restart the terminal and drag the Accurate Reversal Indicator onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Background reading on the method behind the Accurate Reversal Indicator: Island reversal on Wikipedia, Candlestick Bullish Reversal Patterns at StockCharts ChartSchool.
Download the Accurate Reversal Indicator for MT4 and MT5
The zip accurate-reversal-indicator-indicator-forexmt4systems.zip holds accurate-reversal-indicator-indicator-forexmt4systems.ex4, accurate-reversal-indicator-indicator-forexmt4systems.ex5 and a short README, compiled files only. 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 two conditions does the accurate reversal indicator require for a Buy arrow?
A Buy arrow needs a fractal swing low, with quiet bars on each side set by FractalDepth. It also needs RSI below OverSold on that same bar. FractalDepth defaults to 3 and OverSold to 35. Both checks have to agree before the lime arrow plots. Neither one alone is enough.
Why does the Sell arrow use a slightly looser OverBought level than the classic setting?
OverBought defaults to 65, a touch below the usual textbook level. That lets a swing high pair with a less stretched RSI reading before Sell plots. Raising it would demand a more extreme reading before the same swing counts. Lowering it further would loosen the filter even more.
Does raising FractalDepth make signals more reliable?
FractalDepth sets how many bars on each side must fail to beat a candidate. It defaults to 3. A higher value demands a quieter swing point. That filters out small wiggles, but it also delays the signal by that many more bars. A lower value speeds up signals at the cost of more noise.
What does ArrowOffsetPoints control?
ArrowOffsetPoints sets the point gap between the arrow and the candle’s low or high. It defaults to 40. The setting only changes how far the arrow sits from price. It has no bearing on when a swing or an RSI level actually triggers. It is purely a display choice.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Accurate Reversal Indicator as one input. Always backtest before trading live.
Category: this is part of our Signal and Forecast collection. Also, still, yet, hence, browse more Signal and Forecast for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- Learn more about the underlying method in Island reversal on Wikipedia.
- For wider market background, see Candlestick Bullish Reversal Patterns at StockCharts ChartSchool.
