The no repaint arrow indicator builds Heikin-Ashi candles internally and watches for a colour flip. A flip alone means little, so two more tests follow. The bar range must clear `AtrMult` times ATR, and the close must break the previous midpoint by a margin. Only then does an arrow print.
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 | 2: Buy, Sell |
| Alerts | popup, push notification, email, sound |
| Inputs | 11 |
What the No repaint arrow Indicator draws on the chart
Buy places a lime arrow below a bar where the internal candles turned green.
Sell places a red arrow above one where they turned red.
Each arrow sits `ArrowOffsetATR` `0.4` of an ATR from the bar, so the gap scales with volatility.
The Heikin-Ashi candles themselves stay internal and never appear on the chart.
- Buy: arrow, lime, width 2, arrow code 233
- Sell: arrow, red, width 2, arrow code 234

How the No repaint arrow Indicator calculates its values
Building the candles in one pass
HaClose takes the average of open, high, low and close. HaOpen takes the midpoint of the previous Heikin-Ashi pair. Both fill forward from the oldest bar, alongside a running ATR, so nothing recalculates the same value twice.
Testing the flip
buySig needs the current internal candle green and the previous one red. `ConfirmBars` `1` then demands that many same-direction candles ending at the signal bar. Raising it asks for a longer run before the mark appears.
Two volatility gates
The bar range must reach `AtrMult` `0.8` times ATR. breakBuf takes a quarter of that figure, and the close must clear the previous bar midpoint by it. Both gates scale with ATR, so a quiet session raises the bar less than a busy one.
How to read the signals
A mark means a colour flip that also carried size and follow-through.
`ConfirmClosed` locks the test to completed bars, which is where the name comes from.
Flips without the ATR gate are common. That is exactly what the gate removes.
Raise `AtrMult` toward 1.2 if the chart still fills with marks.
Alert channels in this build: popup, push notification, email and sound.
Two channels start live here. `EnableAlerts` and `EnablePopup` are true, and so is `EnableSound`, while `EnablePushNotify` and `EnableEmail` are false. `SoundFile` picks the clip. This build has no once-per-bar guard, so the sound channel can repeat inside a bar.
Every No repaint arrow Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
AtrPeriod |
ATR period. Bars in the running ATR, default `14`. | 14 |
AtrMult |
Min bar range as ATR multiple. Minimum bar range in ATR units, default `0.8`. | 0.8 |
ConfirmBars |
Same-direction HA bars required. Same-direction internal candles required, default `1`. | 1 |
ConfirmClosed |
Lock signals on bar close (no-repaint). Locks signals to the closed bar, default `true`. | on |
Display settings
| Setting | What it does | Default |
|---|---|---|
ArrowOffsetATR |
Arrow offset (ATR fraction). Arrow distance from the bar in ATR units, default `0.4`. | 0.4 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Master switch for the signal alerts, default `true`. | on |
EnablePopup |
Terminal dialog on a new signal, default `true`. | on |
EnablePushNotify |
Mobile push for a new signal, default `false`. | off |
EnableEmail |
Mail delivery for a new signal, default `false`. | off |
EnableSound |
Sound playback on a new signal, default `true`. | on |
SoundFile |
Clip the sound channel plays, default `alert.wav`. | alert.wav |

Settings that fit your chart
Heikin-Ashi smoothing shows its value where price trends in runs. EURUSD H1 is the reference chart, and `AtrPeriod` at `14` covers most of a session there. On M5 flips arrive often and the ATR gate does most of the work. On H4 the marks turn rare and each covers a real leg.
When the No repaint arrow Indicator fails
Heikin-Ashi candles average two bars together, so a flip lags the real candle that caused it.
The internal candles never show on the chart, which makes a mark hard to check by eye.
`AtrMult` `0.8` is a modest gate. A busy session clears it easily.
Copy the compiled No repaint arrow 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 No repaint arrow Indicator for MT4 and MT5
The zip holds the compiled No repaint arrow 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 AtrMult at 0.8 require of a bar?
A range of at least 80 percent of the current ATR. A tiny indecision bar cannot flip the signal, however the internal candles look. Raise it toward 1.2 for a much stricter gate that keeps only the larger flips.
Why measure ArrowOffsetATR in ATR units?
So the gap scales with the market. A fixed point offset that looks right on a quiet EURUSD chart disappears behind the candle on gold. At `0.4` the arrow always sits about four tenths of a typical bar away from the high or low.
How many candles does ConfirmBars require?
One internal candle in the signal direction, ending at the marked bar. Raising it to 2 or 3 asks for a short run before the mark appears. That produces fewer marks and each one lands further into the move.
How does ConfirmClosed earn the no-repaint claim?
By keeping every test on completed bars. With it true the forming bar is never evaluated, so an arrow that has printed cannot be withdrawn by the next tick. That is the only sense in which any indicator can promise this.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the No repaint arrow Indicator as one input. Always backtest before trading live.
Category: this is part of our Signal and Forecast collection. 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 No free lunch with vanishing risk on Wikipedia.
- Additional market context is at iao (AO) at the MQL5 Documentation.
