Pine
IntelliRepaint
Static check for the lookahead and repainting patterns that make backtests lie.
Loading…
About IntelliRepaint
Repainting is the reason a strategy looks perfect in history and falls apart live — the script quietly used information it wouldn't have had at the time. IntelliRepaint reads a pasted Pine indicator or strategy and flags the well-known culprits: lookahead turned on, higher-timeframe requests that repaint on the forming bar, strategies that recalculate every tick, varip variables, realtime-only branches, and signal markers drawn on unconfirmed bars. Each finding explains why it repaints and how to fix it. No other free tool does this — and it only exists here because Intellicoin already runs its own Pine engine. Everything stays in your browser.
How to use
- Paste a Pine indicator or strategy
- Run the check
- Read each flagged pattern — severity, the exact lines, why it repaints, and the fix
- Confirm on the chart with a bar-replay-vs-live comparison
FAQ
What is repainting?
When a script's past signals change after the fact — because it referenced future data, a still-forming higher-timeframe bar, or intrabar values that later settle. It makes historical results look far better than what you'd have actually traded live.
What does the checker catch?
The common causes: barmerge.lookahead_on, request.security usage that can repaint on the forming bar, calc_on_every_tick=true, varip, logic gated on barstate.isrealtime/islast, and plotshape/alertcondition/label calls that may fire on unconfirmed bars. Each comes with the line numbers, the reason, and a fix.
Is a flag always a bug?
No. It's a heuristic static scan: a flagged pattern can be used safely (for example, a higher-timeframe request you've correctly offset), and a script can repaint in ways the scan doesn't catch. Treat findings as things to review, and confirm on the chart.
How do I truly confirm it repaints?
Compare the script's history to its realtime behaviour: run it with bar-replay and watch whether signals that appeared later move or vanish. If history and live disagree, it repaints.