The gold non repaint indicator combines an EMA trend read, an RSI threshold and an ATR-scaled offset into a single BUY/SELL arrow. It reads all three from the prior closed bar rather than the forming one, which keeps the arrow from moving once it prints. It suits XAUUSD traders who want a fixed, three-part gate rather than a single-indicator trigger.
This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from XAUUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 2: Gold BUY, Gold SELL |
| Alerts | popup, push notification, email, sound |
| Inputs | 12 |
What the Gold non repaint Indicator draws on the chart
Gold BUY places a lime arrow (code 233) below the candle low when the buy conditions align.
Gold SELL places a red arrow (code 234) above the candle high when the sell conditions align.
- Gold BUY: arrow, lime, width 2, arrow code 233
- Gold SELL: arrow, red, width 2, arrow code 234

How the Gold non repaint Indicator calculates its values
Three readings, all from the prior closed bar
InpEMAPeriod, `20`, feeds an EMA, InpRSIPeriod, `7`, feeds an RSI, and InpATRPeriod, `14`, feeds an ATR, and the code reads all three from the bar before the one it is evaluating rather than the current bar.
The comment on InpRSIThreshold spells out the gate directly: a BUY needs RSI above 55, a SELL needs it below 45, both measured against the `55.0` default threshold.
Why it reads the prior bar
Because the code pulls the EMA, RSI and ATR values from an already-closed bar rather than the forming one, the arrow that prints does not shift as the current bar’s price keeps moving. That mechanism backs the non-repaint claim in the product name.
Why three conditions instead of one
A single RSI threshold on its own fires often, since RSI crosses 55 or 45 many times in an average session. Stacking the EMA trend read and the ATR-scaled offset on top of the RSI gate means all three must line up before the arrow prints.
That stacking is what the build notes mean by a three-part gate: RSI alone decides direction, and the EMA and ATR conditions narrow down which of those RSI crosses actually qualify.
How to read the signals
A lime Gold BUY arrow means the prior bar’s RSI cleared 55 alongside the EMA and ATR conditions.
A red Gold SELL arrow means the prior bar’s RSI fell under 45 alongside the same EMA and ATR conditions.
Because every input reads from the closed bar behind the signal bar, the arrow position does not move once it has printed.
No arrow at all across a long stretch of candles means the three conditions never lined up together, not that the market was flat.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
Alerts cover popup, push, email and sound, and fire once per closed bar.
Every Gold non repaint Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
InpEMAPeriod |
EMA period. EMA period behind the trend read; default `20`. | 20 |
InpRSIPeriod |
RSI period. RSI period behind the threshold check; default `7`. | 7 |
InpATRPeriod |
ATR period. ATR period behind the offset and movement figure; default `14`. | 14 |
InpATRMult |
ATR multiplier for breakout offset. Multiplies the ATR reading into a breakout offset; default `0.3`. | 0.3 |
InpRSIThreshold |
RSI gate (BUY > 55, SELL < 45). RSI gate; BUY needs the RSI above this value, SELL needs it below 100 minus this value, 55 and 45 by default. | 55.0 |
Display settings
| Setting | What it does | Default |
|---|---|---|
InpArrowOffsetPts |
Arrow vertical offset in points. | 8.0 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
(see inputs panel) | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
Built and screenshotted on XAUUSD H1, the gold-specific pairing the build notes call for; the same EMA/RSI/ATR combination works on other liquid instruments if you re-tune InpRSIThreshold for their typical range.
When the Gold non repaint Indicator fails
Reading the prior bar instead of the current one adds one bar of lag before the arrow can print, the trade-off for the non-repaint behaviour.
A short InpRSIPeriod of `7` swings RSI quickly, so on a choppy gold session the 55/45 threshold can cross and re-cross within a short run of bars.
InpATRMult only scales the arrow’s vertical offset; it does not filter which signals fire, so raising it will not reduce signal frequency on its own.
Because all three conditions must align, a session where price is trending but RSI stays inside the 45-55 band produces no arrow at all, even during a clear directional move.
Copy the compiled Gold non repaint 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: Gold Scalping Strategy.
Background reading on the method behind the Gold non repaint Indicator: Zürich Gold Pool on Wikipedia, Stockcharts Technical Rank Sctr at StockCharts ChartSchool.
Download the Gold non repaint Indicator for MT4 and MT5
The zip holds the compiled Gold non repaint 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 makes this indicator non-repaint?
Every value behind the signal, the EMA, the RSI and the ATR, reads from the bar before the signal bar rather than the forming bar. Once a bar closes and the code prints the arrow from it, that arrow does not move.
What RSI level triggers a BUY or SELL?
The source comment on InpRSIThreshold spells it out: a BUY needs the prior bar’s RSI above 55, a SELL needs it below 45, both measured against the InpRSIPeriod `7` reading.
Does InpATRMult change how often the arrow fires?
No. InpATRMult only scales the ATR reading into the arrow’s vertical offset from the candle. The BUY/SELL decision itself comes from the EMA and RSI conditions, not from InpATRMult.
Why was this built for gold specifically?
The build notes label it gold-specific and the screenshot below is XAUUSD H1, though the underlying EMA/RSI/ATR combination runs on any symbol the platform offers.
Why might the indicator print no arrows during a clear trend?
All three conditions, EMA, RSI and ATR, must line up on the prior closed bar before an arrow prints. If RSI stays inside the 45-55 band while price trends, the RSI gate alone can keep the arrow from firing.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Gold non repaint Indicator as one input. Always backtest before trading live.
Category: this is part of our Signal and Forecast collection. Also, browse more Signal and Forecast for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- The core method is documented in Zürich Gold Pool on Wikipedia.
- Additional market context is at Stockcharts Technical Rank Sctr at StockCharts ChartSchool.
