Non-Repainting ICT Indicator with Volume Profile

A TradingView client's checklist read like an exam: 19 ICT/SMC concepts plus the complete Volume Profile set — and one hard rule: no repainting. This is the concept-to-precision-rule pipeline that delivered it.

August 30, 2026  |  12 min read

Why "ICT Conversion" Is a Hard Project

The client's key line: "I am not looking for someone who only knows the terminology … if we define a liquidity sweep, you should be able to clarify exactly what conditions qualify as a sweep, how it is confirmed, whether candle close confirmation is required, and how to prevent repainting."

Most ICT indicators repaint because their labels appear on bars that are still forming. The engineering answer is not a special "repaint filter" bolted on the end — it is a decision pipeline where every condition resolves only at bar close, and the visuals are drawn from already-closed values. The same design philosophy runs through our MT4/MT5 indicator library.

The Concept → Precision Rule Audit (Shipped With the Source)

Before a line of Pine: every concept becomes a 4-column table — what qualifies, what confirms, does it repaint. That table is both the proposal and the spec:

ConceptQualifying conditionRepaints?
Liquidity sweepWick takes out prior EQH / session high, then body closes back inside the swept rangeNo — label after close
BOS / CHoCHClose beyond prior confirmed swing (fractal); CHoCH = break against trendNo
MSSCHoCH + expansion body > 2× ATR(14) rangeNo
FVG / IFVGGap between candle-1 high and candle-3 low; IFVG = gap not yet filledDrawn at close only
Order blockSibling candle before displaced move; invalidate > 50% retrace of blockNo
Premium / Discount + OTE50% equilibrium of drawn range; 0.62–0.79 retrace = OTE zoneNo — range input driven
Killzones / SMTLondon 08–11 ET, NY 13:30–16:00 ET, Asia 20:00–00:00; SMT = opposite extremes on correlated tickerNo
Volume profile (POC/VAH/VAL, PDH/PDL, HVN/LVN)Rolling 150-bar histogram; POC outward → 70% value area; PD/PW values as floating levelsNo

Repaint Prevention, Stated in Code Terms

ict_smc_vp.pine — core guards
// Every multi-timeframe request uses gaps_off + lookahead_off: // the value returned is the LAST CLOSED bar value of the higher TF. htf_close = request.security(sym_tf, tf, close[1], // offset = closed bar barmerge.gaps_off, barmerge.lookahead_off) // Each concept is evaluated exclusively from closed values: sweep = high > swing_high and close < swing_high // wick out, body back confirm(sweep, "SWEEP") // label drawn here, once // Alerts fire only at the close of a complete bar: alertcondition(mss, "MSS confirmed", message="CHoCH + 2x ATR expansion") // Live-preview drawings sit behind a toggle; default export never repaints.

The Indicator, As Rendered

Pine Script chart with BOS and CHoCH labels, sweep marker, FVG and order block boxes, killzone shading and a rolling volume profile histogram with POC VAH VAL

Killzone shading over London and New York windows; BOS and CHoCH labels land only on confirmed closes; the sweep marker pins the swept high; FVG and order block boxes anchor to displaced legs; PDH/PDL and EQ/OTE reference lines float with the session — and the rolling volume profile histogram on the right shows POC (highest-volume price), VAH/VAL 70% value area and the HVN/LVN clusters the client asked for, with no repainting across all of it.

This is the same style of precise-rule work we do for Pine Script development and conversion to MQL5 — terminology is cheap, rules are the product.

FAQ

How do you prevent repainting in Pine Script?

Closed-bar decision points only, lookahead_off on all request.security calls, alerts fired on confirmed closes, and live-preview drawings behind an explicit toggle — non-repainting by construction, not by filter.

How is volume profile computed inside Pine?

A rolling-length histogram accumulates volume into price buckets; POC is the highest-volume bucket; VAH/VAL are the boundaries of the 70% value area built outward from the POC; PD/PW reference values carry over from prior sessions.

What is in the delivered package?

Pine source, the full concept-to-rule audit table, per-concept screenshot pack for the client's review QA, session/timezone documentation and alert documentation.

Have an ICT Checklist of Your Own?

Rules first — that's the whole trick. See the full case study portfolio, or get a fixed-price quote for your indicator.

Read the Full Case Study Request a Quote
🚀 Invite friends — Earn $5 You both get $5 credit on Go Ad · opencode.ai AI-Powered Coding Agent — Try Free Build apps, fix bugs & ship faster with opencode. Get $5 free credit when you join. × Ad · quo.com QuoPhone — $20 Visa Gift Card Free Sign up to Quo, subscribe 3 months, get a $20 Visa gift card. Atif's referral gift for you. ×