I sell eighteen MetaTrader indicators. Every listing makes the same claim: closed-bar values are final, the indicator does not repaint.
Last week I published a free tool that measures exactly that claim, and this week I pointed it at my own shelf.
A seller telling you his code does not repaint is worth very little. It costs nothing to write and nothing to defend.
Indicator Test Report is free. Anyone can download it, attach it to any indicator — mine, theirs, MetaTrader's own — and get a plain-language report on twelve behaviours in about ninety seconds. It reads what an indicator publishes through iCustom, watches the values change, and writes down what happened.
Which means it can convict me. That is the point of publishing it. So before asking anyone to take the claim seriously, I ran it against my own products and wrote down everything, including what went wrong.
Caption: Every run ends with this block — all twelve checks on one screen, whatever else the report contains.
The result
Thirteen products measured across MetaTrader 4 and MetaTrader 5, on EURUSD H1, targets on their default inputs.
Check 03 asks the only question that matters here: does a value on a CLOSED bar ever change afterwards?
| Tester model | Products | Closed-bar comparisons | Changes |
| Open prices | 13 | 3,454,347 | 0 |
| Every tick | 7 | up to 255,000,000 each | 0 |
Every product measured reads STABLE.
The Every-tick figures are the interesting ones. Open prices generates 118 ticks over the test period; Every tick generates 50,002. Trend Survival Rate alone was compared 254,999,507 times without a closed bar moving.
Two more checks fired on that pass:
- Intrabar flicker: NONE — the forming bar never changed value.
- Model dependence: IDENTICAL — the same values whichever price path the tester simulated.
That last one is worth a sentence. A backtest and a live chart feed an indicator differently. IDENTICAL means the indicator does not notice.
Caption: A real finding, with the bar times and the before and after values. This is what the tool produces when something does move.
What it could NOT measure
A sweep that reports eighteen out of eighteen perfect is a sweep nobody should believe. Here is the incomplete part.
Three products were not measured at all. MTF Currency Strength Panel on both platforms, and Currency Strength Oscillator MT4. All three decompose 28 currency pairs, and MetaTrader 4's Strategy Tester is single-symbol by design — it will not grant a program access to any symbol other than the chart's.
The tool did not guess. It named the cause, pointed at a live chart, and stopped:
A common case on MetaTrader 4: the target needs symbols other than this chart's, and the MT4 Strategy Tester is single-symbol by design. Such a target can only be tested on a live chart. Stopping now rather than asking again on every tick, which would repeat the target's message thousands of times.
That is my own product being refused by my own tool, and it is the behaviour I would want from anyone else's.
Check 12 — history dependence — is unmeasured on every product. It asks whether an indicator reports different values for the same bar depending on how much history preceded it, which is the defect that makes a backtest disagree with a live chart. It needs two runs whose watch windows overlap. I got the setup wrong five times and stopped rather than keep guessing. The report said NO OVERLAP every time, correctly, because my two windows shared no bars.
So: ten checks answered, one refused for a documented platform reason, one still open.
Caption: NOT TESTED is not a pass. It is the verdict that means nothing was measured, and the report says so in the same block it reports everything else.
What it found that is not a fault
Currency Strength Oscillator needs 9,321 bars of warm-up. Structure Flow and Trailing Stop needs 8,792.
Neither is a defect. Currency Strength Oscillator decomposes 28 pairs and cannot be complete until every pair has history; Structure Flow anchors to structure that must exist before a stop can be placed.
But it is guidance a buyer should have, and my listings do not carry it. That is the one concrete thing this sweep produced.
The part I would rather not include
I made eight mistakes running this, and the tool was right every time it disagreed with me.
Among them: I configured MetaTrader 4 so that it silently measured MACD instead of my target, and only the tester log revealed it. I described the sweep as leaving two checks unanswered when it left four. I read an older report file and announced a result that had already changed.
None of the errors were in the tool. All of them were in how I drove it. That is worth saying because it is the honest reason a measuring instrument is useful: it does not care what you expected.
Check it yourself
Indicator Test Report is free, on both platforms, and it is not restricted to my products.
Point it at anything, including MetaTrader's own indicators. If a result surprises you, send me the report.
A finding is not a fault. Repainting, long warm-ups and chart objects are design choices many good indicators make deliberately. The tool reports behaviour; deciding whether that behaviour suits you is your job, not its.
The full report, attached
The file attached to this post is one complete run — Anchored Volume Delta on EURUSD H1, Every tick, 423 lines. Not an extract: the header, all twelve checks with their explanations, the run parameters, and the caveats.
It is the run that produced the 59,999,884 comparisons quoted above. It also shows check 12 reading NOT CHECKED, which is the gap this post describes — visible in the evidence rather than only in my account of it.
I attached one rather than thirteen. Thirteen is a data dump; one is something you can actually read, and it is the same report you get on your own indicators about ninety seconds after attaching the tool.





