Alan Ross

Alan Ross Forex

Free Forex Indicators, MetaTrader Tools and Honest Trading Guides

Indicators

Why Arrow Indicators Repaint: 88.2% in History, 46.7% Live, Same Arrows

Key takeaways

  • Same indicator, same 16,926 EURUSD bars, two ways of reading it: a ZigZag arrow scores 88.2% wins and +10.42 pips when you count it where it sits in history, and 46.7% and +0.08 pips when you can only trade it when it appears. A 41.5 point gap, produced by nothing but timing.
  • 85.5% of the arrows you watch being drawn get erased. At a 15-pip threshold the indicator painted 1,483 arrows that were later removed and kept only 251. Your history shows the 251.
  • The gap is measurable in pips, not opinions. A fractal arrow arrives 2.8 pips after the bar it is drawn on. A 15-pip ZigZag arrives 14.29 pips late; a 25-pip one, 24.96 pips late.
  • A non-repainting arrow scores the same 44.4% both ways, because there is nothing to shift. That identical pair of numbers is the actual test for repainting, and you can run it yourself in three minutes.

Everybody in forex has met the disappearing arrow. You watch a green arrow print under a candle, you take the trade, price goes the other way — and when you look at that spot the next morning, the arrow is not there. Somewhere else on the chart, at a much better price, there is an arrow you never saw.

This is repainting, and it is not a bug or a scam file. It is the arithmetic of any indicator that identifies a turning point. What is worth knowing is exactly how big the distortion is, because “it repaints” is a warning and a number is a decision. So I measured it, on the same 16,926 EURUSD 5-minute bars behind my test of four free buy sell indicators.

What does repainting actually mean?

Candlestick chart with zigzag swing lines drawn across the highs and lows

An indicator repaints when the arrow it shows at bar 100 can still change after bar 100 has closed. Two mechanisms cover almost every case:

  • Delayed confirmation. A Bill Williams fractal needs two bars to close after the pivot before the pattern exists. The arrow is drawn on the pivot bar, but you cannot know about it until two bars later.
  • Provisional extremes. ZigZag marks the lowest low so far as a swing low. If price makes a lower low, the arrow moves there. It only stops moving once price has rallied a fixed distance away — and by then the entry has gone.

Both draw arrows at bars that are, in hindsight, excellent. Neither is lying to you. They are answering the question “where was the turn?” — which is a different question from “should I buy now?”

How big is the gap, in numbers?

Two screens showing the same chart read at different moments

I ran each arrow twice. Hindsight means the trade is scored from the close of the bar the arrow is drawn on, which is what a visual backtest on your history does. Live means the trade is scored from the close of the bar the arrow first became visible. Two hour hold, no stop, no target.

IndicatorHindsight win rateLive win rateHindsight pipsLive pips
ZigZag 15 pip88.2%46.7%+10.42+0.08
Fractals56.9%44.5%+2.13-0.32
EMA 5/20 cross44.4%44.4%-0.31-0.31

Read the bottom row first, because it is the control. The moving average cross is identical in both columns — not similar, identical. A cross either happened at the close of that bar or it did not, so there is no second reading to have. Any indicator that shows you two different numbers here is repainting by exactly that difference.

Then read the top row. 88.2% is a number that would sell a product for hundreds of dollars, and it is honestly produced by the honest indicator on the honest data. It is simply the score of a trade you could not have taken. The tradeable version of the same arrow is 46.7%.

How many arrows get erased before you see them?

The win rate gap is the half of repainting people argue about. This is the half that actually hurts, and I have never seen anyone put a number on it. Every time ZigZag finds a new extreme, it moves the arrow — an arrow you were looking at gets deleted. I counted those deletions.

ZigZag thresholdArrows keptArrows erasedShare erasedEntry arrives late by
8 pips7852,48376.0%7.56 pips
15 pips2511,48385.5%14.29 pips
25 pips9392790.9%24.96 pips

At the standard 15-pip setting, five out of six arrows that appeared on the live chart were later removed. If you traded arrows as they printed, five of every six trades came from an arrow that does not exist in your history — which means reviewing your own losses against your own chart will tell you that you hallucinated them.

Notice the last column moves in lockstep with the threshold. That is not a coincidence: it is the definition. ZigZag only confirms a low once price has risen the threshold above it, so your entry is always roughly one threshold worse than the arrow. Widening the setting to reduce false arrows widens the lateness by exactly as much.

