Non-Repainting Policy¶
🎯 Why This Matters (For Traders)¶
Before diving into technical details, here's what non-repainting means in practical terms:
What is Repainting?
Some indicators change their past signals after new bars form. For example, an indicator might show a "buy" signal on an older candle when you look at it today, but that signal wasn't actually there yesterday when you were trading. This is called "repainting" and it creates misleading backtests.
Signal Pilot's Non-Repaint Guarantee
Signal Pilot indicators are audited to ensure that once a signal appears on a closed candle, it stays there permanently. What you see on historical candles is exactly what appeared in real-time. This allows for:
- Accurate backtesting and performance evaluation
- Reliable alert configuration
- Confidence that historical signals represent actual market conditions
- No false backtesting results
How Can You Verify This?
Common methods traders use to verify non-repainting behavior:
- Replay mode test: Use TradingView's bar replay feature and compare signals as bars form vs. after they're finished
- Screenshot comparison: Take screenshots of signals as they form, then compare to the same candles days later
- Alert logs: Compare alert timestamps to when signals actually appear on charts
- Code audit: Review the technical implementation (see sections below)
Educational Purpose
The technical sections below provide code-level verification for developers and advanced users. This transparency allows independent verification of non-repainting claims.
Signal Pilot is designed to be deterministic on candle close.
- Close-confirmed signals — Alerts fire only when
barstate.isconfirmed. - HTF data — Pulled with
request.security(..., lookahead_off)and only accepted after the HTF bar closes. - Pivots & divergences — Only drawn after the right-side pivot confirms; then anchored back to the original bar.
- Anchoring — Labels/markers use
x=bar_indexandyloc.priceto avoid wobble.
What this means: No future-bar lookahead. Backtests and alerts match live behavior.
- Non-Repainting Defined: Signals that confirm at bar close and never change retroactively - what you see on historical candles is exactly what appeared in real-time when those bars formed
- Why It Matters: Non-repainting ensures accurate backtesting, reliable alert configuration, and confidence that historical performance represents actual market conditions - prevents misleading backtest results from changing signals
- Signal Pilot Guarantee: All indicators are audited to ensure close-confirmed signals using
barstate.isconfirmed, no future-bar lookahead, and anchored visual elements that remain fixed after confirmation - Verification Methods: You can verify non-repainting behavior through TradingView bar replay testing, screenshot comparisons over time, alert log reviews, or technical code audits
- Technical Implementation: Signals use close-confirmed triggers, HTF data pulled with
lookahead_offsetting, pivots/divergences drawn only after right-side confirmation, and anchored labels usingbar_indexcoordinates - Practical Impact: Deterministic behavior on candle close means backtests accurately reflect live trading performance, alerts fire at predictable times, and historical analysis provides reliable strategy development data
- Transparency Commitment: Technical implementation details provided for independent verification by developers and advanced users who want to audit non-repainting claims
Next Steps: Review Best Practices Guide for optimal indicator usage, or explore Troubleshooting Guide if you encounter unexpected behavior.