Ict Mmxm Frameworkict mmxm framework is a session-based market structure tool designed to organize intraday price delivery around fpi zones, macro windows, order blocks, imbalances, breakaway gap order blocks, opening ranges, and session range structure.
The script is built to help traders study how price behaves during the asian, london, new york morning, lunch, and new york afternoon sessions. It separates each major session into its own visual components so the user can compare pre-session ranges, active session ranges, macro windows, fpi areas, imbalance areas, order block zones, breakaway gap order blocks, and opening range levels.
Main components:
* pre-asian range from 7:00 pm to 9:00 pm new york time
* asian range from 9:00 pm to 12:00 am new york time
* asian macro windows at 6:50 pm to 7:10 pm, 8:50 pm to 9:10 pm, and 12:50 am to 1:10 am
* pre-london range from 2:00 am to 3:00 am new york time
* london range from 3:00 am to 5:00 am new york time
* london macro windows at 1:50 am to 2:10 am, 2:50 am to 3:10 am, and 4:50 am to 5:10 am
* new york morning, lunch, and afternoon session structure
* fpi visualization for asian, london, and new york sessions
* separate fpi detection for asian and london macro windows
* selected-bias imbalance mapping
* selected-bias order block mapping
* breakaway gap order block mapping
* high, midpoint, and low price labels for imbalance, order block, and breakaway gap order block zones
* opening range levels for the new york morning and afternoon sessions
* configurable session visibility and visual settings
The asian and london sections include range boxes, high and low references, midpoint references, macro windows, fpi areas, selected-bias imbalance zones, selected-bias order block zones, and breakaway gap order block context. These components are intended to help traders compare how price develops from one session into the next.
The selected expected bias controls how the main imbalance and order block zones are emphasized. When bearish bias is selected, the framework focuses on the highest relevant bullish order block and premium-side imbalance context. When bullish bias is selected, the framework focuses on the lowest relevant bearish order block and discount-side imbalance context.
The order block, imbalance, and breakaway gap order block zones use soft transparent colors based on the selected expected bias. Bearish bias uses red-toned zones, while bullish bias uses green-toned zones. This is intended to keep the chart visually aligned with the selected directional framework.
The purpose of this script is to provide a structured visual framework for studying session-based delivery, liquidity reference points, fpi behavior, macro timing, order blocks, imbalances, breakaway gap order blocks, and projected levels. It is intended for market context, discretionary planning, and research.
This script does not generate guaranteed trade signals, does not predict future price movement, and does not provide financial advice. It should be used together with independent analysis and proper risk management.
Asian Session:
London Session:
Ny Session:
Indicator

PO3 Mmxm PO3 Mmxm is a range-mapping and projection tool built around Power of 3 style price-delivery logic.
The script allows traders to select a PO3 value, such as 27, 81, 243, 729, and higher expansion values, then builds a source range and forward projection boxes from that selected range. The tool is designed to help study how price may expand from a defined dealing range and how projected levels can align with midpoint, premium, discount, rebalance, and range-extreme areas.
Main features:
* Selectable PO3 range values
* Bullish or bearish session bias setting
* Source range projection logic
* Optional half-range projection mode
* Adjustable source range shifting
* Forward projection boxes
* Source range subdivisions using quarter or eighth levels
* Optional range high and range low zones
* Optional rebalance zones using configurable premium and discount percentages
* Optional all-level GIP zone display
* Table showing selected PO3 value, projection reference levels, target, and range extreme
* Configurable session start and projection end time
The range high and range low zones are calculated from the selected PO3 framework and projected range structure. Rebalance zones are drawn from user-defined percentage bands inside the projection boxes, allowing traders to compare current price location against premium, discount, and equilibrium-style areas.
This script is intended as a visual research and chart-mapping tool. It does not predict future price movement, does not guarantee trade outcomes, and should be used together with independent market analysis and risk management.
GIP Levels Example(S/R)
Rebalance Levels Example (Rebalance/Retracement)
Indicator

Mirage Liquidity Sweep Pro [WillyAlgoTrader]💧 Mirage Liquidity Sweep Pro is a free overlay toolkit that detects liquidity sweeps (stop-hunts), scores each one on a transparent 0-100 quality scale, optionally waits for a market-structure shift (CHoCH) to confirm, and then auto-builds a complete trade plan — wick-based stop, three take-profits, break-even logic, and a projected liquidity target — all on the bar the signal fires.
The core insight: price doesn't reverse at random support and resistance — it reverses where resting orders (liquidity) get consumed. A swing high above the market holds Buy-Side Liquidity (BSL); a swing low below it holds Sell-Side Liquidity (SSL). When price spikes through one of those levels and then closes back inside, that is a sweep: the move grabbed liquidity and rejected. Mirage finds those exact events, measures how clean the rejection was, and turns the strong ones into structured setups. It works on any market and any timeframe.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A raw sweep detector fires on every wick that pokes a level — most of which go nowhere. A pure structure tool (CHoCH/BOS) tells you the trend flipped but not whether liquidity was actually taken first. A risk calculator gives you a stop and targets but has no idea where the trade should go. Used separately, each one leaves a gap the others could fill.
Mirage fuses them into a single pipeline:
Swing memory → Liquidity sweep detection → 5-factor quality score → CHoCH structure confirmation → Wick-anchored risk engine (SL / TP1-3 / break-even) → Liquidity target projection → Outcome tracking & stats
The swing engine remembers recent highs and lows and tags them as resting liquidity. The sweep detector only triggers when a level is pierced and reclaimed on the close — a stop-hunt, not a clean break. The quality score then rates that sweep so weak pokes are filtered out before they ever become signals. CHoCH confirmation (optional) makes price prove the reversal by breaking minor structure before you commit. The risk engine anchors the stop to the actual sweep wick — the precise point invalidating the idea — and projects the next opposite pool of liquidity as the logical objective. Finally, every closed setup is tracked so you can see the strategy's behavior in real time.
Without the score, you drown in low-quality sweeps. Without CHoCH, you front-run reversals that never come. Without wick-anchored risk, your stop sits in an arbitrary place. Without the liquidity target, you have no idea where the move is actually drawn. The combination is what turns "a wick touched a level" into a complete, rule-based trade.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ 5-factor sweep quality score (0-100) — the heart of the system.
Every detected sweep is scored before it can qualify. The score blends five independent, normalized factors:
— 📐 Wick depth (weight 0.30): wickComp = min( max(wick, 0) / ATR , 1.0 ). For a bullish sweep, wick = min(open, close) − low; for bearish, wick = high − max(open, close). Bigger rejection wick relative to ATR = stronger grab.
— 🔄 Reclaim (weight 0.25): rclComp = min( max(reclaim, 0) / ATR , 1.0 ). Bullish reclaim = close − level; bearish = level − close. Measures how decisively price closed back on the right side of the swept level.
— 🕯️ Close position (weight 0.20): closePos = (close − low) / (high − low). For bulls the raw value is used; for bears it is inverted (1 − closePos). Rewards candles that close near the rejection extreme.
— 📊 Volume (weight 0.15): volComp = clamp( (volRatio − 1) / (volMult − 1) , 0, 1 ), where volRatio = volume / SMA(volume, 21) and volMult defaults to 1.5×. On volume-less feeds this factor neutralizes to 0.5 automatically.
— 🧭 HTF bias (weight 0.10): htfComp = 1.0 if the sweep aligns with the higher-timeframe EMA trend, else 0 (or 0.5 if the filter is off).
Final score = (wickComp×0.30 + rclComp×0.25 + cpComp×0.20 + volComp×0.15 + htfComp×0.10) × 100.
A sweep only qualifies when its score ≥ Min Sweep Score (default 50). This single number is your master quality dial.
2️⃣ Sweep vs. break distinction — closes decide everything.
A stored level is treated three ways. For a swing low: if price closes below it, the level is simply consumed (a real breakdown — no signal). If price wicks below but closes back above, that is a bullish sweep. The mirror logic applies to swing highs. This close-based rule is what separates a genuine liquidity grab from a trend break, and it is why the detector ignores most noise wicks.
3️⃣ Two-stage signal — sweep then CHoCH confirmation.
With confirmation on (default), a qualifying sweep becomes a pending setup rather than an instant entry. The signal only fires when price then breaks the most recent minor pivot (Change of Character) within the Confirmation Window (default 13 bars). Minor structure is tracked with its own pivot length (default 8). Turn confirmation off and the signal fires on the sweep bar itself — responsive, but earlier. Pending setups expire automatically if no CHoCH arrives in time.
4️⃣ Wick-anchored risk engine with a minimum-distance guard.
Entry = close of the signal bar. The stop is placed beyond the actual sweep wick:
— Long: SL = sweepLow − ATR×buffer
— Short: SL = sweepHigh + ATR×buffer
If the resulting stop sits closer than ATR×0.5 to entry, it is widened to exactly ATR×0.5 to avoid an unrealistically tight stop. Risk distance dist = |entry − SL|, and targets are pure R-multiples: TP1/TP2/TP3 = entry ± dist × multiplier.
5️⃣ Risk presets — one click from scalp to swing.
Five presets set buffer / TP1 / TP2 / TP3 instantly (SL buffer in ×ATR, TPs in R):
— Conservative: 0.50 / 1R / 2R / 4R
— Balanced (default): 0.25 / 1R / 2R / 3R
— Aggressive: 0.15 / 1.5R / 2.5R / 4R
— Scalping: 0.10 / 0.8R / 1.5R / 2R
— Custom: your own values
6️⃣ Break-even automation after TP1.
When TP1 is touched, the stop moves to entry. From the next bar a wick back to entry closes the trade at break-even — protecting the position once it has paid out its first target. The SL line dims and the entry label annotates "→ SL (BE)" so the state is always visible.
7️⃣ Resting liquidity map — BSL / SSL + EQH / EQL.
Every un-swept swing high is drawn as Buy-Side Liquidity and every un-swept swing low as Sell-Side Liquidity (most recent N per side, default 6). A level disappears the instant it is swept, so the map always shows live, untapped pools. Consecutive near-equal swings (within Equal H/L Tolerance × ATR, default 0.15) are connected as Equal Highs / Equal Lows — the strongest liquidity magnets and the most common sweep targets.
8️⃣ Liquidity target projection — the draw-on-liquidity objective.
On each entry, Mirage projects a line to the nearest opposite un-swept liquidity pool: a long aims at the closest BSL above entry, a short at the closest SSL below. This is the logical place the move is "drawn" toward, independent of the fixed R-multiple TPs.
9️⃣ Higher-timeframe bias as a soft, non-repainting filter.
The HTF trend (close vs. EMA, default 4H / EMA-50) is requested with confirmed prior-bar values and contributes only 10% of the score — it nudges quality rather than hard-blocking signals, so counter-trend sweeps can still fire if they are clean enough.
🔟 Honest, transparent outcome tracking.
The dashboard records every closed setup: wins, losses, win rate (with a visual gauge), and a recent-form strip of the last 10 results. A setup is counted as a WIN the moment TP1 is touched, and a trade closes on a stop-out or when TP3 is reached. This definition is stated openly so you always know exactly what the numbers mean — see Important Notes for the full caveats.
🧠 HOW IT WORKS — CALCULATION FLOW
Step 1 — Map the swings: Confirmed pivot highs/lows (length 21) are stored in bounded memory and tagged as un-swept BSL/SSL.
Step 2 — Detect a sweep: On each new bar, un-swept levels within Max Sweep Distance (default 80 bars) are checked. A wick-through-then-close-back-inside event is flagged as a sweep; a close beyond the level just marks it consumed.
Step 3 — Score it: The 5-factor formula rates the sweep 0-100. Only sweeps at or above Min Sweep Score, after warm-up, on a confirmed bar, qualify.
Step 4 — Resolve the signal: If CHoCH confirmation is on, the sweep becomes a pending setup and waits for a minor-structure break within the window; otherwise it fires immediately.
Step 5 — Build the trade: Entry, wick-based SL (with the ATR×0.5 minimum guard), and TP1/TP2/TP3 as R-multiples are calculated. Only one position runs at a time.
Step 6 — Manage it: Bar by bar, hits are checked on confirmed bars. TP1 triggers break-even; a stop-out or TP3 closes and records the result.
Step 7 — Visualize & report: Lines, labels, the liquidity map, the target projection, and the dashboard all update live.
📖 HOW TO USE (beginner-friendly)
🎯 Quick start — 5 steps:
1. Add the indicator to any chart and any timeframe (15m–4H is a good starting range).
2. Leave every setting on default. The Balanced preset and a Min Score of 50 are a sensible baseline.
3. Wait for a green Long ▲ or red Short ▼ marker. That is your entry signal — and it only appears once a sweep has passed the quality score (and, by default, a CHoCH confirmation).
4. Read the entry, stop, and three targets straight off the chart lines and labels. The numbers are already calculated for you.
5. Manage the trade using TP1/TP2/TP3 and the automatic break-even — see the dashboard for live status.
👁️ Reading the chart — what each thing means:
— 🟢 Long ▲ / 🔴 Short ▼ = a confirmed signal (a trade opened here).
— ✖️ Small × mark = a raw sweep (liquidity was grabbed) — shown even when no trade opens.
— Dashed level line = the swing high/low that was swept, drawn from where it formed.
— Thick vertical tick = the penetration depth — how far the wick pierced beyond the level.
— ENTRY line = where the trade opened. SL line (red) = stop. TP1/TP2/TP3 lines = targets; a target turns solid teal with a ✓ once touched.
— Gold dashed line "◎ Liquidity Target" = the nearest opposite liquidity pool the move is drawn toward.
— Dotted BSL / SSL lines = un-swept resting liquidity above (BSL) and below (SSL) — likely future sweep targets.
— EQH / EQL connectors = near-equal highs/lows = the strongest liquidity magnets.
— % on labels = distance from entry to each level, e.g. "SL 1.2300 (−0.36%)".
📊 Dashboard fields:
— Trend: direction of the most recent qualifying signal.
— HTF Bias: higher-timeframe EMA bias (the soft 10% score factor).
— Signal: LONG / SHORT when in a trade, "Wait" when flat (a new trade opens only while flat).
— Last sweep: most recent qualifying sweep and its 0-100 score.
— SL / TP1 / TP2 / TP3: live levels; ✓ marks a target already touched; "BE @" marks a stop moved to break-even.
— R:R (TP1): reward-to-risk at the first target.
— SL Dist %: stop distance as a percent of entry.
— Trades / W-L / Win rate / Form: session results, with a gauge and a ▰/▱ strip of the last 10 outcomes (newest on the right).
🔧 Tuning guide (common fixes):
— Too few signals? Lower Min Sweep Score (e.g. 40-45), shorten Swing Length, or turn off CHoCH confirmation for earlier entries.
— Too many weak signals? Raise Min Sweep Score (60+), keep CHoCH on, and enable the Volume filter.
— Stops feel too tight/wide? Switch presets (Conservative widens, Scalping tightens) or set the SL buffer manually in Custom.
— Choppy market? Increase Swing Length and lean on the HTF bias filter so only trend-aligned sweeps score highly.
💡 Trading ideas:
— EQH/EQL hunt: watch a marked Equal High/Low — when it is swept and reclaimed with a high score, the rejection is often clean.
— Draw-on-liquidity: use the gold target line as a partial-exit zone; price frequently reaches the next opposite pool.
— Confirmation toggle: use CHoCH-on for selective swing entries, CHoCH-off on lower timeframes for faster scalps.
— Bias stacking: take only signals whose direction matches the HTF Bias field for higher-conviction entries.
⚙️ KEY SETTINGS
⚙️ Main:
— Swing Length (default 21): pivot lookback for the liquidity pools to sweep. Higher = bigger, cleaner pools.
— Max Sweep Distance (default 80 bars): a swing can only be swept within this many bars of forming.
— Min Sweep Score (default 50): master quality gate, 0-100.
🧩 Confirmation:
— Require CHoCH Confirmation (default on): wait for a structure break after the sweep.
— Structure Pivot Length (default 8): minor pivots used to detect the CHoCH.
— Confirmation Window (default 13 bars): how long a pending setup waits before expiring.
🔍 Filters:
— Use Volume Filter (default on) / Volume MA Length (21) / Volume Spike ×MA (1.5).
— Use HTF Bias (default on) / HTF Timeframe (240) / HTF EMA Length (50).
🛡️ Risk Management:
— Risk Preset (default Balanced): Conservative / Balanced / Aggressive / Scalping / Custom.
— ATR Length (14) / SL Buffer ×ATR (0.25, Custom) / TP1/TP2/TP3 ×Risk (1.0 / 2.0 / 3.0, Custom).
— Break-Even After TP1 (default on), plus SL/TP line and label visibility, % distance, and line styles.
💧 Liquidity:
— Show Resting Liquidity (BSL/SSL) (on) / Max Levels / Side (6) / Line Extend (10 bars).
— Show Equal Highs/Lows (on) / Equal H/L Tolerance ×ATR (0.15) / Show Liquidity Target (on).
🎨 Visual & Dashboard:
— Theme (Auto / Dark / Light), raw sweep marks, swept-level line, penetration, signals, score labels, watermark, label font size.
— Dashboard position, font size, and Market / Trade / Stats section toggles.
🔔 ALERTS
— 🟢 LONG entry — ticker, timeframe, score, price, SL, TP1, TP2, TP3, R:R.
— 🔴 SHORT entry — same payload.
— 🛑 SL Hit (and 🛡️ Break-Even stop-out) — entry and stop levels.
— 🛡️ Break-Even activated — when the stop moves to entry.
— 🎯 TP1 / TP2 / TP3 touched — price at each target.
All alerts support plain-text and JSON webhook formats and fire on bar close (alert.freq_once_per_bar_close).
⚠️ IMPORTANT NOTES
— 🚫 No repainting. Signals require confirmed bars (barstate.isconfirmed); swing pivots use equal left/right lookback, so the actual pivot is in the past by Swing Length bars and is drawn only once confirmed — this is delayed confirmation, not repainting of future values. The HTF bias is requested with confirmed prior-bar values, and all alerts fire on bar close.
— 📊 How wins are counted: a setup is marked a WIN as soon as TP1 is touched (1R by default). A trade that reaches TP1 and then reverses to break-even still counts as a win. This is a deliberately transparent definition, not an inflated one — read it that way when interpreting the win rate.
— 📐 Stats are session-based and simulated. The dashboard reflects the indicator's own single-position logic on the loaded history and resets when the chart reloads. It is not a broker-accurate backtest and includes no fees, slippage, or funding.
— ⚖️ One position at a time. A new signal can only open while flat — sweeps that occur mid-trade are shown but not traded.
— 🛠️ This is an analysis tool, not an automated trading bot. It detects sweeps, scores them, confirms with structure, and builds a structured trade plan — trade decisions remain yours.
— 🌐 Universal. Works on all markets and all timeframes. Volume-dependent scoring auto-neutralizes on feeds without volume.
Free to use — add it to your chart and explore. Feedback and feature requests are welcome. Indicator

