How I Proved My SMC Indicator Does Not Repaint (and How You Can Check Any Indicator)
Smart Money Concepts tools are very popular on gold. They are also the type of indicator that repaints most often. A chart full of perfect arrows at every top and bottom looks great in a screenshot. In live trading, those arrows arrive late, move, or disappear.
When I built my own SMC indicator for MetaTrader 5, I set one rule first: nothing that is drawn may change later. Then I tested the rule, because a claim is not proof.
Why SMC tools repaint
A swing high is only a swing high once the next bars have closed lower. Many tools draw it immediately and "fix" it later, which is repainting. Others calculate on the current, still-moving candle, so a BOS or an arrow can appear and vanish within the same bar.
The honest alternative is simple, but it costs a little delay:
- Calculate only on closed bars. The forming candle is ignored.
- Confirm a swing only after its right-hand bars have closed. The swing label appears a few bars later, but it never moves.
- Never edit a past signal. Zones may shrink when price fills them, or disappear when price breaks them, because that is new information. An arrow, a BOS or a CHoCH stays where it was printed.
Test 1: what you saw at bar close is what stays
I wrote a small test Expert Advisor for the Strategy Tester. It does not trade. At the close of every bar it records what the indicator shows on that bar: trend, BOS/CHoCH, new Order Block, new FVG, sweep and signal. At the end of the test it reads the same bars again and compares them.
On XAUUSD M5, M15 and H1, over almost two years of data, the number of differences was zero.
Test 2: live calculation equals a fresh start
Indicators often behave differently when they update tick by tick than when they are loaded on a full chart. So the test also starts a second copy of the indicator at the end and compares every buffer value and every chart object (lines, boxes, labels) between the two copies.
On M5 that was about 35,000 objects. The two copies were identical.
Test 3: alerts arrive once, at the right time
Every signal seen at bar close should produce exactly one alert, and loading history should produce none. The test counts both. They matched on every run.
How you can check any indicator yourself
You do not need to write code:
- Open the Strategy Tester in visual mode, with the indicator on the chart.
- Run it at slow speed and take a screenshot every time an arrow or label appears.
- At the end of the test, compare your screenshots with the final chart.
If an arrow moved, changed or disappeared, the indicator repaints. Also ask the seller one direct question: "Is every signal calculated on closed bars only?"
One more honest point
No repaint does not mean profitable. I also measured what happened after the signals on historical data. On M5 and M15 there was no reliable edge after costs. On H1 the results were better, but not strong enough to make promises. That is why I present my tool as an analysis aid: it shows structure, zones and confluences clearly and consistently. The trading decision and the risk management stay with you.
The indicator from this post is MSB Pro SMC Gold on the MQL5 Market: https://www.mql5.com/en/market/product/202188
I share more notes like this and my free MT5 tools in my channel: https://www.mql5.com/en/channels/msbgoldpro
All my products: https://www.mql5.com/en/users/mustafa_ozkan/seller
Trading involves risk. Backtest results do not guarantee future results.
Kemal Mustafa Ozkan, MSB Pro ALGO