Is a repainting indicator therefore useless?

No, and this is where most warnings overshoot. The 25-pip ZigZag was the single best performer in the whole arrow study once traded honestly: 55.7% wins and +4.04 pips per trade at a four hour hold. It repaints 90.9% of the time and it still made money, because being 24.96 pips late into a move that runs for hours is survivable.

Repainting is only fatal when the lateness is large relative to the move you are trying to catch. Scalping a 10-pip target with an arrow that arrives 14 pips late is arithmetic, not bad luck. That is the same relationship I found between stop distance and noise when I compared fixed stops with ATR stops: the size of the tool has to match the size of the move.

Compare it with the honest alternative. The EMA 5/20 cross never repaints and lost 0.31 pips per trade — a clean, transparent, entirely useless signal on this timeframe, which matches what the fuller moving average crossover test found across eight pairs of settings. “Non repainting” is a statement about honesty, not about profit.

How do I check an indicator for repainting in three minutes?

You do not need code. You need the same test I ran, done by hand:

  1. Open a chart and screenshot it with the indicator attached, arrows visible, timestamp in frame.
  2. Wait for five or ten bars to close. On M5 that is under an hour.
  3. Screenshot the same region again and compare. If any arrow moved, vanished or appeared where there was none, it repaints. Full stop.
  4. Then measure the lateness. For the arrows that stayed, note the price at the bar the arrow sits on versus the price when you first saw it. That difference in pips is your real entry penalty, and it is the number to subtract from every backtest you have ever run on this indicator.
  5. Run it in the Strategy Tester in visual mode. Arrows that appear only after the bar closes there, but sit at perfect pivots on your history chart, are confirming what step 3 told you.

A faster version: read the description. If the logic mentions fractals, ZigZag, swing highs and lows, pivots, market structure or “reversal points”, it needs future bars by construction. If it mentions moving averages, oscillator crosses, channel breaks or closes above a level, it does not. My own DeMARK trend line indicator sits in the second group, which is why I can state a fixed rule for it and not walk it back.

What I would actually do with this

  • Never judge an arrow from history. The screenshot is the hindsight column, and on ZigZag that column is 41.5 points too generous.
  • Run the two-screenshot test before any indicator gets a place on your live chart.
  • If it repaints, hold longer. The repainting arrows only turned positive at four hour holds, never at thirty minutes.
  • Match the lateness to the target. An arrow 14 pips late cannot serve a 10 pip target, no matter how good it looks.
  • Do not equate non repainting with profitable. The cleanest signal in this test was also a losing one.

Frequently asked questions

What does repaint mean in forex indicators?

That an arrow or line drawn at a past bar can still change after that bar has closed. It happens whenever the logic needs bars that come after the signal — fractals, ZigZag, swing and structure tools. In this test 85.5% of a standard ZigZag’s arrows were erased and redrawn before one stuck.

Is ZigZag a repainting indicator?

Yes, by design, and heavily. It marks the lowest low so far and moves that mark every time a lower low appears. On these bars its history score was 88.2% wins and its tradeable score 46.7% — same arrows, same data, different moment of entry.

Do fractals repaint?

Partly. A fractal is fixed once two bars close after it, so it never moves again — but you learn about it two bars late, which cost 2.8 pips on average here and took its win rate from 56.9% down to 44.5%.

Which indicators do not repaint?

Anything computed only from closed bars up to the current one: moving averages and their crosses, RSI, Stochastic, ADX, channel breakouts. My ADX above 25 test and Stochastic overbought test both use non repainting logic, which is why their numbers need no hindsight column.

Can I fix a repainting indicator?

You can make it honest by refusing to act until the signal is locked — trade the confirmation bar, not the arrow bar. That is precisely the “live” column here. It removes the illusion; it does not create an edge. What you do next about spread and timing matters more, as my spread and swap cost breakdown shows.

Want a clean indicator to install right now?

It is my own enhanced DeMARK Trend Line indicator for MetaTrader 4 and 5. Non repaint, clean, and free.

Download the Free DeMARK Indicator

Written by Alan Ross

Forex trader and MetaTrader indicator developer. I build and test MT4 and MT5 tools, then write the honest version of how they actually work. More about me.

Last reviewed September 2026
Alan Ross
Alan Ross

Forex educator and indicator developer. I build and trade my own MetaTrader tools, and share the ones that genuinely help.

Leave a comment

Your email address will not be published. Comments are reviewed before they appear.