Liquidity Vault [Dojo La Nuit]Liquidity Vault maps resting liquidity on your chart as clean horizontal levels and tracks what happens to them — without any buy/sell signals or predictions. It is a pure visualization tool for traders who read price around liquidity.
HOW IT WORKS
The script detects swing pivots and clusters nearby highs (and nearby lows) into single liquidity zones using an ATR-based tolerance, so the levels travel across instruments without re-tuning. Each zone gets a strength score from 0 to 100 built from three factors:
• Touches — how many times price reacted at the level
• Freshness — recent levels score higher and decay over time (configurable half-life)
• Volume — relative volume that accumulated at the level
HOW TO READ IT
• Red lines = sell-side liquidity (resting above price)
• Green lines = buy-side liquidity (resting below price)
• Opacity = strength: the stronger the zone, the more solid the line
• Dimmed, dotted lines = zones that have already been swept (price wicked through the level). They are kept as context, not removed.
SETTINGS
• Zone Detection — adaptive or fixed pivot length, clustering tolerance, lookback, max live zones
• Zone Strength — minimum score to display, freshness half-life, volume weighting on/off
• Visuals — theme (auto/dark/light), strength-based intensity, keep swept zones, line width
• Colors — fully customizable buy-side / sell-side colors
NOTES
Strength is shown through line opacity by design, to keep the chart minimal. Zones are recalculated on confirmed bars. This tool highlights where liquidity rests and when it gets taken — it does not generate entries, targets or signals.
This indicator is for educational and analytical purposes only. It is not financial advice. Always do your own research and manage your own risk.
─────────────────────────
🌙 LIQUIDITY VAULT — Dojo La Nuit
Liquidity Vault mostra la liquidità presente sul grafico come livelli orizzontali puliti e ne traccia l'evoluzione, senza segnali di acquisto/vendita e senza previsioni. È uno strumento puramente visivo per chi opera attorno alla liquidità.
COME FUNZIONA
Lo script individua i pivot di mercato e raggruppa i massimi (e i minimi) vicini in un'unica zona di liquidità tramite una tolleranza basata sull'ATR, così i livelli funzionano su strumenti diversi senza dover ritoccare i parametri. A ogni zona viene assegnato un punteggio di forza da 0 a 100, calcolato su tre fattori:
• Tocchi — quante volte il prezzo ha reagito al livello
• Freschezza — i livelli recenti pesano di più e si attenuano nel tempo (half-life configurabile)
• Volume — il volume relativo accumulato sul livello
COME SI LEGGE
• Linee rosse = liquidità sell-side (sopra il prezzo)
• Linee verdi = liquidità buy-side (sotto il prezzo)
• Opacità = forza: più la zona è forte, più la linea è piena
• Linee attenuate e puntinate = zone già spazzate (il prezzo ha bucato il livello con un'ombra). Restano come contesto, non vengono rimosse.
IMPOSTAZIONI
• Rilevamento zone — pivot adattivo o fisso, tolleranza di clustering, lookback, numero massimo di zone attive
• Forza zone — punteggio minimo da mostrare, half-life della freschezza, peso del volume on/off
• Visual — tema (auto/scuro/chiaro), intensità in base alla forza, mantieni zone spazzate, spessore linea
• Colori — colori buy-side / sell-side completamente personalizzabili
NOTE
La forza è rappresentata tramite l'opacità della linea, per scelta, per mantenere il grafico minimale. Le zone vengono ricalcolate sulle barre confermate. Lo strumento evidenzia dove si trova la liquidità e quando viene presa: non genera entrate, target o segnali.
Questo indicatore è a scopo puramente didattico e di analisi. Non è consulenza finanziaria. Fai sempre le tue valutazioni e gestisci il tuo rischio. Indicator

Liquidity Magnet ICT Liquidity & Sweeps [LunqFX]Liquidity Magnet is an ICT / Smart Money Concepts (SMC) liquidity indicator that maps buy-side and sell-side liquidity (BSL / SSL) and ranks every liquidity pool by how likely it is to be swept next. Instead of just drawing equal highs, equal lows and swing liquidity, it scores each resting pool of liquidity with a transparent 0–100 "Magnet Score" and highlights the single strongest draw on price as the NEXT TARGET — so you can anticipate the next liquidity sweep, stop hunt or liquidity grab before it happens.
If you trade ICT concepts, order flow, smart money, or supply and demand, this tool answers the one question every liquidity-based strategy needs: where is price most likely to go to take liquidity next?
WHAT IT DOES
• Detects liquidity pools automatically — swing highs / lows and equal highs / equal lows (EQH / EQL) where stop-losses cluster.
• Scores each pool 0–100 with the Magnet Score, a transparent weighted formula.
• Flags the strongest pool as the NEXT TARGET with a live arrow, price and probability.
• Marks pools as swept the moment price closes through them, then fades them.
• Shows a clean live dashboard: next target, probability, distance, bias and pool counts.
• Recolors the chart with neon gradient candles (turquoise bullish / violet bearish).
HOW THE MAGNET SCORE WORKS
The Magnet Score is fully transparent — no black box. Each unswept pool is graded on four weighted factors:
1. Proximity — how close the pool sits to current price (closer pulls harder).
2. Momentum — whether current momentum is moving toward the pool.
3. Age — how long the pool has rested untouched (older pools hold more liquidity).
4. Touches — how many times price has tagged the level (more taps = more stops stacked).
The four factors are combined into a single 0–100 score. The pool with the highest score, within a maximum distance from price, becomes the NEXT TARGET. If no pool is strong or close enough, the panel honestly reports "No clear magnet" instead of inventing a far-away target.
HOW TO USE IT
1. Read the BIAS in the panel — BUY-SIDE PULL means liquidity above is the draw (look for longs into the target); SELL-SIDE PULL means liquidity below is the draw (look for shorts).
2. Find the NEXT TARGET — the highlighted pool is where price is most likely to sweep liquidity next. Use it as a logical take-profit / objective.
3. Check the PROBABILITY bar — higher score = stronger magnet. Weak scores mean price is in a low-liquidity void; be patient.
4. Watch DISTANCE — how far the target is in %. Tight distance = an immediate objective; large distance = a swing objective.
5. Trade the sweep — as price reaches a pool and sweeps it, watch for the reaction. Swept pools fade automatically so the chart always shows live, unmitigated liquidity only.
Tip: combine the NEXT TARGET with your own entry model (FVG, order block, market structure). Liquidity Magnet tells you WHERE liquidity sits and which pool is the draw — you choose the entry.
THE DASHBOARD
• NEXT TARGET — price of the strongest liquidity pool and its probability.
• Probability bar — visual 0–100 strength of the current magnet.
• Distance — % distance from price to the target.
• Touches — how many times the target level was tested.
• Bias — overall liquidity pull (buy-side vs sell-side).
• Buy-side / Sell-side pools — count of active unmitigated pools on each side.
NON-REPAINTING
All liquidity pools are built from confirmed pivots (a fixed lookback of closed bars), and every sweep is confirmed on closed bars only — barstate.isconfirmed. Scores and visuals are display-side and never rewrite history. No request.security, no lookahead, no future leak. What you see is what actually happened.
SETTINGS
Liquidity Engine
• Swing length — pivot lookback; higher = only major swings become pools.
• Equal-level tolerance — how close two highs/lows must be (in ATR) to merge into one pool and count as a touch.
• Max pools per side — cap on active pools above and below.
• Max pool age — pools older than this are removed.
Magnet Score
• Proximity range, Momentum lookback / range — sensitivity of the score factors.
• Weights: proximity / age / touches / momentum — fully customizable scoring.
• Min score to flag target — hide weak magnets below this score.
• Max target distance % — a pool farther than this can never be the NEXT TARGET.
Neon Candles
• Neon gradient candles on/off, Glow halo on/off.
Panel
• Show panel, position, background / text / accent colors.
BEST USED ON
Forex, Gold (XAUUSD), indices, crypto and stocks. Works on all timeframes; intraday (15m–4H) is ideal for liquidity sweeps, higher timeframes for swing objectives.
Keywords: liquidity, liquidity sweep, liquidity pools, ICT, SMC, smart money concepts, buy-side liquidity, sell-side liquidity, BSL, SSL, equal highs, equal lows, EQH, EQL, stop hunt, liquidity grab, order flow, smart money, market structure.
This indicator is a decision-support tool, not financial advice. Always combine it with your own analysis and risk management.
Indicator

CandelaCharts - Order Blocks📝 Overview
The CandelaCharts - Order Blocks indicator identifies high-probability supply and demand zones based on ICT (Inner Circle Trader) and Smart Money Concepts (SMC) . An ICT Order Block represents the specific candle where institutional liquidity was injected to reverse the market, acting as a magnet for future price action. This indicator not only highlights these crucial institutional footprints but dynamically tracks how deeply they have been mitigated by future price action.
📦 Features
Precision Detection : Identifies both Bullish and Bearish Order Blocks using advanced pivot tracking and multi-timeframe logic.
Dynamic Mitigation Tracking : Displays the precise percentage of the unmitigated zone remaining. The block visually updates as price pierces deeper into the zone, leaving a solid background on the unmitigated portion and a faded background where price has already traded.
Wick vs Close Logic : Customize exactly how mitigation is calculated. Choose to invalidate and measure mitigation depth using candle wicks or strict candle closes.
Clean Chart Mechanics : Built-in filtering removes overlapping blocks, keeping your chart tidy and focusing on the most relevant levels.
Customizable Aesthetics : Full control over block borders, mean lines (mid-lines), text formatting, and alignment settings (Full, Middle, Accurate, Precise, Sequence).
⚙️ Settings
Show : Toggles the visibility of the entire indicator.
History : Adjust the maximum number of historical Order Blocks to display simultaneously.
Alignment : Controls how the top and bottom bounds of the block are calculated (e.g., Full Candle, Accurate, Precise, Sequence).
Mitigation Toggle & Mode : Enable or disable the visual percentage display. Choose Wick or Close to determine how mitigation depth and block invalidation are calculated.
Timeframe : Lock the Order Blocks to a specific timeframe, or leave it dynamic.
Show Border : Toggle borders and customize their style/width.
Show Mean : Toggle the mean line (midline) of the blocks and customize its style/width.
Text Size : Toggle the text display and choose the desired text size. When toggled off, the block type label is hidden, but the mitigation percentage cleanly aligns to the right.
Hide Overlap : When enabled, removes redundant order blocks that share the same price region.
⚡️ Showcase
Order Blocks
Mitigation
Mean Line
🚨 Alerts
The indicator includes fully integrated dynamic alerts that can be captured using the "Any alert() function call" condition, as well as standard alert conditions:
New Bullish/Bearish Order Block : Triggers the moment a new valid order block is confirmed.
Order Block Touch : Triggers when a candle pierces or enters an active, unmitigated order block.
⚠️ Disclaimer
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.
Indicator

Candle Displacement [D4A]Quantifying Market Momentum
Spotting sudden, aggressive price action often called displacement doesn't have to be a guessing game. Finding who is in control - buyers or sellers - can be as easy as looking for candles with specific colors. The script objectively track these explosive price moves by comparing candle's range against multiple of ATR over a specific lookback period (ATR Length).
True displacement should create a gap or FVG (Fair Value Gap) which indicates strong price move in one direction and this script provides the logic to catch this specific scenario while filtering out noise. Additionally, the cript marks break-of-structure displacement candles to highlight the beginning of strong directional move or a reversal. There is also filter provided to find only candles with significant gap created (FVG threshold). This script works best on smaller timeframes, eg. 1m or 5m.
SETTINGS
- Displacement - show displacement candles
- Min Body % - displacement candle should have at least this body size compared to whole candle range
- Require FVG - filters out the candles which don't create a gap. True displacement should create FVG
- Threshold - a valid FVG should be larger than this ATR multiplier
- Highlight candles which broke structure - color-codes the candles that broke recent market structure (high or low)
- Bars to define recent high/low (structure) - how many bars back should the script look to find recent high or low
- ATR length - ATR value over period of time to calculate average candle range
- Multiplier - used to find candles which are this times bigger than average ATR
-----------------
Disclaimer
The content provided in this script is for educational and informational purposes only. It does not constitute financial advice, investment recommendations, or a solicitation to buy or sell any financial instruments. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs. Indicator

Fair Value Gaps + Inversion FVG [Quantum Algo]Fair Value Gaps + Inversion FVG
█ OVERVIEW
Most FVG indicators stop at drawing boxes. This one tracks the complete lifecycle of every gap — fresh → midline-tested → filled → INVERTED → retested — and automates the part of the model that traders actually trade: the Inversion Fair Value Gap (IFVG).
A Fair Value Gap is a 3-candle imbalance left behind when price moves too fast for two-sided trade to occur. Price frequently returns to these zones. But when price closes through a gap instead of respecting it, the zone does not die — it flips polarity. A violated bullish gap becomes resistance; a violated bearish gap becomes support. The first retest of that inverted zone is one of the cleanest entry models in the Smart Money Concepts framework, and this script detects, restyles, and signals it automatically.
█ FEATURES
Gap detection
— Bullish and bearish FVGs detected on confirmed bars only (non-repainting).
— ATR minimum-size filter removes insignificant micro-gaps.
— Optional displacement filter: the middle candle must be a genuine expansion bar (range greater than a configurable multiple of ATR), keeping only gaps created by aggressive participation.
Volume strength score
Every gap is stamped with a 0–100 score comparing the displacement candle's volume against its 20-bar average. A 90% gap and a 20% gap are not the same zone — now you can see the difference at a glance.
Consequent Encroachment (CE)
Each gap carries its 50% midline. The first touch of the CE is detected, the gap is visually dimmed to separate tested zones from fresh ones, and an alert is available.
Inversion engine (IFVG)
— A close through the gap converts it into an inverted zone with distinct styling.
— The first retest of an inverted zone prints an on-chart signal (long model for inverted bearish gaps, short model for inverted bullish gaps).
— A close back through the far side invalidates and removes the zone.
— Inversion can be disabled, in which case gaps simply fill and are removed or frozen (wick-fill or close-fill modes).
Multi-timeframe mode
Display gaps from one higher timeframe directly on your chart as dashed boxes. HTF gaps are built exclusively from closed higher-timeframe bars, so they do not repaint.
Dashboard
A compact panel shows active bullish gaps, bearish gaps, inverted zones, plus the nearest demand level below price and the nearest supply level above it.
Alerts
Eight alert conditions cover the full lifecycle: new bullish/bearish gap, CE touch, fill, bullish/bearish inversion, and long/short IFVG retest.
█ HOW DETECTION WORKS
A bullish FVG forms when the current bar's low sits entirely above the high from two bars earlier — the zone spans that void. A bearish FVG is the mirror image. Detection runs only on bar close, so a gap that appears never disappears or redraws. Lifecycle state changes (CE touches, fills, inversions, retests) are likewise evaluated on confirmed bars.
█ HOW TO USE IT
1. Classic continuation: in a trend, wait for price to retrace into a fresh high-strength gap aligned with the trend; the CE midline is the standard entry refinement.
2. Inversion reversal: when a gap is closed through, stop looking for the old reaction — wait for the retest of the inverted zone in the new direction. The on-chart IFVG markers identify exactly this moment.
3. Multi-timeframe confluence: enable HTF mode and prioritize chart-timeframe signals that occur inside a higher-timeframe gap.
4. Use the dashboard's nearest demand/supply readout for quick situational awareness of where the next reaction zones sit.
Works on all symbols and timeframes. Crypto and index futures tend to produce the cleanest gaps on 5m–1H; forex gaps are more frequent on 15m and above.
█ SETTINGS
Detection — minimum gap size (× ATR), displacement filter, maximum zones kept on chart.
Mitigation & Inversion — inversion on/off, fill source (close or wick), removal of filled gaps, retest signals.
Multi-Timeframe — HTF on/off and timeframe selection.
Visuals — colors for bullish / bearish / inverted zones, fill transparency, CE line, labels, dimming of tested gaps, dashboard.
█ NOTES
— All state changes occur on closed bars; the developing bar can always change until it closes.
— This is an analysis tool for mapping imbalance and inversion zones, intended as a confluence layer within a complete trading plan. It is not a standalone buy/sell system.
█ DISCLAIMER
This script is provided for educational and informational purposes only and does not constitute financial advice. Trading involves substantial risk of loss. Past behavior does not guarantee future results. Always do your own research and apply sound risk management. Indicator

Sessions + Killzones [HermesCore]WHAT THIS INDICATOR DOES
Sessions + Killzones tracks the three desk sessions: Asia, London and New York, plus an optional custom window. While a session is open you see it as a live box. When it closes, its high and low become levels. Each level gets a simple 0 to 6 quality score, and from then on the script tracks what price does with it: swept, run, or held.
Every outcome feeds a statistics engine. It answers the core question of this script: what does the next session usually do with the levels of the previous one? Measured on your own chart, with sample sizes shown.
Killzones are the windows where institutional activity concentrates, around the desk opens. They render as background shading, set in New York time per ICT convention (Inner Circle Trader, the school this session vocabulary comes from). The dashboard shows which session and which killzone are active right now, each with a countdown. It also covers the daily window where nothing is open. I gave that window a name: the Dead Zone.
WHY IT IS DIFFERENT
Most session indicators draw boxes and stop. The few that score sessions usually hide how the score works. My rules are:
- A level gets its score at birth and the score never changes. It is built only from facts about how the session formed: range, volume, how clean the extreme was, and confluence with key levels. What happens later is shown by the lifecycle markings, not by changing the score.
- A sweep and a run are two different events. A wick beyond the level that closes back inside is a sweep. That is information: stops were taken and price came back. A close beyond the level plus a 0.1 ATR buffer (Average True Range, a standard volatility measure) is a run. The level is consumed.
- The statistics are counted honestly. A pair like "AS.H in LDN" only counts what happens while London is actually open. Levels that die before their judging session opens are not counted at all. The dashboard shows the n for every pair, so you always see how much evidence sits behind a percentage.
- Sessions are boxes, because their range matters: it becomes levels. Killzones are background shading, because only their timing matters. Two layers, two visual languages.
- Everything updates on confirmed bars only. No intrabar flicker. No levels that appear and disappear within the same candle.
HOW TO READ THE CHART
- Live session box: bright, thick border, session tag in the corner. Closed boxes fade into quiet history.
- Session levels: horizontal lines starting at the bar that set the extreme. A label like "LDN.H A S:5" reads: London session high, grade A, score 5. The abbreviations: AS is Asia, LDN is London, NY is New York, .H is the high, .L is the low.
- Gold color with a soft glow and larger text: the grade is A or S. Those are the premium sessions.
- Thick border on a level: it was swept. The label gets a "swept" suffix.
- Grey line without text: the level was run. It stays as quiet history, or you can have runs deleted.
- Levels expire when the next session of the same type closes. Yesterday's Asia high stops mattering once today's Asia delivers a fresh one.
- Killzone shading: vertical background bands for Asia, London, NY AM, and optionally London Close. All set in New York time.
- Dotted horizontal line: the midnight open at 00:00 New York.
- Dotted vertical lines to the right of price: the projected next open of each session, in session color. The chart version of the dashboard countdown. They respect the Weekdays Only filter.
- Neutral horizontal lines: previous day high and low (PDH, PDL) and previous week high and low (PWH, PWL), always from the last completed day and week. When a daily and a weekly level are equal they merge into one line with a combined label.
- Session midlines (CE, consequent encroachment, simply the middle of the range): dotted at the middle of each closed session, turning solid gold with a label like "AS CE" on the first touch. On by default.
- Killzone range lines: when a killzone closes, its high and low freeze as dashed lines in the killzone color. They carry no score, no lifecycle and no statistics. They are pure context and expire when the next killzone of the same type closes. On by default.
THE SCORE
Every component is measured at session close against the average of the last 20 sessions of the same type. Asia is always compared with Asia, London with London.
- Range: the session range is more than 1.2x its own average, +2
- Volume: the session volume is above its own average, +2
- Clean extreme: the high or low was set in the first half of the session and never revisited within 0.1 ATR, +1
- Key confluence: the level lies within 0.25 ATR of PDH, PDL, PWH or PWL, +1
Grades: S (6), A (5), B (4), C (3), D (0 to 2). There is no strength filter on purpose. A day produces at most six levels, which is scarce enough to show them all and let the grade speak.
SEQUENCE STATISTICS
Six pairs, following the natural hand-off: Asia levels are judged by London, London levels by New York, New York levels by the next Asia. For each pair the dashboard shows the swept share, run share, held share, and n, the number of judged levels behind those percentages. Held means the judging session closed without resolving the level. The optional custom session gets the full level lifecycle but stays out of these statistics.
This is regime information. If "AS.H in LDN" shows 36 percent swept while the lifetime base is 45, London is currently respecting Asia highs more than usual. An alert can warn you when a pair crosses 70 percent swept.
THE DEAD ZONE
Between the New York close and the Asia open, nothing is open. I named that window the Dead Zone, and it does real work here. Liquidity is thinnest there. A New York level that gets run inside the Dead Zone disappears before Asia ever gets to judge it. That is why the New York pairs always show a smaller n: n only counts levels that survived until their judging session opened. The dashboard names the Dead Zone when you are in it and counts down to the next open. Neutral shading, on by default, makes it visible on the chart. It is defined as "no session live", so it stays correct through every daylight saving (DST) change, and with Weekdays Only on, the whole weekend becomes one long Dead Zone.
DASHBOARD
Session now with a closing countdown, or Dead Zone with an opening countdown. Range and volume of each session against its own average, live sessions marked. The six pairs with percentages and n. Active level count, the lifetime swept versus run ratio, and Killzone now with its own countdown. Heat bars are proportional everywhere.
HOW I USE IT
My preferred timeframes, in order:
- 15m is the home base. Sessions are 30 plus bars wide, so the clean extreme component means something. The 09:30 New York open lands exactly on a bar. And the chart loads the most history, which gives the statistics their highest n.
- 5m is the execution frame. Sweeps and runs resolve on bar closes, so 5m shows the fight around a level in finer detail, and killzones become readable blocks. The cost is sample size: the statistics run on roughly a third of the history, so I treat those percentages as indicative and keep the regime read on 15m.
- 1h works but is the edge case. Hourly bars cut off the 09:30 New York open, and a six bar session makes the score coarse. Above 1h the script draws nothing on purpose.
On 15m I read the dashboard first: which session is live, how its range compares with average, and what the pair stats say about the current regime. Levels graded A or S from a session that expanded on volume are the ones I treat as real liquidity references, especially with key confluence. Then I watch how the next session treats them. A sweep, thick border, stops taken and price rejected, is a different trade than a clean run. I drop to 5m for execution around those levels and during killzones. I do not use this above 1h, and the script will tell you the same.
The way I think about it: session highs and lows are liquidity pools with a clock attached. Equal highs can form anywhere, but a session extreme tells you which desk made the level, when it stops being defended, and, through the statistics, what usually happens to it next.
SETTINGS THAT MATTER
- Sessions: four windows, each with its own IANA timezone (Asia/Tokyo, Europe/London, America/New_York by default). These are real timezone names, not UTC offsets, so daylight saving is handled automatically. The sessions simply follow their local clocks.
- Weekdays Only: off by default. Crypto trades the weekend, and weekend sessions usually grade D by themselves on thin range and volume. Turn this on and everything restricts to Monday through Friday: the weekend becomes one long Dead Zone, Friday New York levels wait for Monday Asia, and the countdown switches to a days format.
- Max Session Boxes: 42 keeps two weeks of session history for a zoomed-out view, 6 keeps two days for intraday focus.
- Run Levels Become: greyed history or deleted. Your choice of how loud the past is.
- Focus Fade: levels more than 6 ATR away from price render dimmed, gold glow included, so your eye goes to what is in play.
- Killzones: four windows in New York time, each with its own color. London Close is off by default. Killzone Range Lines adds the frozen high and low of each completed killzone as dashed lines.
- Timeframe guard: above 60 minutes the script draws nothing and says why. This is an intraday tool, and pretending otherwise would only produce misleading levels.
ALERTS
Session Opened, Session Closed, New A/S Session Level, Session Level Swept, Session Level Run, Killzone Started, Session Midline Tapped, Sweep Rate Threshold (a pair crossing 70 percent swept with n of at least 10).
CALCULATION DETAILS
- All state changes happen on confirmed bars. Sweeps, runs and statistics never repaint within a bar.
- Sessions use Pine session strings with full IANA timezone support. Without a day filter, Pine fires sessions on all seven days. That is correct for 24/7 markets, and it is what the Weekdays Only toggle changes.
- The rolling averages for range and volume use the last 20 completed sessions of the same type, calculated before the current session is added. A session is never compared with itself.
- A sweep needs a wick beyond the level with the close back inside the 0.1 ATR buffer. A run needs a close beyond the level plus the buffer. A first sweep marks the level, a later run still resolves it.
- Outcomes are only recorded while the judging session is open. A level that survives its judge counts as held at the judge's close.
- The statistics are computed from the bars your chart loads. They reload per chart timeframe. 15m loads the most history and gives the highest n. On 5m the same engine runs on roughly a third of the sample, treat those percentages as indicative.
HONEST LIMITATIONS
- The statistics describe the past, they do not predict. They tell you what this chart did over the loaded history, not what it will do next.
- n differs per pair by design. Levels run inside the Dead Zone leave the population before their judging session opens, which is why the New York pairs carry a smaller n. That is honest counting, not a bug.
- Statistics depend on the chart timeframe and the loaded history, so two timeframes show different percentages. Neither is wrong, they measure different samples.
- With Weekdays Only off, weekend sessions are part of the statistics. With it on, both n and the percentages change, because you measure a different market. Neither setting is the truth, they answer different questions.
- Scores compare a session with its own rolling history, so the first 20 sessions of each type on a fresh chart carry less reliable scores while the averages fill up.
- On 1h charts bar alignment can cut off session opens (there is no 09:30 bar on an hourly chart). That is part of why the timeframe guard sits at 60 minutes.
ORIGINALITY
The session and killzone concepts come from the public ICT vocabulary and from years of session-based intraday trading. Every line of code, the scoring system, the sweep versus run grammar, the judged-while-open statistics engine, the Dead Zone concept and the visual language are my own work.
Questions and suggestions are welcome in the comments. If the stats surprise you on your market, that is usually the most interesting place to start reading.
Indicator

CandelaCharts - Breaker Blocks📝 Overview
Breaker Blocks are a powerful concept popularized by ICT (Inner Circle Trader) and widely used in Smart Money Concepts (SMC) trading. A Breaker Block is essentially a "failed" order block. It forms when the market sweeps a prior high or low to grab liquidity, but then sharply reverses and breaks the pivot that initiated the sweep. The original order block that caused the liquidity sweep then becomes a high-probability mitigation zone—known as a Breaker Block.
Our CandelaCharts - Breaker Blocks indicator automatically identifies these complex market structures, drawing the original order block and extending the active Breaker Block zone to help you anticipate high-probability reversals and continuation setups.
📦 Features
Automated Detection : Instantly identifies both Bullish and Bearish Breaker Blocks by analyzing pivot sweeps and structural breaks.
Visual Clarity : Highlights the original Order Block (gray by default) and extends the mitigated Breaker Block zone (colored) for easy visual reference.
Mean Line : Automatically draws a dotted mean (50%) line inside the breaker block, a key sensitivity level for price reactions.
Overlap Management : Optionally removes overlapping breaker blocks to keep your chart clean and focused on the most relevant zones.
Dynamic Clean-up : Automatically removes mitigated blocks once price breaks and closes completely through them.
Dynamic Ranking & Shading : Calculates a robust 0-100 score based on Volume, Block Size, Sweep Depth, and Displacement. Ranks range from Prime (highest) to Weak (lowest), and the zone's visual opacity dynamically scales to highlight stronger setups.
⚙️ Settings
Bias : Filters the detection to show "Neutral" (both directions), "Bullish" only, or "Bearish" only.
Max Blocks : Limits the maximum number of active breaker blocks displayed simultaneously on the chart.
Pivot Lookback : Adjusts the lookback period for detecting Pivot Highs and Lows. Increase this value to detect major, higher-timeframe structural breakers, or decrease it for minor, short-term breakers.
Bullish / Bearish Colors : Fully customize the colors for both the historical Order Block zone and the active Breaker Block zone.
Remove Overlaps : When enabled, the script will automatically filter out and remove overlapping breaker zones, leaving only the most distinct blocks.
Show Rank : Toggles the display of the rank text appended directly to the block name (e.g., "Breaker Block (Premium)").
⚡️ Showcase
Bullish Breakers
Bearish Breakers
Ranked Breakers
🚨 Alerts
This indicator includes built-in dynamic alerts using PulseWire's `alert()` function. You can easily set up an alert on this indicator by selecting "Any alert() function call" in the Create Alert menu.
Bullish Breaker Alert : Fires when a new Bullish Breaker Block is confirmed on bar close. The alert message includes the rank of the block, allowing external filtering for high-probability setups.
Bearish Breaker Alert : Fires when a new Bearish Breaker Block is confirmed on bar close. The alert message includes the rank of the block.
⚠️ Disclaimer
Trading involves significant risk, and many participants may incur losses. The content on this site is not intended as financial advice and should not be interpreted as such. Decisions to buy, sell, hold, or trade securities, commodities, or other financial instruments carry inherent risks and are best made with guidance from qualified financial professionals. Past performance is not indicative of future results.
Indicator

Smart Money Concepts - Regime-Adaptive SMC [Dots3Red]█ SMART MONEY CONCEPTS — REGIME-ADAPTIVE SMC
This indicator attempts to bridge a gap that most SMC traders encounter in practice: the same pattern — an Order Block, a Fair Value Gap, a structure break — behaves differently depending on whether the market is trending or ranging. A bullish Order Block in a trending market is a continuation entry zone. The same pattern near the top of a range is a reversal signal. This script uses a built-in regime classifier to determine the current market character on every bar, then filters and interprets each SMC concept accordingly.
█ HOW THE REGIME CLASSIFIER WORKS
Three measurements are combined into a single trend score on every bar:
ADX (Average Directional Index) measures how strongly price is committed to a direction. It is normalized from its natural 0–60 range to a 0–1 scale by dividing by 60.
Choppiness Index measures directional efficiency — how much of price movement was "wasted" going sideways versus producing net progress. It is inverted so that high choppiness produces a low score. Near 38 (the Fibonacci trend boundary) the normalized value approaches 1.0. Near 100 (pure chop) it approaches 0.0.
The two values are averaged:
trend_score = (adx_normalized + choppiness_inverted_normalized) / 2
A score above 0.6 identifies a trending market. A score below 0.6 identifies a ranging market.
Volatility override: a separate check compares current ATR against its 50-bar SMA. If the ratio exceeds 1.5× the baseline, the regime switches to VOLATILE regardless of the trend score — because during genuine volatility expansion, both trend and reversal signals become unreliable.
Finally, a mode filter examines the last 6 raw regime values and returns the most frequent one. This prevents the regime from flickering on borderline readings.
█ WHAT EACH REGIME SHOWS
TRENDING (cyan bars): Market is moving directionally. Shows BOS labels confirming continuation, Order Blocks created at displacement-qualified BOS bars as continuation entry zones, and Fair Value Gaps as pullback targets in the trend direction. CHoCH signals are hidden — in a trend, CHoCH is usually a deep pullback, not a reversal.
RANGING (magenta bars): Market is oscillating between levels. Shows CHoCH labels flagging potential reversals at range extremes, Order Blocks at CHoCH bars as reversal entry zones, and Fair Value Gaps near range boundaries. BOS signals are hidden — a structure break in a ranging market is usually a liquidity sweep, not a genuine breakout.
VOLATILE (amber bars): ATR has expanded significantly above its baseline — earnings, macro events, sudden liquidations. Order Blocks and FVGs are suppressed because zones created during volatility spikes are historically unreliable. Structure labels (BOS) remain visible for position tracking only.
UNCERTAIN (slate bars): The classifier cannot confidently assign a regime. All signals are displayed so the trader has maximum information. This state occurs during the warmup period and at genuine transition boundaries.
█ ORDER BLOCK DETECTION
Order Blocks require an additional displacement filter before they are created. The body of the candle immediately before the BOS or CHoCH must exceed 0.8× ATR in absolute size. This ensures only candles with institutional-grade momentum qualify — eliminating the low-quality OBs that make most SMC scripts visually cluttered.
Mitigation uses standard ICT methodology: a bullish OB is consumed when price's low touches the top of the zone. A bearish OB is consumed when price's high touches the bottom of the zone. Consumed zones fade visually and stop extending.
█ FAIR VALUE GAP DETECTION
A bullish FVG exists when the high of candle is below the low of candle — a genuine three-candle imbalance where price moved too fast to fill. A minimum size filter of 0.15× ATR removes noise gaps. FVGs extend forward until price enters the gap, at which point they fade and stop tracking.
█ PREMIUM / DISCOUNT ZONES
Two horizontal lines divide the current 25-bar swing range:
• 75% level (red): price is in the upper quartile of the recent range — statistically expensive. In ranging markets this is a sell consideration zone.
• 25% level (green): price is in the lower quartile — statistically cheap. In ranging markets this is a buy consideration zone.
The HUD displays the current percentage position within the range in real time.
█ SMC BIAS MATRIX
The HUD includes a composite directional score built from three components:
• Structural trend (35 points): which direction is the structural_trend state machine currently pointing
• Premium / Discount position (30 points): which side of the range is price on
• Regime alignment (35 points): does the regime confirm the directional bias
In VOLATILE and UNCERTAIN regimes the bias is forced to 50% and displays "STAND ASIDE" or "WAIT FOR REGIME" — because the script suppresses OB and FVG signals in those states, showing a directional bias would contradict its own logic.
█ WHAT YOU SEE ON THE CHART
• Bar colors: every bar is tinted by the current regime — cyan (trending), magenta (ranging), amber (volatile), slate (uncertain). No labels or background fills — just the candles themselves change color, keeping the chart clean.
• BOS / CHoCH labels: small labels appear above swing highs (bullish breaks) or below swing lows (bearish breaks), offset by 1.5× ATR so they never overlap candle bodies.
• Order Block boxes: semi-transparent boxes that extend bar by bar until mitigated, then fade. Maximum 4 per direction.
• FVG boxes: thin semi-transparent boxes extending until filled, then fading. Minimum size filtered.
• Premium/Discount lines: two step-lines showing the 75% and 25% boundaries of the current swing range.
• HUD: regime state, confidence bar, bias matrix, P/D zone, ADX, Choppiness Index, ATR ratio, and live counts of active OBs and FVGs.
█ ALERTS
Seven alert conditions are available: Bull BOS, Bear BOS, Bull CHoCH, Bear CHoCH, Regime → Trending, Regime → Ranging, Regime → Volatile.
█ NOTES ON SETTINGS
• Regime Smoothing Filter: 5–7 for intraday charts, 8–12 for daily/weekly. Lower values react faster but produce more regime transitions.
• Volatile ATR Mult: 1.8–2.0 for stock indices (earnings create genuine 2× spikes), 1.4–1.6 for crypto and forex.
• OB Displacement Mult: 0.5–0.8 for daily charts where candles are naturally larger, 1.0–1.5 for intraday.
• Swing Pivot Length: 5–7 for intraday, 7–10 for daily/weekly.
█ DISCLAIMER
This indicator is a technical analysis tool. It does not constitute financial advice and does not guarantee future results. Past patterns do not predict future price behavior. Use appropriate risk management on all trades. Indicator

ICT Confluence Framework[BullByte]ICT Confluence Framework is a structural price-action engine that monitors the chart for five independent ICT-style behaviors and fires a directional setup only when several of them align inside a short structural window. Designed for intraday traders on 1m–15m charts in crypto, indices, and futures, with an auto-adapter that rescales every meaningful lookback to the chart timeframe.
Most ICT tools draw one element - order blocks, liquidity pools, BOS lines - and leave the trader to combine them mentally. This framework does the combining, scores the result against the current market regime and volatility phase, and prints one clean setup with an Entry, two Reference Levels, and an Invalidation level. The chart stays focused on what is currently relevant - no permanent boxes, no arrows on every candle, no flashing icons.
WHY THIS IS NOT A MASHUP
No public indicator is imported, wrapped, or re-skinned. Every detector is written from first principles against raw OHLCV. The five detectors share four custom layers that no single public indicator provides:
- A common confluence scoring layer with adaptive per-pattern weighting
- A regime classifier based on path efficiency
- A volatility-phase filter based on rolling ATR percentile rank
- A signal lifecycle manager with deterministic outcome resolution
The originality is in how five orthogonal behaviors are unified into one decision - not in the behaviors themselves.
THE FIVE BEHAVIORS MONITORED
1. Liquidity Sweep + Reclaim
Price violates a recent swing extreme - taking out resting stops - then closes back inside the prior range within a short window. The classic stop-hunt-then-reverse footprint.
2. Stopping Volume
A high-volume bar at a local extreme that closes with a strong rejection wick. Marks a level where aggressive flow was absorbed by passive flow.
3. Range Compression to Expansion
A bar that is the narrowest of its recent window is immediately followed by an expansion bar of meaningful size. A bullish expansion contributes to a bullish setup; a bearish expansion to a bearish one.
4. Break of Structure (BOS)
A close beyond the last confirmed pivot high or low. The script uses 3-bar right-confirmed pivots, so BOS prints with structural lag by design - this removes false breaks.
5. Order Block Mitigation
Price returns to the last opposing candle preceding a strong impulse, wicks into it, and closes back outside the zone.
Each behavior is detected independently against raw price and volume.
WHY THESE FIVE
At structural turning points markets do a small number of distinct things: they trap traders (sweep), they absorb flow (stopping volume), they release energy (compression-expansion), they confirm intent (BOS), and they retest origin (order block). When two or more of these align within the same structural window on the same side, the setup quality is materially higher than any one of them in isolation.
WHAT MAKES THIS DIFFERENT
Signals are stable. Detection and signal arming occur only on confirmed bar close. Once a setup prints, it does not move, redraw, or vanish on the next tick.
The script adapts to your chart. Every pattern carries a rolling reliability score calculated from its own follow-through history on the instrument and timeframe you are viewing. Follow-through is measured as maximum favorable excursion in ATR multiples over a configurable evaluation window. Patterns that have been working get more weight; patterns that have been failing get less, bounded by a user-set floor so no pattern is fully silenced.
Market regime is respected. An efficiency ratio (net displacement divided by path length) classifies the market as Trend Up, Trend Down, Range, Volatile, or Neutral. Inside this classification, BOS in a Range is soft-weighted to 0.4x and Expansion in a Volatile regime is soft-weighted to 0.5x. Counter-trend setups inside a strong trend are weighted down to 0.5x but still allowed.
Volatility phase aware. The current ATR's percentile rank classifies the bar as Quiet, Normal, or Active. Active phase tightens the required pattern count by one (capped at five). Quiet and Normal use the user's setting unchanged.
Confluence decay. A residual opposing score decays linearly by 1.0 per bar with no fresh pattern activity, so a stale opposing cluster cannot block a fresh signal indefinitely. The decayed value is also reset to zero on trade closure so the post-cooldown chart starts clean.
The chart stays clean. While no trade is active, the Hunting Layer shows what the script is monitoring. The moment a signal fires, every hunting visual that did not contribute to the signal and is not contextually inside the trade's expected path is erased. Contributors and contextual zones are recolored to the signal's direction and promoted into permanent history.
CHART EXAMPLE
1.ETH/USD 15m: Bullish Alignment: Expansion + BOS. Following a sharp bearish leg into a session low near 08:00, price entered a tight compression range between approximately 10:30 and 12:00. An expansion bar then broke above the last confirmed swing high (the LH pivot at ~11:00), firing the Compression-to-Expansion and Break of Structure detectors simultaneously. The framework printed a Bullish Alignment at 2036.60 with Invalidation at 2022.77. The market has advanced through Reference Level 1 (2050.43) and is approaching Reference Level 2 (2064.27).
2.ETH/USD 15m: Bullish High-Confluence: Sweep + BOS + OB. During a Range regime under Active volatility phase (which tightened the confluence requirement to three patterns), price swept the sellside liquidity at approximately 10:30 below a confirmed swing low. After consolidation, the entry bar at approximately 13:30 mitigated a bullish Order Block and broke above the local pivot. Three patterns aligned at signal close, firing a Bullish High-Confluence setup at 2118.34 with Invalidation at 2097.19. The market is currently advancing toward Reference Level 1 (2139.49) and Reference Level 2 (2160.64
3.ETH/USD 15m: Bearish Alignment: StopVol + BOS. Following a multi-hour consolidation between approximately 10:00 and 13:00 near the 2115–2125 area, price rejected the consolidation high with a high-volume bar at approximately 13:00, then broke below the local pivot. Stopping Volume and Break of Structure aligned on the same bar in a Volatile regime, firing a Bearish Alignment at 2110.89 with Invalidation at 2133.24. The setup is currently in progress, advancing toward Reference Level 1 (2088.54) and Reference Level 2 (2066.18), with a large sellside liquidity pool sitting in the path.
HOW TO READ THE OUTPUT
When a setup fires you will see four horizontal levels with right-side labels:
ENTRY (solid line, signal-direction color)
The closing price of the signal bar.
REFERENCE LEVEL 1 (dashed line, reference color)
Placed at 1R by default. Informational only - the setup does not close here. Useful for partial-exit planning or scaling.
REFERENCE LEVEL 2 (dashed line, reference color)
Placed at 2R by default. Reaching this level closes the setup as a success.
INVALIDATION (dotted line, invalidation color)
Placed at 3 ATR from entry by default. Reaching this level closes the setup as a failure.
Outcome and historical record
The setup closes when either Reference Level 2 or Invalidation is reached intrabar. Outcome is detected on the bar's high/low. When a single bar's range spans both levels, the setup closes on that bar; the script does not assume intrabar order, so the user should treat such ambiguous closures cautiously when reviewing historical results.
When the trade closes, right-side labels and connectors are removed and the four lines freeze at the closure bar. The signal label at the firing bar remains as a permanent record. To keep object counts within PulseWire limits on long histories, the script retains the most recent 400 signal labels and the most recent 400 closed-trade lines; older items are recycled automatically.
COOLDOWN
After any trade closes, the script waits a configurable number of bars before arming the next setup. Prevents back-to-back firing on noisy moves.
THE DASHBOARD
A 9-row status panel reports:
Regime - Trend Up, Trend Down, Range, Volatile, or Neutral.
Phase - Quiet, Normal, or Active.
Pattern rows - for each of the five behaviors: rolling Activity count and a Low / Medium / High Emphasis rating based on recent follow-through reliability on this chart.
Patterns Required - the integer minimum that must align for a signal to fire on the current bar. Equal to your "Minimum Patterns Required" input in Quiet and Normal phases; tightened by one (capped at five) in Active phase.
Status - Ready, Cooldown, or Signal Active.
THE HUNTING LAYER
Drawn while no trade is active and the script is hunting for confluence:
Buyside Liquidity zones - blue boxes above swing highs.
Sellside Liquidity zones - teal boxes below swing lows.
Bullish Order Blocks - teal boxes at the last bearish candle before a strong bullish impulse.
Bearish Order Blocks - red boxes at the last bullish candle before a strong bearish impulse.
Compression bars - amber boxes on narrow-range candles.
Stopping Volume markers - amber triangles at high-volume rejection candles at local extremes.
BOS labels - text labels at confirmed structural breaks, centered on the broken level.
Sweep markers - text labels at the bar where price violated a confirmed pivot extreme, marking where liquidity was taken.
Reclaim labels - text labels at the bar where price closed back inside the prior range, confirming the sweep. Together with the Sweep marker, these tell the complete two-event Sweep+Reclaim story.
HH / HL / LH / LL pivot labels - market structure narration. Pivots are independent of the BOS module switch and are shown whenever the pivot toggle is enabled.
Duplicate BOS, Sweep, and Reclaim markers at the same price level within a recent window are automatically suppressed. Each confirmed pivot can be swept and reclaimed at most once until a new pivot forms.
At signal fire
Each active hunting item is evaluated:
- If its pattern type contributed to the signal, it is recolored to the signal's direction and promoted to history.
- If it is a liquidity zone or order block sitting inside the trade's expected path AND structurally aligned with the trade, it is promoted as context.
- Everything else is erased instantly.
At signal fire, BOS and Reclaim markers are explicitly drawn so every fired setup carries its structural anchor. The Reclaim marker is guaranteed when the Sweep pattern contributed; the BOS marker is drawn when BOS contributed and no recent BOS marker exists at the same level.
TIMEFRAME GUIDANCE
1m and 3m - high-frequency scalping on liquid pairs (BTC/USDT, ETH/USDT, NQ, ES).
5m and 15m - intraday swing entries on the same instruments and other liquid markets.
30m and above - functional but signal frequency drops noticeably; suitable for positional approaches.
The Auto-Calibrate by Timeframe input automatically scales swing lookback, ATR length, volume lookback, sweep window, stopping-volume percentile, and compression lookback. Disable only for full manual control.
HOW TO USE IT
1. Load on a clean chart. Leave Auto-Calibrate enabled.
2. Watch the Hunting Layer to see what the script is monitoring.
3. Wait for a signal label to print at bar close. The label text lists the contributing patterns.
4. The four levels appear automatically.
5. The setup auto-closes when Reference Level 2 or Invalidation is reached. After cooldown, hunting resumes.
INPUTS GUIDE
Auto-Calibrate by Timeframe - master switch that scales all lookbacks to the chart timeframe.
Pattern Modules - enable or disable any of the five detectors individually.
Core Parameters - manual swing, ATR, and volume lookbacks (used when Auto-Calibrate is OFF).
Pattern Tuning - per-pattern sensitivity controls.
Adaptive Learning - evaluation window, follow-through threshold in ATR multiples, learning memory, and minimum emphasis floor.
Regime Filter - toggle regime awareness and set its lookback.
Volatility Phase - toggle phase-based threshold tightening and set its lookback.
Confluence Decay - toggle linear decay of residual opposing scores.
Output - Quiet Mode (only High-Confluence tier fires), minimum patterns required, cooldown bars, RR for Reference Levels 1 and 2, Invalidation distance in ATR multiples, and label offset from the last bar.
Visual - color tones for bullish, bearish, reference, invalidation, and label background.
ICT Hunting Layer - individual toggles and color controls for every visual element and the legend panel.
ALERTS
Six alert conditions cover every tier and direction combination:
- Bullish High-Confluence
- Bearish High-Confluence
- Bullish Alignment
- Bearish Alignment
- Bullish Watch
- Bearish Watch
Add through the standard PulseWire alert dialog.
TECHNICAL NOTES
- All pattern detection and signal arming occur on confirmed bar close. No intrabar fires, no repaint.
- No request.security() calls. No higher-timeframe lookups. No lookahead modifiers. No future leakage.
- Pivots use 3-bar right confirmation - structural lag is intentional and removes false breaks.
- The script uses one active trade slot at a time. New setups can only arm after the current one closes and cooldown expires.
- Same-bar conflict between Reference Level 2 and Invalidation resolves conservatively as invalidation. This is the honest interpretation when intrabar order is unknown.
- Object retention is bounded: 400 signal labels, 400 closed-trade lines, 400 hunting-history items. Adaptive learning memory is configurable up to 1000 bars per pattern.
WHAT THIS SCRIPT IS NOT
- Not a strategy. It does not place trades or compute P&L.
- Not a holy grail. No indicator is.
- Not a black box. Every threshold and lookback is exposed as an input.
- Not predictive. It reacts to confirmed structural events at bar close.
DISCLAIMER
This script is published as an open-source educational and analytical tool. It does not constitute financial advice, a recommendation to buy or sell any instrument, or any guarantee of future performance. Past behavior of any pattern on any chart does not guarantee future results. You are solely responsible for your trading decisions, your risk management, and your testing on a demo environment before any live use. The author and PulseWire accept no liability for losses incurred from use of this script.
CREDITS
Concepts inspired by public ICT (Inner Circle Trader) educational material. All detection logic, scoring, regime classification, adaptive learning, lifecycle management, and visualization is original implementation by the author. Indicator

Indicator

ICT ADR Levels - Judas x Daily RangeThis indicator provides a clean and flexible way to monitor Average Daily Range (ADR) with two distinct calculation modes, along with visual levels and a detailed historical table.
Calculation Modes
- Classic Mode: Uses the standard daily candle range (high minus low of regular daily bars). This is the traditional daily range calculation.
- Midnight Mode: Calculates the daily range from midnight to midnight in America/New_York time. This provides a true calendar-day range independent of session opens.
You can switch between the two modes instantly using the dropdown in the settings. All table values, percentages, and 80% ADR levels update dynamically based on the selected mode.
The indicator plots the following levels from a session anchor point:
- Full ADR (above and below)
- 1/3 ADR (Judas levels)
- 80% ADR measured from the current daily high and low (two lines) - user selectable %
All lines are dynamically managed to avoid duplication and update cleanly as new sessions begin. Labels on the right side display price levels and can be toggled on or off.
Historical Table
A customizable table displays the following information for the selected number of days:
- Day or Date (user selectable)
- 5-Day ADR value for each historical day
- 80% of that day's 5-Day ADR
- Actual daily Range
- Percentage of the 5-Day ADR reached that day
The current/live row shows Today's Range compared against the active 5-Day ADR, including the percentage reached and the 80% target level. The table supports multiple sizes and positions.
Key Features
- Toggle between Classic and Midnight ADR calculations
- 80% ADR levels drawn from daily high and low
- Clean, non-duplicating horizontal lines and labels
- Historical data table with day/date, ADR, 80% ADR, Range, and percentage columns
- Adjustable styling, colors, text size, and visibility for all elements
- Option to plot levels from a session anchor or current price
This tool is designed for traders who want precise ADR-based levels with the flexibility to choose between standard daily ranges and strict midnight-to-midnight calculations. Indicator

Indicator

Indicator

Liquidity Sweeps [Quantum Algo]Liquidity Sweeps is an open-source liquidity sweep indicator that maps resting
liquidity at swing highs and swing lows, then flags the exact moment that liquidity is swept and
rejected — the classic stop-hunt behaviour traders watch for in Smart Money Concepts (SMC).
WHAT IS A LIQUIDITY SWEEP?
A liquidity sweep (also called a liquidity grab or stop hunt) happens when price briefly spikes
beyond an obvious swing high or swing low — where stop-loss and breakout orders rest — and then
closes back inside the prior range. The wick takes the liquidity; the close shows the breakout
failed. Liquidity sitting above swing highs is buy-side liquidity (BSL); liquidity sitting below
swing lows is sell-side liquidity (SSL).
A bearish liquidity sweep occurs when buy-side liquidity above a swing high is swept and price
closes back below it. A bullish liquidity sweep occurs when sell-side liquidity below a swing low
is swept and price closes back above it.
HOW THE INDICATOR WORKS
- It detects confirmed swing highs and swing lows using a configurable pivot strength, and draws a
liquidity level at each one. Buy-side levels sit above price; sell-side levels sit below.
- Each level extends to the right until it is interacted with.
- When a candle wicks through a level but closes back inside, the indicator marks a liquidity
sweep with a label and an optional highlight on the sweeping wick.
- An optional volume filter confirms only sweeps where the sweeping candle trades above its
average volume, filtering out low-conviction wicks.
- If price instead closes fully through a level, that is treated as a clean break (a plain
liquidity grab / breakout), not a sweep, and the level is retired without a signal.
WHAT IT SHOWS
- Mapped buy-side (BSL) and sell-side (SSL) liquidity levels.
- Bullish and bearish liquidity sweep markers, the moment a level is swept and rejected.
- Optional wick highlighting on the sweep candle.
- A dashboard showing bullish/bearish sweep counts, the last sweep direction, and the nearest
un-swept buy-side and sell-side levels with their percentage distance from price.
HOW TO USE IT
Liquidity sweeps are most useful as a timing and context tool, not a standalone buy/sell system.
A common workflow:
- Mark the obvious highs and lows where liquidity is likely resting.
- Wait for a sweep into one of those pools (a wick through, close back inside), ideally with the
volume filter confirming participation.
- Look for confirmation in your own process — a market-structure shift, an order block, a
fair-value-gap fill, or higher-timeframe trend alignment — before acting.
- A bearish sweep above resistance can precede a move down; a bullish sweep below support can
precede a move up. Always define risk beyond the swept extreme.
SETTINGS
- Pivot Strength: how many bars define a swing; higher values keep only major liquidity pools.
- Max Levels per Side: how many recent levels to keep mapped.
- Volume Confirmation: toggle, average length, and multiplier to qualify a sweep.
- Treat Clean Breaks as Grabs: retire levels that are broken through rather than swept.
- Line width, style, and transparency for clear level visibility.
- Full colour controls and a movable dashboard.
ALERTS
Three named alert conditions are included: Bullish Liquidity Sweep, Bearish Liquidity Sweep, and
Any Liquidity Sweep.
DISCLAIMER
For educational purposes only. This is a technical analysis tool, not financial advice, and it does
not predict price. Trading involves risk and you can lose your capital. No indicator is profitable
on its own — always do your own research and use proper risk management. Indicator

Market Structure (BOS / CHOCH), Advanced & ImprovedMarket Structure (BOS / CHOCH)
A clean, dual-layer market structure tool that labels Break of Structure and Change of Character from a single, internally consistent trend engine, then projects the resting liquidity those swings leave behind.
The core idea
BOS and CHOCH are the same break. What separates them is direction relative to the current trend, so this script tracks one trend state and derives the label from it:
BOS (Break of Structure) : price breaks a swing level in the direction of the trend. Continuation.
CHOCH (Change of Character) : price breaks a swing level against the trend. Reversal, and it flips the trend state.
Because both signals come from one state machine, you never get contradictory labels: a break with the trend is always BOS, a break against it is always CHOCH.
Dual-layer structure
The engine runs twice at the same time:
Swing structure (longer pivot length) : the major skeleton, drawn bold, with trailing watched-level lines and HH / HL / LH / LL swing labels.
Internal structure (shorter pivot length) : the minor continuation breaks inside each swing leg, drawn thin and faded so they read as secondary.
This lets you see a minor bullish BOS unfolding inside a major downtrend, which is the context most single-length tools miss.
Liquidity pools
Every unbroken swing high (buy-side) and swing low (sell-side) is projected to the right as a resting liquidity line, and removed the moment price wicks through it. What stays on screen is only live, untaken liquidity, the levels most likely to be targeted next.
Features
BOS / CHOCH detection with a single coherent trend state
Dual-layer swing and internal structure
Trailing lines marking the exact levels currently being watched
HH / HL / LH / LL swing labels, color coded by structural meaning
Buy-side and sell-side liquidity pools with auto removal on sweep
Top-right trend table showing the swing and internal trend state
Close or Wick break confirmation
Eight alert conditions: swing and internal, BOS and CHOCH, bullish and bearish
Inputs
Swing length and Internal length : pivot lookback for each layer. Lower values catch more structure, higher values show only major moves.
Break confirmation : Close requires a close beyond the level, Wick accepts any wick beyond it.
Toggles for BOS, CHOCH, active levels, swing labels, liquidity, internal layer and the trend table.
How to use
Trade with the swing trend, use internal CHOCH for early reversal warnings and internal BOS for continuation entries.
Watch the liquidity pools as targets, a sweep of one followed by a CHOCH in the opposite direction is a classic reversal setup.
Tune the swing length to your timeframe so the major structure matches the moves you actually trade.
Notes
Swing pivots confirm a fixed number of bars after they print, which is inherent to all structure tools and not repainting. On the live, unclosed bar a break can update until the bar closes, so set alerts to "Once Per Bar Close" for confirmed signals.
This script is a market analysis tool, not financial advice. Always do your own research and manage risk. Indicator

Delivery Shift CISD [Viprasol]Overview
This indicator is based on an open-source "Change in State of Delivery (CISD)" community script, which detects the ICT concept of a delivery shift — the moment price reverses and closes back through the opening level of the opposing momentum leg that produced it. The original tracks swing-point liquidity, detects bullish and bearish CISD events using a displacement-ratio test, marks the origin level, and flags "strong" CISDs that occur right after opposing liquidity is swept. This version keeps that detection engine intact and adds a Viprasol confluence and execution layer: a 0-4 confluence score with A/B/C grading, optional volume-surge and higher-timeframe bias filters, a signal cooldown, a minimum-score gate, and an ATR-anchored Entry/SL/TP risk overlay drawn on qualified signals.
It is built for ICT/SMC traders who use CISD as a confirmation of intraday delivery direction and want each event graded by confluence, with optional filters and an automatic risk projection.
How It Works
Swing Liquidity (from original):
Pivot highs and lows over the swing period create horizontal liquidity lines that extend forward each bar. A line is mitigated when price trades through it (high >= level for a high, low <= level for a low) on a confirmed bar, and removed; lines older than the expiry threshold stop updating. The most recently mitigated high and low, and how many bars ago they were taken, are retained for the sweep test below.
CISD Detection (from original):
When a candle flips color (a down candle followed by an up candle, or vice versa), its open is stored as a potential CISD origin along with its bar index. On each later bar the script checks whether price has closed back beyond that stored open. If it has, it measures the displacement of the leg as a ratio: for a bearish CISD, (highest close in the leg − origin open) / (top of the bearish run − origin open). If that ratio exceeds the Noise Filter, the event qualifies as a CISD, the origin level is drawn, and the trend state flips. Weaker candidates are discarded and the scan continues to older candidates.
Liquidity-Sweep Confluence (from original):
A CISD is flagged "strong" when it fires within the liquidity-lookback window after the opposing liquidity was swept — a bearish CISD where a swing high was just taken and price closed back below it, or a bullish CISD where a swing low was taken and price closed back above. These print the labeled sweep arrows.
Confluence Score & Grade (new):
Every CISD event is scored 0-4 by summing four independent confluence checks:
score = strongDisplacement? + liquiditySweep? + htfAligned? + volumeSurge?
- strongDisplacement = the measured ratio is at least halfway between the Noise Filter and 1.0 (a decisively strong leg, not a marginal one).
- liquiditySweep = the original sweep confluence is present.
- htfAligned = the CISD direction agrees with the higher-timeframe EMA.
- volumeSurge = volume on the CISD bar exceeds its rolling average × the multiplier.
The score maps to a grade — A (>= 3), B (= 2), C (<= 1) — labeled at the origin level.
Filters & Qualified Signals (new):
Four optional gates can be applied without altering the original CISD drawing: a volume-surge requirement, a higher-timeframe EMA bias (bull only above, bear only below), a per-signal cooldown (minimum bars between qualified signals), and a minimum-confluence-score requirement. A CISD that passes all active gates becomes a "qualified" signal, which is what the risk overlay and the two new qualified alerts use. With every gate at its default (cooldown 0, filters off, min score 0), every CISD qualifies and the original behaviour is unchanged.
Risk Overlay (new):
On a qualified CISD, the script projects three lines: Entry at the CISD origin level, Stop-Loss beyond the CISD swing extreme (the highest/lowest close captured during detection) plus an ATR buffer, and Take-Profit at Entry ± risk × the Risk:Reward ratio, where risk is the Entry-to-SL distance. Colored ENTRY/SL/TP price labels mark the line ends. Only the most recent qualified signal's projection is kept, to avoid clutter.
What Is Original (Viprasol Additions)
1. Confluence score (0-4) and A/B/C grade per CISD, from displacement strength, liquidity sweep, HTF alignment, and volume surge.
2. Minimum-confluence-score gate and the "qualified signal" concept layered on top of raw CISD detection.
3. Optional volume-surge filter (volume above its rolling average × multiplier on the CISD bar).
4. Optional higher-timeframe EMA bias filter (and an always-computed HTF read used for grading).
5. Per-signal cooldown to prevent qualified-signal clustering.
6. ATR-anchored Entry/SL/TP risk overlay with colored price labels, with the stop anchored to the CISD swing extreme.
Key Features
From the Original:
- Swing-point liquidity lines with forward extension, mitigation, and expiry
- Displacement-ratio CISD detection for both directions with a Noise Filter
- Origin-level lines drawn on each CISD
- Trend/delivery-state tracking
- Liquidity-sweep confluence with labeled strong-CISD arrows
- Swing-high / swing-low dots
- Trend-gradient candle coloring
Added in This Version (Viprasol):
- 0-4 confluence score with A/B/C grade label
- Minimum-score gate and qualified-signal logic
- Volume-surge filter, HTF EMA bias filter, and signal cooldown
- ATR-anchored Entry/SL/TP risk overlay with price labels
- Info dashboard (delivery state, last grade, sweep, HTF bias, volume, live liquidity counts)
- Two new alerts for qualified bull/bear signals; all alert messages made dynamic
How to Use
Getting Started:
1. Add to a standard candlestick chart (not Heikin Ashi).
2. With defaults, every CISD is drawn and graded — read the A/B/C label to judge each event's confluence.
3. To trade only stronger setups, raise the Minimum Confluence Score or enable the volume / HTF filters.
Reading the Chart:
- Candles tint green/red with the current delivery state.
- A thick green/red horizontal line marks a CISD origin level; the A/B/C label shows its grade.
- ▲/▼ arrows mark strong CISDs that followed an opposing liquidity sweep.
- On a qualified CISD (with SL/TP enabled), Entry/SL/TP lines and price labels project to the right.
Recommended Starting Points:
- Intraday (1m-15m): Swing Period 10-12, Noise Filter 0.6-0.7, Min Score 0-1
- Swing (1H-4H): Swing Period 15-20, Noise Filter 0.7-0.8, Min Score 2, enable HTF bias
- Higher conviction: Min Score 3 (grade A), or require volume surge + HTF bias
These are starting points only — every market and timeframe behaves differently. Backtest and adjust before trading live.
Settings
Calculations: Noise Filter (displacement ratio threshold), Swing Period, Expiry Bars, Liquidity Lookback.
Signal Filters (Viprasol): signal cooldown, volume-surge requirement (length + multiplier), and HTF EMA bias (resolution + length).
Confluence & Quality (Viprasol): show grade on CISD, minimum confluence score.
Risk Overlay (Viprasol): show SL/TP on qualified CISD, show price labels, ATR period, SL ATR buffer, Risk:Reward.
Appearance: bullish/bearish colors, candle body and wick transparency, hide expired levels, hide mitigated levels.
Dashboard / Display: dashboard toggle and position.
Alerts
1. Swing High Mitigation — a swing-high liquidity line was taken
2. Swing Low Mitigation — a swing-low liquidity line was taken
3. Bearish CISD — a bearish change in state of delivery fired
4. Bullish CISD — a bullish change in state of delivery fired
5. Strong Bearish (Sweep) — bearish CISD following an opposing liquidity sweep
6. Strong Bullish (Sweep) — bullish CISD following an opposing liquidity sweep
7. Qualified Bull — a bullish CISD that passed all active filters and the score gate
8. Qualified Bear — a bearish CISD that passed all active filters and the score gate
All alerts include {{ticker}}, {{close}}, and {{interval}} for dynamic notification messages.
Limitations & Disclaimer
- CISD detection scans backward through stored candidate origins and uses closing relationships; signals are evaluated as bars confirm and the displacement ratio is measured after the move.
- The HTF EMA bias uses request.security with lookahead disabled; HTF values update only as the higher-timeframe bar develops.
- Swing liquidity lines are capped (oldest pruned) and can expire; in fast markets some mitigations may occur off-screen relative to the visible levels.
- The risk overlay's stop is anchored to the captured swing extreme plus an ATR buffer — it is a mechanical projection, not an optimized stop, and the lines are visual references only; they do not place or manage trades.
- Filters and the minimum-score gate reduce the number of qualified signals; in choppy conditions valid CISDs may not qualify, while with all gates off qualified signals equal raw CISDs.
- Past performance does not guarantee future results. This indicator is for educational and analytical purposes only and is not financial advice. Always use proper risk management and test on historical data before trading live.
Credits & Attribution
Based on an open-source "Change in State of Delivery (CISD)" community indicator, which provided the swing-point liquidity lines with extension/mitigation/expiry, the displacement-ratio CISD detection for both directions, the origin-level drawing, the trend/delivery-state tracking, the liquidity-sweep confluence with labeled strong-CISD arrows, the swing dots, and the trend-gradient candle coloring. CISD is an Inner Circle Trader (ICT) concept. Added by Viprasol: the 0-4 confluence score and A/B/C grading, the minimum-score gate and qualified-signal logic, the volume-surge and HTF EMA bias filters, the signal cooldown, the ATR-anchored Entry/SL/TP risk overlay with colored price labels, the info dashboard, and the two additional qualified-signal alerts with dynamic messages.
Published open-source per PulseWire House Rules.
Indicator

OHLC-OLHC [ARKN] ARKN combines three time-based analysis tools into a single overlay so that session context, higher-timeframe structure, and cross-asset divergence can be read together on one chart, without stacking three separate indicators.
What it does
Killzones — Draws up to four configurable session boxes (defaults: Asia, London, NY AM, NY PM) with optional session high/low pivot lines, midpoints, day-of-week labels, opening-price lines, and an "opening candle" marker. Pivots can extend until mitigated or past mitigation, with optional alerts when a session high or low is broken.
HTF Candles — Renders up to four higher-timeframe candle sets to the right of the live price, each with its own timeframe and display count. Optional Fair Value Gap and Volume Imbalance boxes, a remaining-time countdown, and interval labels are drawn directly on the projected candles.
Sequential SMT (SSMT) — Detects SMT-style divergence between correlated instruments across nested cycles (Micro, 90-minute, Daily, Weekly, Monthly). Triads can be set automatically for common groups (metals, indices, FX, crypto, futures) or defined manually, with an inverse option for negatively-correlated pairs. Both standard (wick-based) and hidden (body/close-based) divergences are supported.
Why these three together
The three modules answer three sequential questions a session-based trader asks in order: when (Killzones frame the active session), what structure (HTF Candles show the higher-timeframe bias forming in real time), and confirmation (SSMT flags when a correlated instrument fails to confirm the move). Combining them removes the need to switch layouts or sync timeframes manually, since all three share the same timezone and session logic.
How to use
Set your timezone under Settings; all sessions and cycles reference it.
Each module has a master ON/OFF toggle at the top of its settings group.
For SSMT, either leave Triad Selection on Auto (it picks correlated assets for the current symbol) or set Manual to define your own triad. Lower timeframes show Micro/90m cycles; higher timeframes show Daily/Weekly/Monthly.
HTF Candle timeframes must be higher than the chart timeframe to display.
Settings overview
Global: drawing limit, timeframe limit, timezone, label size, text color, cutoff time. Per module: session times and colors (Killzones), timeframe and candle count (HTF Candles), cycle visibility, line styles, and correlation triads (SSMT).
Note on originality
This script combines well-established, publicly-discussed ICT community concepts — session Killzones, projected higher-timeframe candles, and SMT/Sequential SMT divergence. These concepts are not original to this script; the contribution here is integrating all three into one configurable overlay with shared session and timezone handling. The script is published open-source so the implementation can be reviewed and reused. Indicator

ICT PD Arrays [LunqFX] FVG, Displacement & Smart Money ZonesICT PD Arrays is a complete Smart Money Concepts toolkit built on the Inner
Circle Trader (ICT) methodology. It maps the full Price Delivery Array —
7 interconnected modules working together to identify where institutions
accumulate and distribute positions across any liquid market.
█ WHAT IT DOES
Most ICT indicators cover one concept in isolation — a Fair Value Gap, or
just Premium/Discount zones. This script combines all core PD Array
components into one cohesive system and ties them together with an ISD
state machine and a live HUD dashboard that shows full market context
at a glance.
Seven modules run simultaneously on every bar:
Fair Value Gaps (FVG) + Inversion FVG + Balanced Price Range (BPR)
Premium / Discount Zones + OTE Fibonacci Zones + Equilibrium Line
Displacement Detection with ATR and Volume confirmation
Inducement (IDM) — false breakout / liquidity trap detection
ISD Sequence state machine (Inducement → Sweep → Displacement)
Killzones — London, New York, Asian, Silver Bullet sessions
Live HUD Dashboard — all signals aggregated in real time
█ HOW IT DOES IT
FAIR VALUE GAPS
A Fair Value Gap is a 3-candle price imbalance where the gap between
candle 1's extreme and candle 3's extreme was never traded. Institutions
use these gaps as re-entry points — price gravitates back to fill them.
Detection uses a confirmed 3-candle structure with a bar offset so
the current live bar never creates a new FVG. No repainting.
An ATR(14)-based minimum size filter removes micro-gaps that carry no
significance. Raise the multiplier to see only strong imbalances.
Mitigation is tracked in real time. Once price crosses the CE midpoint
(Consequent Encroachment — the 50% level of the gap), the box fades.
When price fully passes through a gap it automatically converts to an
Inversion FVG (IFVG) — former support becomes resistance, box recolors.
Balanced Price Range (BPR) detects spatial overlap between the most
recent bullish FVG and bearish FVG. The overlap zone is where both
buyer and seller imbalances exist at the same price — the strongest
equilibrium area on the chart.
PREMIUM / DISCOUNT ZONES + OTE
ICT divides any dealing range into two halves: Premium (above 50%) where
institutions sell, and Discount (below 50%) where institutions buy.
Swing highs and lows are detected via pivot logic with a configurable
lookback. The range between the last confirmed pivot high and pivot low
becomes the active dealing range.
Two OTE zones are drawn using Fibonacci retracement logic:
OTE Buy zone — 21.4% to 38.2% from the low
= 61.8%–78.6% retracement FROM the swing high
= deepest discount, highest-probability long area
OTE Sell zone — 61.8% to 78.6% from the low
= deepest premium, highest-probability short area
Math:
OTE Buy Top = SwingLow + Range x 0.382
OTE Buy Bot = SwingLow + Range x 0.214
OTE Sell Top = SwingLow + Range x 0.786
OTE Sell Bot = SwingLow + Range x 0.618
Zones update automatically when new pivots are confirmed.
DISPLACEMENT
Displacement is not simply a large candle. In ICT theory it marks a
genuine shift of institutional order flow — it must show conviction.
Three conditions must all be satisfied simultaneously:
Body >= ATR(14) x multiplier (default 2.0)
Filters out average volatility, keeps only significant momentum.
Wick-to-range ratio below threshold (default 30%)
A large wick relative to range signals indecision, not displacement.
Formula: (High - Close) / Range for bulls,
(Close - Low) / Range for bears.
Optional volume filter: Volume > SMA(20) x 1.5
Confirms institutional participation behind the move.
Disable for spot Forex where tick volume is unreliable.
Displacement candles are the primary FVG trigger — the gap left behind
a displacement candle is the highest-quality FVG to trade.
INDUCEMENT (IDM)
Inducement is how institutions engineer a false breakout to grab
retail stop-loss liquidity before reversing price the other way.
Detected when price temporarily sweeps beyond a recent swing high or
low and then closes back inside the range. An ATR-based wick filter
ensures only meaningful sweeps qualify — micro-breakouts are excluded.
Bear Trap: price sweeps below a recent low and closes above it.
Bull Trap: price sweeps above a recent high and closes below it.
A 25-bar cooldown prevents label flooding in trending conditions.
The signal still feeds the ISD state machine on every bar regardless.
ISD SEQUENCE STATE MACHINE
ISD stands for Inducement, Sweep, Displacement. This is the complete
3-step institutional setup that ICT traders look for before entering.
The module runs as a persistent state machine tracking progress
across bars in real time:
Score 1/3 — IDM confirmed. Liquidity has been grabbed.
Score 2/3 — A structural sweep of a 5-bar high or low confirmed.
Score 3/3 — A Displacement candle fires in the same direction.
Label appears on chart. State resets automatically.
A 50-bar timeout resets the sequence if no follow-through occurs,
preventing stale signals from contaminating new setups.
ISD 3/3 is the single highest-confidence signal in this indicator.
All three institutional steps have completed in the correct order.
Dashboard shows live progress: Score 0 to 3 with block indicators.
KILLZONES
ICT defines specific time windows where institutional order flow
is at its highest. The script highlights four of them:
London Open 02:00 - 05:00 New York time
New York Open 08:30 - 11:00 New York time
Asian Session 20:00 - 00:00 New York time
Silver Bullet 10:00 - 11:00 New York time
The Silver Bullet is a specific 1-hour ICT window occurring inside
the New York session — considered one of the highest-probability
entry windows in the entire ICT model.
Killzones are automatically hidden on timeframes 4H and above.
LIVE HUD DASHBOARD
A real-time panel in the bottom-left corner aggregates all modules:
Zone current price position (PREMIUM / DISCOUNT / EQ)
with gradient background that shifts green to red
EQ Level exact equilibrium price of the current dealing range
Bull FVG count of active non-inverted bullish gaps
Bear FVG count of active non-inverted bearish gaps
BPR whether a Balanced Price Range is currently active
Displace direction of the most recent displacement candle
IDM most recent trap type — Bear Trap / Bull Trap / None
ISD Score live block progress from 0/3 to 3/3
ATR (14) current ATR value
Timeframe active chart timeframe
█ HOW TO USE
Recommended workflow for intraday setups on 1m to 1H timeframes.
Step 1
Check the dashboard Zone. If PREMIUM, look for short setups only.
If DISCOUNT, look for long setups only. Never trade against the zone.
Step 2
Wait for an IDM label. This confirms retail stop-loss liquidity has
been swept in the direction you are looking to trade.
Step 3
Watch the ISD score reach 2/3 — a structural sweep is confirmed in
the same direction as the IDM.
Step 4
When a Displacement candle fires and ISD reaches 3/3, the complete
institutional sequence is confirmed. This is the entry trigger.
Step 5
Enter on a retest of the FVG left by the displacement candle.
For the highest-precision entry, wait for price to reach the OTE
zone within the FVG (61.8%–78.6% retracement level).
Step 6
Use Killzones to time entries. Highest-probability window is the
Silver Bullet (10:00–11:00 NY). London and NY Open are second.
For higher timeframe analysis on 4H and Daily: use Premium/Discount
zones and swing structure only. Ignore Killzones and FVG entries.
█ SETTINGS GUIDE
Fair Value Gaps
Min FVG Size (ATR mult) raise to filter weak gaps, 0 shows all
Max FVGs to Show limits drawn gaps, default 5
Show CE Midline shows the 50% Consequent Encroachment level
Show Inverted FVG recolors box when price passes through fully
Show BPR draws overlap zone between bull and bear FVGs
PD Arrays
Swing Detection Length longer lookback gives bigger dealing ranges
Show OTE Zones draws the Fibonacci entry zones
Show Equilibrium Line draws the 50% midpoint with price label
Displacement
Body Size (x ATR) momentum threshold, raise for stronger signals
Max Wick/Range Ratio lower value requires cleaner committed candles
Volume Filter disable for Forex, enable for stocks/futures
Inducement
IDM Lookback Bars how far back to find the reference high/low
Min Wick Size (x ATR) raise to filter micro false-breakouts
ISD Sequence
Min Score to Show Label set to 3 to see only complete 3/3 setups
Killzones
Each session can be toggled independently.
█ ALERTS
Bullish FVG Formed
Bearish FVG Formed
Bullish Displacement — check for FVG entry
Bearish Displacement — check for FVG entry
Full ISD Sequence (3/3) — high-probability setup complete
Bullish Inducement (IDM) — Bear Trap detected
Bearish Inducement (IDM) — Bull Trap detected
█ TECHNICAL NOTES
All ta.* function calls — ATR, SMA, pivot highs/lows, highest, lowest —
are executed unconditionally at the top script level in compliance with
the Pine Script v6 execution model. Never inside conditionals or
functions called conditionally.
FVG detection is locked to barstate.isconfirmed with a bar offset.
The current live bar never creates a new FVG box. No repainting.
The ISD state machine uses persistent var variables with inline
assignment in the main execution body. Pine v6 does not allow global
variable reassignment inside functions, so the state machine runs
directly in the main script scope with a 50-bar timeout guard.
█ DISCLAIMER
This indicator is provided for educational and informational purposes
only. It does not constitute financial advice or a recommendation to
buy or sell any financial instrument. Past performance of any trading
concept or signal is not indicative of future results. All trading
involves risk. You are solely responsible for your own trading decisions.
Always use proper risk management.
© LunqFX Indicator

Market Structure Target Tracker [MarkitTick]💡 An advanced, multi-faceted analytical suite designed for traders who rely on price action and logical trend progressions. By systematically identifying structural pivots in the market, this tool automatically maps out Break of Structure (BOS) and Change of Character (CHoCH) events. Rather than simply plotting support and resistance, it integrates a sophisticated risk-management framework directly onto the chart, calculating dynamic Entry, Stop Loss (SL), and multiple Take Profit (TP) levels based on market volatility.
Price action trading requires constant vigilance to identify local maxima and minima. This script relieves the trader of manual chart marking by perpetually analyzing rolling windows of price data. When an established swing high or low is breached, the indicator locks in the structural shift, evaluates higher timeframe momentum to filter out false breakouts, and establishes a forward-looking target zone.
✨ Originality and Utility
Most market structure indicators limit their functionality to placing historical labels on the chart. The originality of this script lies in its forward-looking, state-aware tracking mechanism. It operates not just as an indicator, but as a simulated trade management dashboard.
Once a structural break occurs, the indicator shifts into an active tracking state. It dynamically projects Entry and SL/TP bands anchored to the breakout, using Average True Range (ATR) to adapt to the asset's current volatility. Furthermore, it continuously evaluates the life-cycle of the structural break, monitoring price action to determine if the target is successfully hit or if the setup is invalidated by an opposing swing breach. This level of state persistence provides traders with an objective, real-time assessment of trade feasibility, risk-to-reward ratios, and trend duration.
🔬 Methodology and Concepts
The script is built upon four foundational technical concepts, woven together into a unified logic sequence:
• Pivot Detection
The core engine scans for Pivot Highs and Pivot Lows. A Pivot High is confirmed when a specific bar's high is strictly greater than the highs of a defined number of bars both preceding and following it. This creates a fractal representation of market turning points.
• Break of Structure (BOS)
A bullish structure break occurs when the closing price of a confirmed bar exceeds the most recent Pivot High. Conversely, a bearish break occurs when the close drops below the most recent Pivot Low. The script categorizes the first break in a new direction as a CHoCH, and subsequent continuous breaks as BOS.
• Higher Timeframe (HTF) Alignment
To prevent trading against the dominant macroeconomic trend, the script optionally queries the Relative Strength Index (RSI) from a higher timeframe. If this filter is engaged, bullish breakouts are ignored unless the HTF RSI indicates bullish momentum, adding a crucial layer of directional confirmation.
• Volatility-Adjusted Target Mapping
Upon a valid breakout, the script captures the current ATR. It then maps out a predefined trade setup. The Entry is plotted slightly past the breakout line, the Stop Loss is placed at a multiple of the ATR away from the entry, and up to three Take Profit levels are projected using independent ATR multipliers.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
The indicator translates discretionary price action theory into a strict, rule-based algorithmic framework grounded in discrete mathematics and statistical dispersion.
• Local Extrema in Discrete Time Series
The pivot detection relies on the mathematical definition of local extrema within a bounded domain. For a given time series of high prices $H_t$, a local maximum is identified at time $t$ if $H_t \ge H_{t \pm k}$ for a defined neighborhood $k$ (the Swing Length). By anchoring structural logic to these extrema, the script removes the subjectivity of trendline drawing, relying strictly on empirical data points that define the boundaries of recent market equilibrium.
• Measurement of Dispersion via True Range
The risk management module utilizes the Average True Range. The True Range ( NYSE:TR $) is defined as the greatest of the following: the current high minus the current low, the absolute value of the current high minus the previous close, or the absolute value of the current low minus the previous close. The ATR is a smoothed moving average of this NYSE:TR $. In academic finance, variance and standard deviation are common measures of risk; however, ATR is particularly robust for trading applications as it accounts for overnight gaps and limits, providing a highly adaptive measurement of kinetic market energy to appropriately size stop-loss thresholds.
• Relative Momentum Standardization
The Higher Timeframe filter utilizes the Relative Strength Index. The RSI standardizes the velocity of price movement onto a 0-100 scale by comparing the exponential moving average of recent gains to recent losses. By enforcing a rule where NYSE:RSI > 50$ is required for bullish structural breaks, the algorithm mathematically demands that the higher-degree derivative of price (momentum) aligns with the lower-degree breakout, statistically reducing the probability of mean-reverting false breakouts.
🎨 Visual Guide
The script provides a rich, non-intrusive visual overlay to keep the trader informed of all active states and historical context.
• Structure Break Lines
Dashed Green Lines: Indicate historical and active Bullish breakouts.
Dashed Red Lines: Indicate historical and active Bearish breakouts.
Trend Labels: Triangles and markers (▲ BOS / ▼ CHoCH) appear at the midpoint of the break line to clearly annotate the structural shift.
• Trade Projection Lines
When a break is active, a cluster of dashed lines projects to the right of the current price action:
Blue Line (►): Proposed Entry level.
Red Line (✕): Stop Loss level based on ATR.
Green Lines (●, ★, ◆): Three tiered Take Profit targets based on escalating ATR multiples.
• The Heads-Up Dashboard
Located in the top right corner, this table is the operational nerve center. It displays:
Asset Ticker and Current Trend status.
HTF Direction and a visual block-bar representation of the HTF RSI.
Active BOS Level and Target Status (⏳ Pending or ✓ Hit).
Exact price coordinates for Entry, SL, and all TPs.
The active Risk-to-Reward (R:R) ratio for the first target.
Statistical tracking of Total BOS counts and the duration (in bars) of the active setup.
📖 How to Use
Traders can utilize this script as a complete ruleset for navigating trend continuations and reversals.
When observing the chart, wait for the script to print a new BOS or CHoCH label. This signifies that a confirmed candle has closed beyond a significant structural pivot. If the HTF filter is enabled, this break already has the backing of higher timeframe momentum.
Once the break prints, look to the dashed projection lines and the dashboard. The dashboard will display exact coordinates for a theoretical trade setup. You can use the blue Entry line to plan limit orders or market execution upon pullbacks. Set your structural stop-loss according to the red SL line, and place limit orders to secure profits at the green TP lines.
Monitor the Dashboard's "Tgt Status". If price action reverses heavily and crosses the opposing pivot point before reaching the target, the script will trigger its auto-invalidation sequence, clearing the active lines and returning to a neutral scanning state. This helps in dynamically cutting risk when a setup structurally fails.
⚙️ Inputs and Settings
The indicator is highly customizable, allowing adaptation to any asset or timeframe.
• BOS Group
Swing Length: Determines the lookback and lookforward period for pivot detection. Lower values react faster but produce more noise; higher values identify major macro swings.
• Visibility Group
Show BOS Line / Labels: Toggles the historical structural break drawings.
Auto-Invalidate: When enabled, the script will cancel an active setup if the opposing structural extreme is breached.
Color settings: Fully customize the hues for Bullish breaks, Bearish breaks, and Targets.
• SL/TP Group
Show Entry/SL/TP: Toggles the projection lines on the chart.
ATR Length: The lookback period for calculating market volatility.
Multipliers: Adjust the SL ATR Multiplier and the individual TP1, TP2, and TP3 multipliers to define your specific risk-to-reward parameters.
• HTF Group
HTF: Select the resolution for the higher timeframe filter (e.g., 240 for 4-hour, D for Daily).
HTF Filter: Toggle the momentum alignment requirement on or off.
HTF RSI Len: The period for the higher timeframe momentum oscillator.
• Alerts Group
The script features built-in webhook-ready JSON alerts that can notify external services the moment a BOS occurs or a target is successfully hit.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Meridian Flow [WillyAlgoTrader]🧭 Meridian Flow is an overlay Smart-Money toolkit that reads market structure the way an institutional trader does — detecting confirmed swing points, classifying every break as a BOS (trend continuation) or a CHoCH (trend reversal), drawing the order block each break leaves behind, and then turning that signal into a complete trade plan with ATR-based stop-loss, three take-profits, automatic break-even, and a live performance dashboard — all on one chart, with zero manual drawing.
The core idea: most "SMC" tools just paint boxes and labels and leave you to figure out the rest. Meridian Flow closes the loop. It does not stop at "here is a break" — it answers where to enter, where the stop goes, where the targets are, when to move to break-even, and how the setup has performed . Structure detection, order-block tracking, a higher-timeframe bias filter, a full risk engine, a structure-anchored trend line, and a sectioned dashboard are wired into a single pipeline so each part feeds the next.
It works on any market and any timeframe — forex, crypto, stocks, indices, futures — because every component is built from price action and ATR, not from instrument-specific assumptions.
🧩 WHY THESE COMPONENTS WORK TOGETHER
A raw BOS/CHoCH labeler tells you structure broke, but not whether to trust the break, where the institutional zone is, or how to manage risk once you're in. An order-block tool draws zones but has no concept of trade management. A risk calculator needs an entry it can't generate on its own. Used separately, you're constantly stitching three or four tools together by hand.
Meridian Flow fuses them into one chain:
Confirmed swing detection → HH/HL/LH/LL classification → BOS / CHoCH break engine → HTF bias filter → Order-block creation + mitigation tracking → ATR risk model (SL / TP1-3 / break-even) → Structure-anchored ATR trend line → Live stats & form dashboard → Alerts
The swing engine finds confirmed pivots. Classification tells you whether each new swing extends or contradicts the prior one. The break engine reads the running structure state to decide BOS vs CHoCH — the same state then sets the direction of the trailing trend line, so the line and the labels never disagree. Each qualifying break spawns the order block that produced the move and tracks it until price mitigates it. The HTF filter vetoes breaks that fight the higher timeframe. The risk engine takes the surviving signal and immediately builds entry, stop, and three targets sized in ATR and R-multiples. The dashboard records the outcome and feeds it back to you as a win rate and a recent-form strip.
Without structure classification you can't separate continuations from reversals. Without the running-state logic, BOS and CHoCH blur together. Without order blocks you lose the institutional zone. Without the HTF filter you take every counter-trend poke. Without the risk model a signal is just an arrow. The combination is what turns "structure broke" into a managed, reviewable trade.
🔍 WHAT MAKES IT ORIGINAL
1️⃣ Confirmed swing engine with automatic HH / HL / LH / LL labeling.
Swings are found with symmetric pivots — equal left/right lookback (default Swing Length 13 ) — so a pivot is only confirmed once enough bars have closed on both sides. Each new high is labeled:
— isHH = (no previous high) OR (pivotHigh >= previousHigh)
— otherwise it is an LH
Each new low is labeled:
— isLL = (no previous low) OR (pivotLow <= previousLow)
— otherwise it is an HL
This gives you an objective, repeatable map of structure instead of subjective lines.
2️⃣ BOS vs CHoCH disambiguation via a running structure-state machine.
The indicator keeps an internal trend state (structTrend = +1 bull, −1 bear, 0 neutral). When a swing high breaks, it reads that state:
— bull break while structTrend >= 0 → BOS ▲ (continuation)
— bull break while structTrend < 0 → CHoCH ▲ (reversal up)
The mirror logic applies to bear breaks. This is why the same break can be a BOS in one context and a CHoCH in another — the label reflects the trend you were already in, not just the candle that broke.
3️⃣ Conflict suppression + warmup guard.
If a bull break and a bear break would register on the very same bar, the bar is flagged a conflict and both are suppressed — no contradictory signals. On top of that, no signal fires until the chart has warmed up:
— WARMUP_BARS = max(Swing Length × 2, 50)
Early-history noise, where pivots aren't yet reliable, is filtered out before a single arrow prints.
4️⃣ Order blocks tied to the break, with displacement detection and an arm→mitigate lifecycle.
When a break creates an OB, the engine scans back up to OB Lookback (default 30) bars for the last opposite candle (for a bullish OB: the last down candle, close < open) and prefers one that was followed by a displacement move out of its range. If no displacement is found, it falls back to the nearest opposite candle.
Every box then runs a lifecycle:
— Armed : price first closes beyond the zone (confirming the OB worked)
— Mitigated : price later returns into the zone (by wick or close, your choice), committed on bar close
Mitigated blocks fade to grey and freeze, or can be removed entirely. The box cap ( Max Order Blocks, default 8 ) always drops mitigated zones first, so live zones stay on the chart longest.
5️⃣ Non-repainting higher-timeframe bias filter.
An EMA (default 50 ) is computed on a higher timeframe (default 60-minute ) and read with a one-bar offset on confirmed values:
— Bullish bias when close >= HTF EMA
— Bearish bias when close <= HTF EMA
When the filter is on, longs are only allowed in a bullish HTF regime and shorts only in a bearish one. Because the HTF value is taken from the already-closed higher-timeframe bar, it does not repaint.
6️⃣ Preset-driven ATR risk model — entry, stop, and three targets in one shot.
Stop distance is volatility-scaled, and targets are placed as multiples of that risk (R):
— slDistance = ATR(SL length, default 13) × SL multiplier
— SL = entry ∓ slDistance
— TP1/TP2/TP3 = entry ± slDistance × (TP1/TP2/TP3 multiplier)
One click selects a full profile (SL ×ATR / TP1 / TP2 / TP3 in R):
— Conservative : 2.5 / 1R / 2R / 4R
— Balanced : 1.5 / 1R / 2R / 3R
— Aggressive : 1.0 / 1.5R / 2.5R / 4R
— Scalping : 0.8 / 0.8R / 1.5R / 2R
— Custom : set every multiplier by hand
Only one position at a time is tracked — no pyramiding, no overlapping clutter.
7️⃣ Break-even-after-TP1 with WIN-on-TP1 accounting.
When TP1 is first touched and break-even is enabled, the stop is moved to the entry price. From the next bar, any wick back to entry closes the trade at break-even — locking out the give-back loss. Crucially, a trade counts as a WIN the moment TP1 is touched , even if it later comes back to the break-even stop. This keeps the win-rate honest about partial profit-taking.
8️⃣ Structure-anchored ATR trend line (SuperTrend-style, but it flips on CHoCH).
A smoothed ATR band trails price, but its direction is not decided by its own crossover logic — it is slaved to the structure state:
— band = hl2 ∓ (ATR Trend Multiplier, default 5) × EMA(ATR(length 10), smoothing 5)
— Bull regime: line trails as max(previous line, lower band)
— Bear regime: line trails as min(previous line, upper band)
— The line flips only when structure flips (a CHoCH), marked with a circle
So your trailing line and your BOS/CHoCH labels always tell the same story.
9️⃣ Session stats engine — win rate gauge + recent-form strip.
The dashboard tallies closed trades, wins, losses, and win rate, rendered with a Unicode block gauge (▰▱). A separate Form strip shows the last 10 outcomes (▰ = win, ▱ = loss, newest on the right), so you can see whether the current settings are in or out of sync with the market at a glance.
🧠 HOW IT WORKS — bar by bar
Step 1 — Detect swings: symmetric pivots confirm a swing high or low and label it HH/HL/LH/LL.
Step 2 — Watch for a break: price closing (or wicking, your choice) beyond the last swing flags a raw break; same-bar conflicts are suppressed.
Step 3 — Classify the break: the running structure state turns the raw break into a BOS or a CHoCH and flips the trend state.
Step 4 — Filter by bias: if the HTF filter is on, the break must agree with the higher-timeframe EMA regime to qualify.
Step 5 — Spawn the order block: the engine finds the originating candle (preferring displacement) and draws the OB zone.
Step 6 — Open the trade: while flat, a qualifying break sets entry, ATR stop, and TP1/TP2/TP3 from the active preset.
Step 7 — Manage it: each bar checks for TP touches and stop hits; TP1 triggers break-even; SL or TP3 closes the trade and books the result.
Step 8 — Track zones: every open OB arms and then mitigates as price interacts with it.
Step 9 — Report: the dashboard updates trend, signal, levels, R:R, win rate, and recent form; alerts fire on close.
📖 HOW TO USE (beginner-friendly)
🎯 Quick start — get running in 5 steps:
1. Add Meridian Flow to any chart, any timeframe. Defaults already work.
2. Look at the dashboard (top-right). The colored header tells you the current trend: green = bullish, red = bearish, blue = neutral.
3. Wait for a Long ▲ or Short ▼ marker to print under/over a candle. That is a new trade signal.
4. Read the colored lines that appear: the dotted line is your entry, the solid red line is your stop-loss, the three dashed lines are TP1, TP2, TP3.
5. Use those exact levels in your broker. The dashboard shows the same numbers in text so you can copy them.
That is the whole loop: signal prints → take the levels → manage to the targets. Everything else below just helps you read and fine-tune it.
👁️ Reading the chart (what every element means):
— 🟢 Long ▲ / 🔴 Short ▼ markers = a trade just opened in that direction.
— BOS ▲/▼ = trend is continuing in the same direction.
— CHoCH ▲/▼ = trend may be reversing — the first sign of a turn.
— HH / HL = higher high / higher low (healthy uptrend). LL / LH = lower low / lower high (healthy downtrend).
— Colored boxes = order blocks (institutional zones). Bright = still active; faded grey = already mitigated (price came back to it).
— Dotted line = entry · solid red = stop-loss · dashed lines = TP1/TP2/TP3. A target turns solid teal with a ✓ once price reaches it.
— Trailing ATR line = quick visual trend; it flips (with a small circle) when structure reverses.
📊 Dashboard fields:
— Trend : current structure direction (Bullish / Bearish / Neutral).
— Signal : LONG, SHORT, or Wait (a new trade only opens when you're flat).
— Last event : the most recent BOS or CHoCH.
— Timeframe : the chart timeframe.
— SL / TP1 / TP2 / TP3 : live levels of the open trade (✓ marks targets already hit; "BE @" means the stop moved to break-even).
— R:R (TP1) : reward-to-risk to the first target.
— SL Dist % : how far the stop sits from entry as a percentage.
— Trades / W-L / Win rate : this-session performance with a gauge.
— Form : last 10 results, ▰ win · ▱ loss, newest on the right.
🔧 Tuning guide (fix common issues):
— Too many small/noisy signals: raise Swing Length (try 20-30) and set Break Confirmation to "Close".
— Signals feel late: lower Swing Length (5-10) and/or switch Break Confirmation to "Wick".
— Too many counter-trend trades: turn on the HTF Trend Filter.
— Stops too tight / too wide: change the Risk Preset, or use Custom and adjust SL ×ATR.
— Chart too busy: turn off OB labels and the mean line, reduce Max Order Blocks, or enable "Remove OB After Mitigation".
💡 Trading ideas:
— Reversal hunting: set Signal Mode to "CHoCH only" to trade structure turns; pair with an order-block retest for confirmation.
— Trend riding: set Signal Mode to "BOS only" with the HTF filter on to stack with the higher-timeframe direction.
— Zone entries: wait for a fresh OB, then enter on the mitigation tap back into the zone rather than chasing the break.
— Scalping: use the Scalping preset on low timeframes for tight stops and quick 1:1 to 1:2 targets.
— Risk-free runners: keep Break-Even After TP1 on so winners can't turn into losers.
⚙️ KEY SETTINGS REFERENCE
🏗️ Structure:
— Swing Length (default 13): pivot lookback. Lower = more, smaller swings; higher = cleaner.
— Break Confirmation (default Close): Close = fewer fakeouts; Wick = earlier, riskier.
— Signal Mode (default BOS + CHoCH): which events fire trades — CHoCH only / BOS only / both.
— Show HH/HL/LH/LL (default on) · Show BOS / CHoCH (default on).
📦 Order Blocks:
— Show Order Blocks (default on) · Create OB On (default BOS + CHoCH).
— Mitigation Trigger (default Wick): Wick = earlier; Close = stricter.
— Remove OB After Mitigation (default off) · OB Lookback (default 30) · Max Order Blocks (default 8).
— OB Box Transparency (default 85) · Show 50% Mean Line (default off) · Show OB Labels (default off).
🔍 Filters:
— HTF Trend Filter (default off) · HTF Timeframe (default 60) · HTF EMA Length (default 50).
🛡️ Risk Management:
— Risk Preset (default Balanced): Conservative / Balanced / Aggressive / Scalping / Custom.
— ATR Length (SL) (default 13) · SL ×ATR / TP1 / TP2 / TP3 multipliers (Custom mode).
— Show SL/TP Lines (default on) · Show SL/TP Labels (default on) · Show % Distance (default on).
— Break-Even After TP1 (default on) · Entry / SL / TP Line Style .
🎨 Visual:
— Theme (default Auto) · Show Buy/Sell Signals (default on) · Label Font Size (default Small).
— Show ATR Trend Line (default on) · ATR Trend Length (default 10) · Multiplier (default 5.0) · Smoothing (default 5).
— Show Watermark (default on).
📊 Dashboard:
— Show Dashboard (default on) · Position (default Top Right) · toggles for Market / Trade / Stats sections.
🔔 Alerts:
— Webhook JSON Format (default off) · Alert on SL Hit (default on) · Alert on TP / Break-Even (default off) · Alert on OB Mitigation (default off).
🔔 ALERTS
— 🟢 LONG / 🔴 SHORT — entry with ticker, timeframe, price, SL, TP1/TP2/TP3 and R:R.
— 🛑 SL HIT / 🛡️ BE STOP-OUT — stop or break-even stop-out, with entry and stop price.
— 🛡️ BREAK-EVEN — stop moved to entry after TP1.
— 🎯 TP1 / TP2 / TP3 HIT — each target as it is touched.
— 📦 OB MITIGATION — price returns into a bull or bear order block.
All alerts support plain text and JSON webhook output, and fire on bar close (once per bar close).
⚠️ IMPORTANT NOTES
— 🚫 No repainting. Swings use symmetric (equal left/right) pivots, so a pivot is confirmed only after the lookback bars close — the actual swing sits in the past by the Swing Length; the indicator draws forward from that confirmed bar. Breaks, hits, and OB mitigation all commit on bar close (barstate.isconfirmed), the HTF bias reads the already-closed higher-timeframe bar, and alerts fire once per bar close. This is delayed confirmation, not repainting of future values.
— 📐 Confirmation delay is inherent: signals appear after the bar that triggers them closes. This is the cost of avoiding fakeouts.
— ⚖️ Stats are session-based: win rate and the form strip reset when the script reloads or any input changes. They reflect the visible history with current settings, not a guaranteed forward result.
— 📊 "SL Dist %" is the stop distance as a percentage of entry — it is not a position-sizing or account-risk figure. Size your positions with your own risk rules.
— 🛠️ This is a market-structure analysis and trade-planning tool, not an automated trading bot. It detects structure, draws zones, builds stop/target levels, and tracks outcomes — trade decisions remain yours.
— 🌐 Works on all markets and all timeframes. Past performance does not guarantee future results.
— 🆓 Meridian Flow is free to use. Feedback and suggestions are welcome in the comments. Indicator
