I'm going to say something that might make some MQL5 sellers uncomfortable: most trading indicators on the market repaint their signals. And the sellers know it.
Not all of them, of course. There are honest developers who explicitly state their indicators are non-repainting and actually mean it. But the marketplace is flooded with products that show perfect signals on historical charts — and then magically move, change, or disappear when you try to trade them in real time.
I've bought dozens of indicators over the years. Some from MQL5, some from other platforms. And the repainting problem made me angry enough to start building my own tools. But before I explain how I solve it, let me make sure you understand what repainting actually is — because most traders get it wrong.
What Repainting Actually Means
Repainting is when an indicator changes its past signals or values after new price data comes in. It's retrospective editing. The indicator looks at what happened next and then goes back and adjusts what it showed you earlier.
Here's a concrete example:
An indicator shows a "BUY" arrow on a candle while that candle is still forming. You see the arrow, you buy. Then the candle closes bearish, and the arrow disappears. It was never there. The indicator's history now shows no signal at that point.
On a screenshot, this indicator looks incredible. Every signal is at a perfect turning point. That's because it's only showing you the signals that worked — after the fact. The ones that didn't work have been erased from history.
The Three Types of Repainting
Not all repainting is equally deceptive. Understanding the types helps you identify what's happening:
Type 1: Intra-Bar Repainting (The Worst Kind)
The signal appears and disappears multiple times while a candle is forming. You might see a buy arrow, take the trade, then look back an hour later and the arrow is gone. This is the most dangerous type because it actively tricks you into taking trades.
Common culprits: ZigZag-based indicators that recalculate on every tick, certain channel-break indicators that adjust their channels retroactively.
Type 2: Historical Repaint (The Sneaky Kind)
The signal stays on the current candle once it appears, but historical signals from many candles ago shift or disappear. This makes backtesting impossible — your historical data is contaminated. When you scroll back, you see signals at perfect reversal points, but those signals weren't there in real time.
Common culprits: Indicators that use future bars in their calculation, certain pattern recognition indicators that redefine patterns after the fact.
Type 3: Delayed Confirmation (The Acceptable Kind)
Some indicators deliberately wait for a candle to close before plotting a signal on that closed candle. Technically, the signal "appears" after the bar is complete, so there's a slight delay. This is not repainting in the deceptive sense — it's proper confirmation. This is actually how reliable indicators should work.
This is the approach I use in all my indicators. Signals are calculated on closed candles. Once a signal appears, it stays forever. No edits, no removals, no adjustments.
How Sellers Disguise Repainting
I've seen some creative (and frustrating) tactics:
"100% Accurate Signals" screenshots. If an indicator shows 100% win rate on historical charts, it's almost certainly repainting. No legitimate strategy wins every trade. If the screenshot looks too perfect, it is.
Only showing zoomed-out charts. When you zoom out far enough, even repainting indicators look good because you can't see the micro-level signal changes. Always ask for zoomed-in screenshots on recent candles.
"Non-repainting" in the title but no explanation of how. Some sellers slap "non-repainting" on their product name without explaining the methodology. A genuinely non-repainting indicator developer will tell you exactly how signals are confirmed — usually on candle close with no future bar lookback.
Strategy tester results from repainting indicators. Here's a dirty secret: MetaTrader's strategy tester uses historical bars, so a repainting indicator will show perfect results in the tester because it's always using "future" data in its calculation. The tester doesn't replicate real-time tick-by-tick conditions unless you specifically test in "every tick" mode with real tick data.
The 2-Minute Test (Do This Right Now)
Here's how you test any indicator for repainting. Takes about 2 minutes:
Method 1: The Screenshot Method
- Attach the indicator to a live chart (not historical — it must be receiving live ticks).
- Wait for a signal to appear (buy or sell arrow, color change, whatever the signal is).
- Take a screenshot immediately.
- Wait for 5-10 candles to form.
- Take another screenshot.
- Compare. If the original signal has moved, changed, or disappeared — it repaints.
Method 2: The Timeframe Switch Method
- Attach the indicator to a chart. Note the last few signals and their positions.
- Switch to a different timeframe.
- Switch back to the original timeframe.
- Check if the signals are still in the exact same positions. If they've moved or changed — it repaints.
The timeframe switch method is faster but catches a slightly different category of repainting (specifically, indicators that recalculate from scratch when the chart reloads).
Method 3: The Terminal Restart Method
- Note all visible signals on your chart.
- Close MetaTrader 5 completely.
- Reopen it and load the same chart.
- Compare the signals. Repainting indicators often show completely different signals after a restart because they've lost their real-time state.
How I Build Non-Repainting Indicators
Since I experienced the repainting problem firsthand as a trader, I'm obsessive about preventing it in my own tools. Here's my approach:
Signals calculate only on closed bars. My indicators check conditions on bar [1] (the last fully closed bar), never on bar [0] (the currently forming bar). This means you might see a signal appear with a one-bar delay — but once it appears, it's permanent.
No future bar lookback. My calculations only use bars that have already closed. Bar [1] can reference bar [2], [3], [4], etc., but never bar [0] or any future data. This is a hard rule in every indicator I publish.
Arrow persistence. Once my code draws a signal arrow on the chart, it stays there. It doesn't get recalculated, repositioned, or removed. Even if you switch timeframes, restart MT5, or your broker's server disconnects — the signal remains exactly where it was originally placed.
State persistence using GlobalVariables. In my more advanced indicators like Gold EMA Ribbon Scalper and Buy Sell Signal Pro, I save the indicator state (active TP/SL zones, signal positions) in MetaTrader's GlobalVariables. This means even after MT5 restarts, the indicator restores its exact state. Nothing moves, nothing disappears.
Red Flags When Shopping for Indicators
Before you buy any trading indicator, check for these warning signs:
- Screenshots showing 100% accurate signals — nobody and no tool wins every trade.
- No mention of repainting or signal methodology in the description.
- Reviews mentioning "signals disappear" or "different signals after restart."
- No response from the seller to questions about repainting. Honest developers are happy to explain their methodology.
- Extremely high win rates in backtests without showing live forward-test results.
The Uncomfortable Truth
Here's the thing nobody wants to hear: a non-repainting indicator will always look worse on historical charts than a repainting one. That's not a bug — it's the point.
A repainting indicator shows you a fairy tale. A non-repainting indicator shows you reality. Reality includes losing signals. Reality includes sideways chop where signals don't work. Reality is messy.
But reality is what you'll actually experience in live trading. And I'd rather trade with a tool that shows me honest, imperfect signals than one that lies to me with a perfect backtest.
Every indicator I publish on MQL5 is explicitly non-repainting. I mention it in every product description, and I invite anyone to test them using the methods above. If any of my indicators ever repaints a signal, message me and I'll fix it immediately — that's a standing commitment.
Check out my full product catalog — every tool is designed with signal integrity as the foundation.
Disclaimer: This article represents my personal experience and opinions as an indicator developer. Trading involves significant risk. No indicator guarantees profits regardless of whether it repaints or not.