Pinary · Repaint Detection

Catch repainting
before release.

Static analysis for Pine Script, right in TradingView. RepaintChecker flags the patterns that make backtests look great and live trading look terrible — before your strategy goes anywhere near a real candle.

No data leaves your browser·Pine Script v5 / v6·No account required

The hardest bug in Pine Script
is the one you can't see.

01

Backtests look incredible.

Your strategy prints money on historical data. Sharpe ratios people screenshot. Equity curves that go up and to the right.

02

Live trading does not.

Real candles arrive bar-by-bar, with no future to peek at. Signals that shimmered in replay quietly disappear, fire late, or reverse.

03

And nobody knows why.

Pine Script gives no warning when an indicator repaints. The bug is in the language, the timing, the request.security() call — never obviously in your code.

Four things, done well.

Built by traders who got tired of debugging strategies that worked yesterday.

Detection

Static analysis, not guesswork.

A purpose-built parser walks your Pine Script AST and flags every known repainting pattern: lookahead, future-leaking offsets, unconfirmed barstate, security() pitfalls, valuewhen depth.

14
var last = close
15
htf = request.security(syminfo.tickerid, "D", close, lookahead=barmerge.lookahead_on)
16
if htf > last
Prioritization

High / Medium / Low at a glance.

Every finding is scored by impact and confidence. A 2-second look at the popup tells you whether to ship, fix, or investigate further.

HIGHLookahead in security()
MEDUnconfirmed alertcondition
LOWStyle: implicit gaps_off
Remediation

Exact line, suggested fix.

No vague warnings. Click any finding to jump to the offending line and see a side-by-side patch — usually one or two characters away from a non-repainting equivalent.

FIXline 15 · suggested patch
request.security(..., lookahead=barmerge.lookahead_on)
+
request.security(..., lookahead=barmerge.lookahead_off)
Workflow

Lives in the editor you already use.

Adds a single icon to the TradingView Pine Editor toolbar. One click runs a full analysis on the script you have open. No copy-paste, no separate window.

tradingview.com/chart

Three scripts.
Three verdicts.

sample · MeanRevert_v3.pine

Three clicks from doubt to confidence.

STEP 01

Open your script.

Pine Editor, any TradingView plan. RepaintChecker waits in the toolbar and does nothing until asked.

~/MeanRevert_v3.pineactive
STEP 02

Click the icon.

A full static analysis runs locally — your code never leaves the browser. Typical scan: under 200ms.

parsing AST · 184ms
STEP 03

Read the verdict.

Risk score, ranked findings, exact line numbers, suggested patches. Fix, re-scan, ship.

HIGHline 17 · lookahead
MEDline 41 · unconfirmed

Questions, answered.

What data does RepaintChecker send to our servers?
None. The entire analysis runs locally in your browser as a Chrome extension. Your Pine Script source code, results, and metadata never touch the network. We don't operate a backend service for this product.
Which TradingView plan do I need?
Any of them — including the free plan. RepaintChecker hooks into the Pine Editor, which is available on every tier.
Is Pine Script v5 and v6 supported?
Yes. The parser supports v5 fully and v6 syntax additions including dynamic requests and method-style calls. v4 scripts are detected and we surface a notice asking you to upgrade — most v4 patterns are deprecated for repainting reasons anyway.
Is the detection 100% accurate?
No static analyzer is. We aim for very high recall on documented repainting patterns (lookahead, future-leaking offsets, unconfirmed barstate, valuewhen depth, dynamic timeframes) and tune for low false positives. When confidence is low, we mark a finding as "review" rather than "fix" and explain the reasoning.
Is it free?
Yes. RepaintChecker is free and there is no account, sign-in, or paywall. It is a hand-built tool from the Pinary project.
Will it work on protected / closed-source scripts?
Only on scripts you can open in the Pine Editor — meaning your own scripts and any open-source published indicator. Protected scripts compile to bytecode you don't have access to, and so neither does RepaintChecker.

Need a hand?

We read every message. Bug reports, feature ideas, weird edge cases — send them over.

Report a bug

False positive, missed pattern, or anything that looks wrong? Include the script line and what you expected.

Questions or ideas

General questions, feature requests, or just want to talk Pine Script tooling.

We typically reply within 3 business days.

Ready when you are

Stop shipping
repainting bugs.

One minute to install. Every script you ever write, checked for free.

Install for Chrome
  • Free · No account required
  • Works offline once installed — no network calls
  • Aligned with TradingView's official Pine Script docs

RepaintChecker is a tool of Pinary.

Notify me when it ships.

Get notified about new features. No spam. See our Privacy Policy.