Liquidity Draw Probability Map [ForexCracked]🔵 OVERVIEW
Every liquidity tool draws the pools. This one measures whether price actually goes there.
The Liquidity Draw Probability Map finds the resting liquidity on your chart, equal highs and lows, the prior day high and low, the prior week high and low, and the session extremes, then studies your chart's own history and prints what actually happened to pools like each one: how often price reached them, how long it took, and how often the touch rejected versus cut straight through.
The phrase "price is drawing on liquidity" gets said a thousand times a day. This script puts a measured number on it.
🔵 HOW THE MEASUREMENT WORKS
Every pool is filed by two things: its type, and how far from price it was born, measured in ATR units so the numbers transfer across symbols and timeframes.
For each combination the script keeps running counts on your chart's own history:
• How many pools like this were created
• How many were reached within 50 bars
• Of the touches, how many rejected (price closed at least 1 ATR back inside within 20 bars) and how many cut through (price closed at least 0.5 ATR beyond). A touch that does neither within the window is filed as a stall.
• The median number of bars it took to get there
Nothing is estimated and nothing comes from outside data. Every figure is a frequency counted on the chart in front of you, and the sample size is printed next to it, so a number built on 12 events never dresses up as a number built on 300.
🔵 THE MAP
Active pools draw as horizontal lines from the swing that created them. The line gets thicker and more solid as its category's measured reach frequency gets higher, so the levels price has historically honoured stand out and the ones it historically ignores fade back. Each pool carries a compact label: type, measured reach frequency, rejection share of touches, and the sample size behind those numbers.
When a pool is touched, a small circle prints on that bar to mark the purge (these are measurement events, not signals, and they can be switched off). The engine then watches the next 20 bars, classifies the outcome, adds it to the tables, and retires the pool. Purged liquidity leaves the map, exactly as it leaves the market.
🔵 WHAT THIS IS NOT
This script fires no signals. There are no buy or sell arrows, no sweep alerts dressed as entries, no order blocks and no fair value gaps. It does not tell you to trade anything. It is a measurement instrument: it maps where the resting liquidity is and reports what historically happened to liquidity like it, with the sample sizes in plain view. What you do with that context is your decision.
🔵 NET DRAW BIAS
Each active pool contributes its measured reach frequency, discounted by how far away it currently sits. Everything above price is summed against everything below, and the result is z-scored against its own recent history. A strongly positive reading means the statistically heavier magnet is overhead. A strongly negative one means it is below. The dashboard prints the score and the direction plainly.
🔵 THE DASHBOARD
• Nearest pool above: type, distance in ATR, measured reach frequency, median bars to reach, sample size
• Nearest pool below: the same
• Net Draw Bias: score and direction
• Last purge: which pool type was taken and how the touch resolved
• Sample: total pools logged and bars of history measured
🔵 HOW TO USE
• Treat high-frequency pools as context, not entries. A pool whose category was historically reached 75 percent of the time within 50 bars is a level price has tended to gravitate toward on this chart. Useful when planning targets, never a trigger on its own.
• Read the rejection versus cut-through split before assuming a reaction. Some categories on some charts get swept and keep going. The split tells you which kind of chart you are on.
• Use Net Draw Bias for directional context between levels. It answers "which side's liquidity is heavier right now" with a measured number instead of a feeling.
• Respect the sample sizes. Early in a chart's history the tables are thin and the map says so. The numbers firm up as history accumulates.
• Combine with your own structure and risk rules. This is a measurement instrument. It does not know your plan.
🔵 SETTINGS
• Pivot strength and equal-level tolerance control how pools are detected
• Reach horizon (default 50 bars) and outcome window (default 20) control the measurement windows
• Session input defines the session whose extremes are tracked, set it to your Asia hours for the classic use
• Max pool age retires stale levels; per-side caps keep the map readable
• Dashboard position, colors, and line extension are adjustable
🔵 ALERTS
• Price approaching a high-reach pool (within 0.25 ATR, category at or above 70 percent with a meaningful sample)
• Pool purged (liquidity taken)
• Net Draw Bias flips sign
⚠️ DISCLAIMER
These are descriptive statistics of past price behaviour on your chart, not predictions. A pool that was historically reached 80 percent of the time can be ignored today. Sample sizes vary by chart and timeframe, and small samples are unreliable by nature. Nothing here is a trade signal, and results depend on market conditions, settings, and your own execution and risk management. Shared for educational and research purposes. Not financial advice. Indicator

ICT Entry Model Liquidity Sweep, MSS & FVG [LunqFX]A smart-money entry is never a single signal — it is a sequence. Price runs the stops beyond a swing, structure shifts the other way, and the entry is taken from the imbalance that shift left behind. Most ICT indicators draw one of those pieces and leave you to assemble the rest by hand. This one tracks the whole sequence live and finishes it with an actual trade: entry, stop, target and a quality score that tells you whether the setup was worth taking at all.
❶ THE FOUR STAGES
▸ LIQUIDITY SWEEP — price trades beyond a swing high or low, takes the stops resting there, and closes back inside. The sweep is marked and the level it raided is drawn. This is the manipulation leg, and it is where the stop for the trade will sit.
▸ MSS (MARKET STRUCTURE SHIFT) — after the sweep, price closes through the last short-term swing in the opposite direction. This is the confirmation that the sweep was a reversal and not a continuation. Note that the shift is measured against internal structure, not the major swing: waiting for a major swing to break would put the entry far too late, which is the single most common mistake in automated ICT tools.
▸ FVG ENTRY — the displacement that broke structure leaves a three-candle imbalance. That gap is the entry zone, drawn as a box, because price commonly returns to fill it before continuing.
▸ RISK AND TARGET — the stop goes beyond the sweep extreme, the target is your chosen R multiple. Both are drawn as filled zones running back to the entry, so the whole trade reads as one object instead of a set of loose lines.
❷ SETUP QUALITY 0–100
Not every sequence deserves a trade, and this is where the indicator does something no other entry tool does. Every setup is graded on four measurable properties:
▸ SWEEP DEPTH — how far beyond the level price actually ran, in ATR. A deeper raid means more stops were genuinely taken. ▸ DISPLACEMENT — how decisively the structure was broken, in ATR. A weak break is a weak setup. ▸ FVG SIZE — how large the imbalance is. A bigger gap is a stronger entry. ▸ SPEED — how quickly the shift followed the sweep. A fast reversal is aggressive; a slow one has lost its edge.
The four are blended into a single 0–100 score shown on every entry tag and in the dashboard. Set the minimum quality in the settings and weak sequences simply stop being drawn — you trade the good ones instead of every arrow.
❸ HOW TO TRADE IT
1 — Wait for the SWEEP marker. The dashboard turns amber and reads SWEEP · WAITING MSS. Nothing to do yet: the manipulation has happened but it is not confirmed.
2 — Wait for MSS. When structure shifts, the setup is drawn and the dashboard turns green for a long or red for a short. If structure does not shift within the allowed window, the sweep is discarded and the model resets — no stale signals.
3 — Check the quality score before committing. High scores come from a deep sweep, a decisive break and a clean imbalance. If the number is low, the sequence was technically valid but structurally weak.
4 — Place the trade from the ticket. Entry at the FVG edge, stop beyond the sweep, target at your R multiple. The dashboard shows all three plus the exact risk in price, so the position size follows directly.
5 — Let price come to you. The FVG is a limit entry, not a market entry. If price never returns to the gap, the setup is simply skipped — that is the model working as intended.
❹ HOW IT WORKS
Liquidity swings and internal structure are detected with confirmed pivots, so a level only exists once the bars on both sides of it have closed. A sweep requires a bar to trade beyond the swing and close back inside it, and it is only registered when the shift level is still unbroken — otherwise the sequence could confirm itself on the very next bar. The structure shift requires a close through that internal level within your chosen window. The imbalance is found in the displacement leg using the standard three-candle definition. The stop is the sweep extreme, the target is the entry plus or minus the risk times your R multiple, and setups whose stop would be smaller than a fraction of ATR are rejected as untradeable. The quality score is a weighted blend of the four properties above, each normalised by ATR so the score behaves the same on every symbol and timeframe.
Works on any market and timeframe — forex, gold, indices, crypto and stocks. Intraday charts from 5m to 4h suit the model best, since that is where liquidity raids and structure shifts happen most often.
SETTINGS — liquidity swing length, internal structure length, maximum bars from sweep to shift, R multiple for the target, minimum stop distance, minimum quality, number of setups kept, level extension, FVG and level visibility, candle colouring and dashboard position.
ALERTS — long setup confirmed, short setup confirmed, and any setup confirmed. All fire on closed bars only.
NON-REPAINTING — every stage is validated on bar close and built from confirmed pivots. A setup that has printed never moves, never changes its levels and never disappears.
The four stages are not four indicators bundled together — they are four steps of one entry model, and none of them is tradeable alone. The sweep without the shift is just a wick; the shift without the sweep is just a break; the imbalance without either is just a gap. That is why they belong in a single tool.
This indicator is an educational market-analysis tool, not financial advice. The quality score describes the structure of a setup and does not predict its outcome. Always confirm with your own analysis and manage your risk. Indicator

Midnight Open Suite+ (M1D)Midnight Open — is ICT's primary intraday bias reference.
Price trading above it is at a premium to that open; price trading below it is at a discount. It is a level the market returns to often enough that where price sits relative to it is worth knowing before anything else about the day.
This script marks that open and the three that follow it, measures the range the first half hour builds, and reports where price stands against each. It takes no directional opinion of its own.
THE OPENS
Four New York opens are drawn, each on its own settings:
- 12am, the Midnight Open.
- 3am, the London open.
- 8:30am, the release time that begins the New York morning.
- 9:30am, the cash open.
Each is a ray beginning at the candle that genuinely opened on its own time, carrying that candle's opening price. No level is drawn back across bars that closed before the price it marks existed, and no price is borrowed from a neighbouring bar.
Each open also carries an optional vertical line marking the minute itself, stamped with its own time. That stamp is derived from the time the open is configured to, so it cannot drift out of agreement with the level it names — move an open to a different minute and its stamp moves with it.
By default a level stops where the following day's level begins, so only one of each is ever live. It can instead be set to run on indefinitely.
THE OPENING RANGE
The 12:00–12:30am window is drawn as a single zone from its own high to its own low, with an optional equilibrium — the 50% — running across it. The window opens on the Midnight Open's own time and its length is adjustable, so moving the open moves the range with it.
The 50% of a range is its equilibrium.
Zone and equilibrium are both kept for several days. Four days is the default, which leaves the previous three equilibria on the chart behind the current one.
WHY A LEVEL IS SOMETIMES WITHHELD
An open can only be read from a bar that opens on that exact minute. A bar that merely contains the minute opened earlier and carries an earlier price. On a 60-minute chart there is no bar that opens at 8:30 or at 9:30, so those two are not drawn at all rather than being placed a few points out — a level that is slightly wrong still looks right, which makes it worse than one that is visibly absent.
Withheld levels are never silent. The dashboard names each one and states the bar size that dropped it, so an empty row reads as "this timeframe cannot measure it" rather than "it has not happened yet".
An open is placeable when the chart's bar length divides evenly into the minutes between midnight and that open. With the four default times and the half-hour range, that means any bar length dividing 30 minutes — the 1, 2, 3, 5, 10, 15 and 30 minute charts. Move an open to a different minute and the arithmetic follows it.
THE DASHBOARD
Bias is read from the Midnight Open alone, and is stated as both a direction and the premium or discount it implies.
Below it each open is listed with its price and the signed distance price currently sits from it, in points or in ticks. The opening range is listed with its size and whether price stands above, inside or below it, and the equilibrium with its own price and distance.
A level carried in from a previous day is still the level drawn on the chart, so it is still listed — but it is named as carried over, because reading a stale open as today's is how it gets traded by mistake.
WHAT IT DRAWS
- Four opens as dotted rays, each from the candle that set it, named above its own line.
- An optional full-height vertical line on each open, stamped with its time.
- The 12:00–12:30am range as a soft zone whose border matches its fill, captioned with the window it covers. The caption re-centres on the span the zone currently occupies, so it tracks across with it rather than trailing at the left edge.
- The equilibrium as a thin dashed line through the zone, named inline on its own level so the text sits exactly at the price.
- Optional rays extending the range's high and low.
- A dashboard carrying bias, every open with its distance, and the range with its position.
Labels are transparent callouts throughout: nothing carries a background, and every offset is in pixels rather than price, so the spacing holds at any zoom level.
SETTINGS
- Each open has its own show toggle, name, hour and minute, ray colour, style and width, and the same four controls again for its vertical line and time stamp.
- How many days of levels stay on the chart, and whether a ray stops at the next day's level or runs to the right edge.
- Opening range: window length, zone colour and transparency, how far the zone extends, whether the high and low extend as rays, and the zone's caption.
- Equilibrium: visibility, colour, line style, and whether it is named.
- Labels: whether levels are named, whether the price is included in the name, whether every kept day is named or only the newest, time stamp position, and label size.
- Dashboard: position, text and background colours, header fill, the two directional colours, text size, and whether distance is reported in points or ticks.
NOTES
- Non-repainting. Levels are set on confirmed bars only and none is revised once its bar has closed.
- All times are New York and resolve through the exchange-independent New York clock, so they stay correct across daylight saving on any symbol.
- At the default times every level is measurable on the 1, 2, 3, 5, 10, 15 and 30 minute charts. Any other timeframe drops whichever levels its bars cannot open on, and names them.
- Four alert conditions: price crossing the Midnight Open, price crossing the opening range equilibrium, and the range's high or low being closed through.
- Every drawn element is black by default. Only the dashboard's directional readings carry colour, and all of them are inputs.
- This is a mapping tool. It draws reference levels and reports where price sits relative to them; it produces no entries, targets or stops.
Disclaimer-
This is not financial advice. A level drawn by a model is context, not a recommendation to trade, and where price opened yesterday says nothing certain about where it goes today. Indicator

Indicator

Nested FVG ProNested FVG Pro identifies a specific ICT confluence — a 1-minute Fair Value Gap forming inside an active 5-minute Fair Value Gap — and manages a complete multi-contract trade plan around each signal, with journalling that models how automated orders actually fill rather than assuming ideal prices.
HOW IT WORKS
5-minute context. The script aggregates 1-minute bars into rolling 5-minute candles and scans each completed triplet for a displacement gap: a bullish FVG (BISI) exists where the current candle's low sits above the high from two candles back; bearish (SIBI) is the mirror. Gaps must exceed a minimum size in points — set against your stop distance, so an imbalance smaller than meaningful displacement never becomes context. Qualifying zones are drawn and tracked.
Zone lifecycle. A zone is invalidated when price closes through its far side. Invalidated zones are not deleted immediately: they stop extending, dim, and remain on the chart for a configurable number of bars so past signals can be audited, and they are never removed while a trade is open. An active-zone cap per direction prevents stacking — in a sustained trend, zones pointing with the trend are never closed through, so without a cap they accumulate all session and progressively bias signal generation toward chasing the move.
Inversion mode (IFVG). A gap that price has closed through has failed. ICT treats the violated gap as flipped: a bullish FVG closed below becomes resistance, a bearish FVG closed above becomes support. In IFVG mode the invalidation event flips the zone's direction instead of retiring it, and signals are then taken as price returns into the zone from the other side. Inverted zones are colour-coded distinctly, expire on a configurable age, and retire permanently if closed through a second time. Signal Source selects virgin gaps, inverted gaps, or both.
1-minute trigger. On each confirmed 1-minute bar the script tests for a fresh 1-minute FVG using the same three-candle definition and its own minimum size. A signal fires only where that gap sits inside an eligible 5-minute zone of matching direction, within a proximity tolerance in points around the zone boundaries. The premise: a small-timeframe imbalance printing inside a larger unmitigated imbalance marks continuation pressure in the direction of the higher-timeframe displacement.
Signal gating. Cooldown between signals; a hardcoded one-trade-at-a-time block; an exchange-session filter; six independently configurable time windows with editable start and end times in a selectable timezone; and a daily loss limit in dollars that blocks new signals once reached. The daily reset and zone purge are driven by a change of CME trade date rather than a session-transition test, so they behave correctly regardless of whether bars print during the session gap.
Trade management. Each signal is managed as a ladder measured in points from the entry: a stop, a partial exit that optionally moves the stop to break-even, a main target, an extended target, and an optional fourth-contract runner target. All distances and per-level contract counts are inputs. A per-trade dollar maximum-loss exit closes the position on a confirmed bar if unrealised loss breaches the limit.
Optional entry laddering. Position size can be split across up to three legs — the signal bar's close, consequent encroachment (the 50% level of the 1-minute gap), and the gap's far edge — all sharing one structural stop, so each deeper leg risks fewer points than the one before. Fills are position-weighted and exit quantities are capped to what actually filled, so a trade that displaces immediately never sends exits for contracts it never bought. The trade-off is explicit: setups that run straight to target fill the smallest size while setups that retrace fill the largest.
Execution-modelled journalling — what makes this different. Most signal trackers book trades at exact level prices. In live automation, alerts fire once per bar close and fill as market orders, so real fills land at the trigger bar's close rather than at the level touched intrabar. This script separates plan levels, which drive the triggers, from booked fills, which drive the accounting: with fill booking enabled, every entry and exit in the Trade Tracker, Hourly and Weekly tables is recorded at the trigger bar's close plus a configurable per-fill slippage, and round-turn commissions are netted from every result. Levels can be anchored to the entry fill rather than the gap boundary, so a 20-point stop is 20 points from the price paid. Break-even moves to the position's weighted average fill, matching what a broker-side breakeven order does. The result is a journal that reconciles with a broker statement instead of an idealised one.
A/B variant lab. A read-only shadow journal replays every signal a second time under a different partial distance and break-even rule, reporting both policies side by side with the difference between them. It places no orders and never touches the live journal — it answers whether an exit-policy change would have helped on your own history rather than a hypothetical one.
MODES
Runner off: 3-contract exit ladder, flat at the extended target. Runner on: a 4th contract rides to the runner target.
Entry ladder off: one full-size entry. On: up to three scale-in legs sharing one stop.
Signal Source: FVG, IFVG, or Both.
A/B lab off by default.
AUTOMATION (OPTIONAL)
The script emits complete JSON webhook payloads for every event — entry with quantity, order type and an optional attached stop so a real protective order rests at the broker; partial with an optional broker-side breakeven action; break-even scratch; each target; stop; and emergency exit — with quantities computed from the position-sizing inputs. One alert with the condition "Any alert() function call" drives all of it. Manual traders can ignore this entirely and trade the on-chart levels.
HOW TO USE
Apply to a 1-minute chart — the script builds its own 5-minute context, and other chart timeframes will not behave correctly. Set your ladder distances and dollar-per-point for the instrument, choose your windows and timezone, set the minimum gap sizes and proximity in points relative to your stop, and set the daily and per-trade loss limits. Signals print as triangles with the full R/R ladder drawn to the right; the Trade Tracker logs every signal's outcome net of modelled costs.
LIMITATIONS & NOTES
Outcome detection is evaluated on confirmed bars; live automated fills are bar-close market orders, which is precisely what the execution-modelled tables account for.
The analytics model execution. A broker statement remains the ground truth.
All distances are in points and are calibrated per instrument. Moving between instruments of different volatility requires rescaling every point input.
Entry laddering requires add-to-position support in your webhook platform.
This is a technical analysis and automation tool, not financial advice. Past behaviour of any configuration does not guarantee future results. Test on simulated accounts before risking capital.
The source is open — read it, fork it, adapt it. If you change the detection or the accounting, the tables will tell you what the change did.
Indicator

Zero Noise KillzonesThe Killzones, outlined. Nothing else. The ICT killzones drawn cleanly, with each one's high and low carried forward as levels.
What it does
- Outlines the killzones: Asia (20:00–00:00), London (02:00–05:00), New York AM (09:30–11:00), New York Lunch (12:00–13:00, off by default), and New York PM (13:30–16:00) — all pinned to New York time, so daylight-saving changes are handled automatically on any chart, in any timezone.
- A separate forex set — Asia, London Open, New York Open (07:00–10:00), London Close (10:00–12:00) — off by default, so forex traders have the complete set in one place. NY AM and NY Open overlap by design: different windows that share 30 minutes.
- When a killzone closes, its high and low carry forward as levels. A level stays lit and keeps extending until price trades through it — then it greys out and stops. A sweep counts on the wick: any trade through the level retires it, even if the candle closes back inside. A wick through a level is information — that's the definition, on purpose.
- Days Kept bounds how long anything lives on the chart. Nothing accumulates forever.
- Custom windows: up to seven of your own sessions, any HHMM–HHMM window (midnight wraps handled), in any timezone.
What it deliberately doesn't do
- No signals, no alerts, no arrows — a deliberate omission in the free tools, not an oversight. A killzone high is context, not a trade call. The trade is yours.
Settings
- Killzones: five futures windows plus the four-window forex set, each an independent toggle
- Extend Highs & Lows: Until Swept (levels carry forward) or Session End (outlines only)
- Custom: timezone + up to seven custom windows
- Theme: Auto / Dark / Light — change any swatch and your color wins on every theme
- Line width, fill, tags, Days Kept (1–5), watermark — all optional
Futures, stocks, and FX, on any intraday chart up to 1h — above 5m, windows are rebuilt from 1-minute data for exact alignment.
For informational and educational purposes only — not financial advice. Trading involves substantial risk of loss; past performance does not guarantee future results. Indicator

Probabilistic ICT Order Blocks [3D] | GainzAlgoOverview
This indicator is ICT order blocks with a twist: each block gets a machine-learning-based probability score, a 3D-shaded look, and a live win-rate dashboard so you can see if the concept is actually working on your instrument, not just where the zones are.
What are order blocks?
An order block is the last opposing candle before a strong impulsive move, the last down-candle before price rips higher, or the last up-candle before it dumps. The idea: that candle marks where large orders got filled, so price often returns to "retest" it before continuing. This script auto-detects those zones off swing structure breaks (market structure shifts).
How it works
Detects bullish/bearish structure shifts and marks the originating candle as an order block.
A gradient-boosted ML model (trained live on RSI, MFI, ATR%, and volume z-score) scores each block with a probability of continuation, shown right on the box.
Blocks that get fully invalidated are deleted automatically, and new blocks can't overlap existing ones so there is no clutter.
A dashboard tracks real win/loss counts separately for bull and bear blocks, so the win rate is measured, not assumed.
3D-shaded rendering makes zones easier to read at a glance.
How to trade with it:
Wait for price to return into a block (a "retest").
Check the probability % — higher = more historical continuation odds per the model.
Look for confirmation (rejection wick, lower-timeframe shift) before entering in the block's direction.
Invalidation = a full close through the opposite side of the block. Treat that as your stop.
Use the dashboard win rate to judge whether the current instrument/timeframe combo is actually favorable before trading it live.
Settings Guide
As with all of our indicators, the settings allows for customization to your preferences. Here is a breakdown:
Swing Detection Length — how many bars define a swing high/low. Lower = more (and smaller) order blocks; higher = fewer, more significant ones.
Max Displayed Blocks (Per Type) — cap on how many bull/bear blocks show at once, oldest gets dropped first.
Delete OB on Full Invalidation — auto-removes a block the moment price fully closes through it, so dead zones don't clutter the chart.
Machine Learning Training Lookback — how much history the model trains on each retrain cycle. More = smoother/slower-adapting probabilities; less = more reactive to recent conditions.
Retrain Frequency (Bars) — how often the model retrains. Lower = fresher but more compute-heavy; higher = more stable scores.
Bullish/Bearish OB Color — self-explanatory, sets zone colors.
3D Depth Shift (Bars/Ticks) — controls the offset of the "rear" face that creates the 3D look. Bigger = more pronounced depth effect.
Show Dashboard — toggles the win-rate table on/off.
Position / Text Size — where the dashboard sits and how big the text is.
Show Win/Loss Markers on Chart — toggles the triangle (win) / X (loss) shapes that mark resolved blocks.
Concluding thoughts
This isn't a signal generator, it's a structured way to see ICT order blocks with actual odds attached instead of guessing. Backtest the win rate on your market first, then use it as confluence with your own read of price action.
Indicator

Pivot Sniper Method [trade_w_samet]🎯 Pivot Sniper Method
Pivot Sniper Method is a confirmed pivot-reversal, signal-quality, session-filtering, trade-mapping, alert, and loaded-history statistics indicator designed to convert confirmed price pivots into a structured chart-review workflow.
The script is built around one central idea:
Not every confirmed pivot should be treated as an equal-quality reversal setup.
Instead of displaying every pivot as an identical signal, Pivot Sniper Method evaluates each confirmed pivot through a five-part Signal Strength model, applies the selected directional and session rules, maps a complete Entry / Stop Loss / TP1 / TP2 / TP3 structure, manages optional Break-Even behavior, and records the result through an internal R-based tracker.
When an eligible pivot is confirmed, the script can:
• Display a confirmed BUY or SELL label
• Show the calculated Signal Strength percentage directly below the direction label
• Evaluate Pivot Distance, Wick Quality, Confirmation Candle, Volume Participation, and Trend Alignment
• Apply Bullish, Bearish, or Both directional bias
• Restrict new signals to London, New York, London + New York, All Sessions, or a Custom session
• Apply an adjustable signal cooldown
• Calculate the Entry at the confirmation-candle close
• Calculate Stop Loss using ATR, Pivot Level, Pivot + ATR Buffer, or Signal Candle
• Calculate independently adjustable TP1, TP2, and TP3 targets
• Move the active Stop Loss to Break-Even after TP1 or TP2
• Add an optional favorable Break-Even tick offset
• Replace the current active tracked trade when a new eligible signal appears
• Display active Entry, Stop / Break-Even, TP1, TP2, and TP3 lines and labels
• Remove the separate Entry line and label after Break-Even becomes active
• Display compact tooltips containing signal, price, risk, target, and status information
• Track Trades, Win Rate, NET R, Average R, TP1 / TP2 / TP3 hit rates, and Break-Even results
• Display a compact premium desktop dashboard
• Display a reduced Phone Mode dashboard
• Move the dashboard to any chart corner
• Support Auto, Dark, Light, and Phone visual modes
• Support static alertcondition() events
• Support one combined “Any alert() function call” workflow
• Include symbol, timeframe, strength, Entry, Stop, targets, Stop Loss mode, Break-Even mode, and session context in dynamic alerts
The purpose of the script is to provide a transparent framework for studying confirmed pivots, setup quality, session context, predefined risk, multiple reward targets, Break-Even behavior, and bar-based historical outcomes.
It is not financial advice.
It is not an automated trading system.
It does not execute broker orders.
It does not calculate position size.
It does not guarantee that a confirmed pivot will produce a reversal.
It does not guarantee that historical Win Rate or NET R will continue in future market conditions.
It does not include spread, commission, slippage, latency, financing, taxes, partial fills, or broker-specific execution.
It does not reconstruct the exact intrabar path inside historical candles.
━━━━━━━━━━━━━━━━━━━━━━
📌 OVERVIEW
━━━━━━━━━━━━━━━━━━━━━━
At a high level, Pivot Sniper Method performs the following sequence:
• Searches price for confirmed pivot lows and pivot highs.
• Requires the selected number of completed candles on the right side of a pivot.
• Rejects simultaneous bullish and bearish pivot confirmation on the same calculation.
• Evaluates the selected Trend Bias.
• Evaluates the selected Trading Session.
• Evaluates the signal cooldown.
• Calculates a 0–100 Signal Strength score.
• Rejects signals below the selected minimum strength when the strength filter is enabled.
• Displays a BUY or SELL label only when all active signal rules pass.
• Opens a tracked trade at the close of the confirmation candle.
• Selects a Stop Loss using the active Stop Loss Mode.
• Uses ATR as a safety fallback when a structural Stop Loss is invalid.
• Calculates TP1, TP2, and TP3 from the actual Entry-to-Stop risk distance.
• Tracks target and stop touches from the candle after entry.
• Moves the active Stop Loss to Break-Even after the selected target condition.
• Replaces an active tracked trade at the current close when a new eligible signal appears.
• Records each completed trade in R.
• Updates a compact dashboard with state, trade, performance, and quality information.
• Generates static and dynamic PulseWire alert events.
The script does not use machine learning.
It does not claim to predict every market reversal.
Its dashboard is not PulseWire Strategy Tester.
Its statistics are calculated internally from the script’s own confirmed-signal, OHLC-touch, replacement-exit, and Break-Even rules.
━━━━━━━━━━━━━━━━━━━━━━
🧠 CORE IDEA
━━━━━━━━━━━━━━━━━━━━━━
A pivot low identifies a price point that is lower than the selected number of candles on both sides.
A pivot high identifies a price point that is higher than the selected number of candles on both sides.
Confirmed pivots can provide useful reversal context, but a pivot alone does not answer:
• whether the setup agrees with the selected directional bias
• whether the setup occurs during the selected trading session
• whether the pivot candle contains a meaningful rejection wick
• whether price has moved sufficiently away from the confirmed pivot
• whether the confirmation candle supports the intended direction
• whether volume participation is elevated or ordinary
• whether price and the selected EMA structure support the direction
• where Stop Loss should be placed
• how the trade should be mapped in R
• when Break-Even should become active
• how a new signal should affect an existing tracked trade
• how the setup behaved under the script’s historical bar-touch rules
Pivot Sniper Method therefore treats the pivot as the first stage of a complete process rather than the final decision.
The complete workflow is:
potential pivot
→ right-side pivot confirmation
→ same-bar conflict rejection
→ directional-bias validation
→ session validation
→ cooldown validation
→ five-part quality scoring
→ minimum-strength validation
→ BUY or SELL signal
→ confirmation-candle Entry
→ Stop Loss selection
→ TP1 / TP2 / TP3 mapping
→ active-trade management
→ optional Break-Even
→ TP3, Stop, Break-Even, or replacement exit
→ internal R result
→ dashboard update
→ alert event
━━━━━━━━━━━━━━━━━━━━━━
🧩 WHY THIS IS NOT A SIMPLE PIVOT MARKER
━━━━━━━━━━━━━━━━━━━━━━
A basic pivot script can stop after placing a shape on a confirmed swing high or swing low.
Pivot Sniper Method continues beyond pivot detection.
Each eligible setup passes through a coordinated structure:
confirmed price pivot
→ 0–100 quality evaluation
→ bias and session permission
→ structured Entry
→ selectable Stop Loss model
→ independent TP1, TP2, and TP3 targets
→ optional Break-Even transition
→ live target-status updates
→ active-trade replacement logic
→ historical R accounting
→ compact statistics dashboard
→ static and dynamic alerts
The pivot module defines the confirmed reversal location.
The Signal Strength module evaluates quality.
The Trend Bias module controls permitted directions.
The Time Filter controls when new setups may be accepted.
The trade-mapping module converts the setup into explicit price levels.
The Break-Even module changes active risk only after the selected target is confirmed.
The statistics module summarizes the exact results produced by those rules.
The alert module communicates signal and trade-management events.
These modules are not unrelated indicators placed together.
They form one process for identifying, filtering, mapping, monitoring, and reviewing confirmed pivot-reversal setups.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ HOW THE SCRIPT WORKS
━━━━━━━━━━━━━━━━━━━━━━
The script runs directly on the main price chart.
It calculates confirmed price pivots using independently adjustable left-side and right-side lengths for highs and lows.
The default pivot configuration is:
• Pivot High Left Bars: 10
• Pivot High Right Bars: 10
• Pivot Low Left Bars: 10
• Pivot Low Right Bars: 10
The signal engine then combines:
• confirmed pivot status
• Bullish / Bearish / Both bias permission
• selected session permission
• Signal Strength threshold
• cooldown permission
• same-bar dual-pivot rejection
• confirmed chart-bar status
A BUY signal is based on a confirmed pivot low.
A SELL signal is based on a confirmed pivot high.
The signal label is placed on the confirmation candle, not on the original historical pivot candle.
The Entry is also stored at the close of the confirmation candle.
This separation is important:
Pivot Price
The historical swing level that became confirmed after the selected right-side bars.
Signal Candle
The later candle where the script knows the pivot exists and all active filters pass.
Entry Price
The close of that later signal-confirmation candle.
━━━━━━━━━━━━━━━━━━━━━━
🔍 PIVOT DETECTION MODEL
━━━━━━━━━━━━━━━━━━━━━━
Pivot High Left Bars determines how many candles to the left must have lower highs than a potential pivot high.
Pivot High Right Bars determines how many completed candles must form to the right before the potential pivot high is confirmed.
Pivot Low Left Bars determines how many candles to the left must have higher lows than a potential pivot low.
Pivot Low Right Bars determines how many completed candles must form to the right before the potential pivot low is confirmed.
Higher left and right values generally identify larger and less frequent swing structures.
Lower values generally identify smaller and more frequent structures.
The high and low settings are independent.
This allows users to study symmetrical configurations such as 10 / 10 for both directions, or asymmetrical configurations when market behavior requires different sensitivity for pivot highs and pivot lows.
The central pivot calculation is:
float confirmedPivotHigh = ta.pivothigh(
high,
leftHighInput,
rightHighInput
)
float confirmedPivotLow = ta.pivotlow(
low,
leftLowInput,
rightLowInput
)
bool rawBuySignal =
barstate.isconfirmed and
not na(confirmedPivotLow)
bool rawSellSignal =
barstate.isconfirmed and
not na(confirmedPivotHigh)
These functions return a confirmed pivot value only after the required right-side bars exist.
A confirmed pivot does not automatically become a signal.
It must still pass:
• same-bar conflict rejection
• Trend Bias
• Trading Session
• Signal Strength
• cooldown
━━━━━━━━━━━━━━━━━━━━━━
⏳ PIVOT CONFIRMATION AND SIGNAL TIMING
━━━━━━━━━━━━━━━━━━━━━━
This section is essential for correct interpretation.
The script uses confirmed pivot functions.
A pivot is not known on the original pivot candle.
For example, with Pivot Low Right Bars set to 10:
• the potential pivot low occurs
• ten additional candles must complete to its right
• the pivot becomes confirmed on the later calculation candle
• the BUY candidate can then be evaluated
The signal label is displayed on the later confirmation candle.
The trade Entry is stored at the close of that confirmation candle.
The script does not backdate the BUY or SELL trade label to the original pivot candle.
This means:
• the pivot price belongs to an earlier historical candle
• the signal becomes available later
• the displayed Entry reflects the later confirmation close
• increasing right-side bars increases confirmation delay
• decreasing right-side bars confirms smaller structures earlier
The script also requires barstate.isconfirmed for raw pivot candidates.
Signals are therefore based on completed chart candles.
This reduces unfinished current-candle changes, but it does not remove the inherent delay required by pivot confirmation.
━━━━━━━━━━━━━━━━━━━━━━
🟢 CONFIRMED BUY LOGIC
━━━━━━━━━━━━━━━━━━━━━━
A BUY candidate begins when a pivot low is confirmed.
The candidate is rejected when a pivot high is also confirmed on the same calculation.
The remaining BUY candidate must satisfy:
• Trend Bias is Bullish or Both
• the selected Trading Session is active
• the BUY Signal Strength meets the minimum threshold when filtering is enabled
• the cooldown is ready
• the chart bar is confirmed
When accepted, the script displays:
▲ BUY
strength%
The strength percentage appears on the second line to keep the label compact.
The compact two-line BUY label is constructed as:
string buyLabelText =
showStrengthOnSignalInput
? "▲ BUY " + str.tostring(buySignalStrength) + "%"
: "▲ BUY"
The SELL label uses the mirrored ▼ SELL format.
The label is placed below the signal candle.
The BUY tooltip can display:
• Confirmed BUY
• Signal Strength
• Confirmed Pivot price
The tracked Entry is the signal-confirmation candle close.
The BUY Stop Loss is placed below Entry using the selected Stop Loss Mode.
TP1, TP2, and TP3 are calculated above Entry from the actual Entry-to-Stop risk distance.
━━━━━━━━━━━━━━━━━━━━━━
🔴 CONFIRMED SELL LOGIC
━━━━━━━━━━━━━━━━━━━━━━
A SELL candidate begins when a pivot high is confirmed.
The candidate is rejected when a pivot low is also confirmed on the same calculation.
The remaining SELL candidate must satisfy:
• Trend Bias is Bearish or Both
• the selected Trading Session is active
• the SELL Signal Strength meets the minimum threshold when filtering is enabled
• the cooldown is ready
• the chart bar is confirmed
When accepted, the script displays:
▼ SELL
strength%
The strength percentage appears on the second line.
The label is placed above the signal candle.
The SELL tooltip can display:
• Confirmed SELL
• Signal Strength
• Confirmed Pivot price
The tracked Entry is the signal-confirmation candle close.
The SELL Stop Loss is placed above Entry using the selected Stop Loss Mode.
TP1, TP2, and TP3 are calculated below Entry from the actual Entry-to-Stop risk distance.
━━━━━━━━━━━━━━━━━━━━━━
💪 SIGNAL STRENGTH MODEL
━━━━━━━━━━━━━━━━━━━━━━
Signal Strength is a 0–100 quality score.
The final score contains five components worth up to 20 points each:
1. Pivot Distance
2. Wick Quality
3. Confirmation Candle
4. Volume Participation
5. Trend Alignment
The score is intended to compare the internal characteristics of confirmed pivot setups under the same script rules.
It is not a probability forecast.
A 75% label does not mean there is a guaranteed 75% probability of profit.
It means the setup received 75 points out of the script’s 100-point quality model.
The Minimum Signal Strength input controls the required score.
Default:
55
When the filter is enabled:
• scores below the minimum are rejected
• scores equal to or above the minimum are eligible
• lower thresholds generally create more signals
• higher thresholds generally create fewer signals
The strength percentage can be hidden from the BUY / SELL label without disabling the strength filter.
The five component values are combined into the final score:
int buySignalStrength = int(math.round(
math.min(
buyPivotDistanceScore +
buyWickScore +
buyCandleScore +
volumeScore +
buyTrendScore,
100.0
)
))
int sellSignalStrength = int(math.round(
math.min(
sellPivotDistanceScore +
sellWickScore +
sellCandleScore +
volumeScore +
sellTrendScore,
100.0
)
))
A score is therefore the sum of five internal measurements, capped at 100.
━━━━━━━━━━━━━━━━━━━━━━
📏 PIVOT DISTANCE COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Pivot Distance evaluates how far the confirmation-candle close is from the confirmed pivot relative to ATR.
For BUY candidates, the model measures the distance from the confirmed pivot low to the current close.
For SELL candidates, it measures the distance from the current close to the confirmed pivot high.
The normalized value is capped internally.
The maximum contribution is 20 points.
This component does not claim that a larger distance is always better.
It only measures the amount of price separation used by this quality model.
━━━━━━━━━━━━━━━━━━━━━━
🕯️ WICK QUALITY COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Wick Quality evaluates the rejection wick on the original pivot candle.
For BUY candidates:
• lower wick size is compared with the full pivot-candle range
For SELL candidates:
• upper wick size is compared with the full pivot-candle range
A larger relevant wick can contribute more points, up to 20.
This component attempts to represent rejection behavior at the confirmed swing.
A large wick does not guarantee reversal continuation.
━━━━━━━━━━━━━━━━━━━━━━
📊 CONFIRMATION CANDLE COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
The Confirmation Candle component evaluates the candle where the pivot becomes confirmed and the signal is processed.
The model considers:
• body size relative to the full candle range
• bullish close direction for BUY candidates
• bearish close direction for SELL candidates
The body ratio contributes most of the component score.
A directional close can add an additional internal bonus.
The maximum contribution is 20 points.
The confirmation candle is not the original pivot candle.
━━━━━━━━━━━━━━━━━━━━━━
🔊 VOLUME PARTICIPATION COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Volume Participation compares current volume with an adjustable volume average.
Default volume length:
20
Higher relative volume can contribute more points, up to 20.
The component is internally capped.
When usable volume data is unavailable, the script applies a neutral fallback contribution instead of automatically assigning zero.
Volume behavior differs across asset classes and data feeds.
For some symbols, displayed volume can represent exchange volume.
For others, it can represent tick activity or a provider-specific value.
━━━━━━━━━━━━━━━━━━━━━━
📈 TREND ALIGNMENT COMPONENT
━━━━━━━━━━━━━━━━━━━━━━
Trend Alignment uses an adjustable EMA.
Default EMA length:
50
For BUY candidates, the component evaluates:
• whether price is above the EMA
• whether the EMA is rising
For SELL candidates, it evaluates:
• whether price is below the EMA
• whether the EMA is falling
Each condition contributes part of the 20-point component.
This EMA is used as one component of Signal Strength.
It is not a separate hard directional filter.
A setup can still receive points from the other four components when Trend Alignment is weak.
━━━━━━━━━━━━━━━━━━━━━━
🧭 TREND BIAS
━━━━━━━━━━━━━━━━━━━━━━
Trend Bias controls which signal directions are permitted.
Available modes:
• Bullish
• Bearish
• Both
Bullish
Allows only confirmed BUY signals.
Bearish
Allows only confirmed SELL signals.
Both
Allows confirmed signals in both directions.
Trend Bias does not change pivot detection.
It changes which confirmed candidates are allowed to become signals and tracked trades.
The final signal gate combines pivot confirmation, directional permission, session permission, Signal Strength, and cooldown:
bool buySignal =
buyCandidate and
bullishBiasAllowed and
timeFilterPassed and
buyStrengthPassed and
cooldownReady
bool sellSignal =
sellCandidate and
bearishBiasAllowed and
timeFilterPassed and
sellStrengthPassed and
cooldownReady
Only candidates that pass every active condition become BUY or SELL signals.
━━━━━━━━━━━━━━━━━━━━━━
🕒 SESSION FILTER
━━━━━━━━━━━━━━━━━━━━━━
The Trading Session input controls when new signals can be accepted.
Available modes:
• All Sessions
• London
• New York
• London + New York
• Custom
London uses:
08:00–17:00
Europe/London time
New York uses:
09:30–16:00
America/New_York time
London + New York accepts signals during either defined session.
Custom allows the user to define a session and select:
• Exchange
• UTC
• Europe/London
• America/New_York
• Europe/Istanbul
• Asia/Tokyo
The session filter affects new entries only.
An already active tracked trade continues to be managed outside the selected session.
The dashboard displays whether the current session rule is OPEN or CLOSED.
━━━━━━━━━━━━━━━━━━━━━━
⏳ COOLDOWN AND CONFLICT HANDLING
━━━━━━━━━━━━━━━━━━━━━━
Signal Cooldown Bars defines the minimum number of completed candles required between accepted signals.
Default:
0
A value of 0 disables additional cooldown filtering.
Higher values reduce how frequently new signals can be accepted.
When a pivot high and pivot low are both confirmed on the same calculation, the script rejects both candidates.
This prevents contradictory BUY and SELL signals from being accepted on the same candle.
━━━━━━━━━━━━━━━━━━━━━━
🎯 ENTRY AND ACTIVE-TRADE REPLACEMENT MODEL
━━━━━━━━━━━━━━━━━━━━━━
The Entry is stored at the close of the accepted signal candle.
The script maintains one active tracked trade.
However, new eligible signals are not ignored while a trade is active.
When a new eligible BUY or SELL signal appears:
• the current active trade is valued at the new signal candle’s close
• its current R result is added to statistics
• its active lines and labels are removed
• the new signal opens a new tracked trade
This behavior applies to eligible same-direction and opposite-direction signals.
The replacement exit is not a broker fill.
It is an internal close-based accounting rule used to keep only one active tracked trade.
Because replacement exits can occur before TP3, Stop Loss, or Break-Even, NET R can include partial positive or negative R outcomes.
━━━━━━━━━━━━━━━━━━━━━━
🛑 STOP LOSS SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes four Stop Loss modes:
• ATR
• Pivot Level
• Pivot + ATR Buffer
• Signal Candle
ATR
BUY:
Entry − ATR × multiplier
SELL:
Entry + ATR × multiplier
Default ATR length:
14
Default ATR multiplier:
2.0
Pivot Level
BUY:
confirmed pivot low
SELL:
confirmed pivot high
Pivot + ATR Buffer
BUY:
confirmed pivot low − ATR × pivot buffer
SELL:
confirmed pivot high + ATR × pivot buffer
Default pivot buffer:
0.25 ATR
Signal Candle
BUY:
signal candle low
SELL:
signal candle high
The script validates the selected Stop Loss.
For BUY, Stop Loss must be meaningfully below Entry.
For SELL, Stop Loss must be meaningfully above Entry.
When the selected structural stop is invalid, the script uses the ATR Stop Loss as a safety fallback.
The actual risk distance is:
absolute difference between Entry and the validated Stop Loss
That distance becomes 1R for all target calculations.
The requested Stop Loss is selected from the active mode:
requestedStopPrice :=
stopLossModeInput == "ATR"
? activeEntryPrice - atrFallbackDistance
: stopLossModeInput == "Pivot Level"
? confirmedPivotLow
: stopLossModeInput == "Pivot + ATR Buffer"
? confirmedPivotLow - atrValue * pivotBufferATRInput
: low
For SELL trades, the same logic is mirrored above Entry.
The script then validates the requested structural stop.
When the selected price is not on the correct side of Entry, ATR is used as the fallback.
━━━━━━━━━━━━━━━━━━━━━━
🏆 TP1 / TP2 / TP3 SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
TP1, TP2, and TP3 are independently adjustable.
Default values:
• TP1: 1R
• TP2: 2R
• TP3: 3R
For BUY:
target = Entry + risk distance × selected R multiple
For SELL:
target = Entry − risk distance × selected R multiple
TP1 and TP2 are intermediate target events.
TP3 is the final target and closes the active tracked trade.
When TP3 is touched:
• TP1 is also recorded if it was not already recorded
• TP2 is also recorded if it was not already recorded
• TP3 is recorded
• the trade closes at the selected TP3 R value
Users should normally keep:
TP1 < TP2 < TP3
The script allows independent values, so users are responsible for maintaining a logical target sequence.
After the validated Stop Loss is stored, the script defines 1R and calculates each target:
activeRiskDistance :=
math.max(
math.abs(activeEntryPrice - activeStopPrice),
syminfo.mintick
)
activeTP1Price :=
activeTradeDirection == 1
? activeEntryPrice + activeRiskDistance * tp1RRInput
: activeEntryPrice - activeRiskDistance * tp1RRInput
activeTP2Price :=
activeTradeDirection == 1
? activeEntryPrice + activeRiskDistance * tp2RRInput
: activeEntryPrice - activeRiskDistance * tp2RRInput
activeTP3Price :=
activeTradeDirection == 1
? activeEntryPrice + activeRiskDistance * tp3RRInput
: activeEntryPrice - activeRiskDistance * tp3RRInput
The target calculations therefore remain proportional to the actual Entry-to-Stop distance.
━━━━━━━━━━━━━━━━━━━━━━
🟡 BREAK-EVEN SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
Break-Even Mode includes:
• Off
• After TP1
• After TP2
After TP1
The Stop Loss moves to Entry after the TP1-touch candle closes.
After TP2
The Stop Loss moves to Entry after the TP2-touch candle closes.
The updated Break-Even stop applies from the following candle.
An optional favorable tick offset can be added.
For BUY:
Break-Even = Entry + offset
For SELL:
Break-Even = Entry − offset
When Break-Even becomes active:
• the Stop Loss line changes to the Break-Even color
• the Stop label changes from SL to BE
• the separate Entry line is deleted
• the separate Entry label is deleted
• only the BE level remains at or near Entry
This prevents Entry and Break-Even labels from overlapping at the same price.
A Break-Even stop with zero offset produces approximately 0R.
A positive favorable offset can produce a small positive R result.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ SAME-CANDLE STOP AND TARGET HANDLING
━━━━━━━━━━━━━━━━━━━━━━
Historical OHLC candles do not reveal the exact sequence of all intrabar price movement.
A candle can include both the active Stop price and one or more target prices.
When the active Stop and a target are both touched inside the same historical candle, the script uses a conservative rule:
The active Stop receives priority.
This applies to the original Stop Loss and the active Break-Even stop.
Trade-management checks begin on the candle after Entry.
The Entry candle cannot immediately close the new tracked trade.
The conservative priority rule can produce different results from lower-timeframe reconstruction or tick-level execution data.
━━━━━━━━━━━━━━━━━━━━━━
📐 ACTIVE TRADE VISUAL SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
While a tracked trade is active, the script can display:
• Stop Loss or Break-Even line
• Entry line
• TP1 line
• TP2 line
• TP3 line
• Stop Loss or Break-Even label
• Entry label
• TP1 label
• TP2 label
• TP3 label
The lines project to the right by the selected number of bars.
Default:
20 bars
Stop and Entry use solid lines.
Targets use dashed lines.
After TP1 or TP2 is reached:
• the corresponding target label changes to a completed state
• the corresponding line becomes more transparent
After Break-Even activates:
• the Entry line and Entry label disappear
• the active Stop line and label become BE
When the trade closes or is replaced:
• active trade lines are deleted
• active trade labels are deleted
The script does not preserve completed trade lines as permanent historical drawings.
━━━━━━━━━━━━━━━━━━━━━━
🏷️ LABELS, TOOLTIPS, AND TEXT
━━━━━━━━━━━━━━━━━━━━━━
BUY and SELL labels use two lines when strength display is enabled:
direction
strength%
Available Label Size values:
• Tiny
• Small
• Normal
• Large
• Huge
The setting controls:
• BUY
• SELL
• Entry
• Stop Loss
• Break-Even
• TP1
• TP2
• TP3
Phone Mode overrides the selected label size with Tiny.
Visible chart labels use bold and italic formatting.
Signal tooltips can show:
• direction
• strength
• pivot price
Trade-level tooltips can show:
• Entry strength
• risk distance
• Stop Loss mode
• Stop or BE price
• target R value
• target price
• target status
• Break-Even tick offset
Tooltips are informational chart elements.
They do not represent broker orders.
━━━━━━━━━━━━━━━━━━━━━━
📟 COMPACT PREMIUM DASHBOARD
━━━━━━━━━━━━━━━━━━━━━━
The desktop dashboard is divided into four sections:
STATE
• symbol and timeframe
• active signal and strength
• current trade status
• session status
TRADE
• active Stop Loss mode
• Entry and Stop / Break-Even
• TP1 / TP2 / TP3 scale
• live R
PERFORMANCE
• total trades started
• closed trades
• Win Rate
• NET R
• Average R
• TP1 / TP2 / TP3 hit rates
QUALITY
• latest strength
• Trend component
• Volume component
• Wick component
• Confirmation Candle component
• Pivot Distance component
• Trend Bias
• Break-Even mode
• Minimum Strength
Quality components are displayed in a compact format:
T = Trend
V = Volume
W = Wick
C = Candle
P = Pivot Distance
The dashboard can be positioned at:
• Top Right
• Bottom Right
• Top Left
• Bottom Left
The selected input is translated into a PulseWire table position:
string dashboardTablePosition =
dashboardPositionInput == "Top Right" ? position.top_right :
dashboardPositionInput == "Top Left" ? position.top_left :
dashboardPositionInput == "Bottom Left" ? position.bottom_left :
position.bottom_right
if barstate.islast
table.set_position(
statisticsTable,
dashboardTablePosition
)
━━━━━━━━━━━━━━━━━━━━━━
📊 STATISTICS METHODOLOGY
━━━━━━━━━━━━━━━━━━━━━━
The statistics are produced by the script’s internal bar-based tracker.
They are not imported from a broker.
They are not verified account results.
They are not PulseWire Strategy Tester results.
Total Trades Started
Number of accepted signals that opened a tracked trade.
Total Trades Closed
Number of tracked trades closed by:
• Stop Loss
• Break-Even
• TP3
• active-trade replacement
TP1 Hit Rate
TP1 touches divided by Total Trades Started.
TP2 Hit Rate
TP2 touches divided by Total Trades Started.
TP3 Hit Rate
TP3 touches divided by Total Trades Started.
NET R
Sum of all recorded closed-trade R outcomes.
Average R
NET R divided by Total Trades Closed.
Win Rate
Positive-R trades divided by positive-R plus negative-R trades.
Exact 0R Break-Even results are excluded from the Win Rate denominator.
A favorable Break-Even offset can produce a small positive R result and can therefore be classified as a positive-R trade.
Replacement exits use the close of the new signal candle and can contribute partial R.
Statistics depend on:
• loaded chart history
• symbol
• timeframe
• exchange or broker feed
• left and right pivot settings
• Trend Bias
• session setting
• cooldown
• strength threshold
• EMA and volume lengths
• ATR settings
• Stop Loss mode
• target settings
• Break-Even settings
• replacement-signal sequence
Changing any of these inputs can change historical results.
━━━━━━━━━━━━━━━━━━━━━━
🎨 THEME SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes:
• Auto
• Dark Mode
• Light Mode
• Phone Mode
Auto
Detects the chart background and selects the corresponding light or dark visual palette.
Dark Mode
Uses:
• darker green and red signal colors
• dark dashboard surfaces
• white chart-label text
• dark Entry color
• muted dashboard text
• red brand header
Light Mode
Uses:
• brighter green and red signal colors
• light dashboard surfaces
• dark BUY text where required
• adjusted Entry and dashboard colors
• red brand header
Theme selection changes presentation.
It does not change pivot detection, Signal Strength, trade levels, statistics, or alerts.
━━━━━━━━━━━━━━━━━━━━━━
📱 PHONE MODE
━━━━━━━━━━━━━━━━━━━━━━
Phone Mode is designed for smaller chart areas.
It uses:
• Tiny signal labels
• Tiny active-trade labels
• one-pixel trade-level lines
• dark visual palette
• compact dashboard text
• reduced dashboard rows
The Phone Mode dashboard displays:
• Signal and Strength
• Status
• Win Rate and NET R
• Session
The compact layout intentionally removes most desktop details.
Phone Mode changes presentation only.
It does not change calculations.
━━━━━━━━━━━━━━━━━━━━━━
🚨 ALERT SYSTEM
━━━━━━━━━━━━━━━━━━━━━━
The script includes static PulseWire alert conditions for:
• Confirmed BUY
• Confirmed SELL
• Stop Loss Hit
• Break-Even Activated
• Break-Even Hit
• TP1 Hit
• TP2 Hit
• TP3 Hit
Static BUY and SELL messages can include:
• exchange
• ticker
• timeframe
• Signal Strength
• Entry
• Stop
• TP1
• TP2
• TP3
The script also includes dynamic alert() events for:
• BUY signal
• SELL signal
• Stop Loss hit
• Break-Even activation
• Break-Even hit
• TP1 hit
• TP2 hit
• TP3 hit
Dynamic signal messages can include:
• trade_w_samet identifier
• event type
• direction
• symbol
• timeframe
• Signal Strength
• Entry
• Stop
• TP1
• TP2
• TP3
• Stop Loss Mode
• Break-Even Mode
• Trading Session
• session OPEN / CLOSED state
Dynamic trade-management messages preserve the active trade’s stored values before the trade state is reset.
Alert events use once-per-bar-close frequency.
A dynamic signal message is assembled from the stored trade values:
string buyEntryAlertMessage =
"trade_w_samet | Pivot Sniper Method" +
" Event: BUY SIGNAL" +
" Direction: BUY" +
" Symbol: " + syminfo.tickerid +
" Timeframe: " + timeframe.period +
" Strength: " + str.tostring(buySignalStrength) + "%" +
" Entry: " + str.tostring(activeEntryPrice, format.mintick) +
" SL: " + str.tostring(activeStopPrice, format.mintick) +
" TP1: " + str.tostring(activeTP1Price, format.mintick) +
" TP2: " + str.tostring(activeTP2Price, format.mintick) +
" TP3: " + str.tostring(activeTP3Price, format.mintick)
alert(
message=buyEntryAlertMessage,
freq=alert.freq_once_per_bar_close
)
The complete live message also includes Stop Loss Mode, Break-Even Mode, and session context.
Alerts are monitoring tools.
They do not execute or modify broker orders.
━━━━━━━━━━━━━━━━━━━━━━
🔔 HOW TO USE ALERTS
━━━━━━━━━━━━━━━━━━━━━━
For a specific static event:
1. Add Pivot Sniper Method to the chart.
2. Open PulseWire’s Create Alert window.
3. Select the indicator as the condition.
4. Select the required BUY, SELL, Stop, Break-Even, TP1, TP2, or TP3 event.
5. Select the notification method.
6. Test the alert before relying on it.
For one combined dynamic workflow:
1. Add the indicator to the chart.
2. Open Create Alert.
3. Select Pivot Sniper Method .
4. Select Any alert() function call.
5. Configure the delivery method.
6. Test signal and trade-management messages.
PulseWire saves a snapshot of the script, its inputs, and chart context when an alert is created.
After materially changing the script, symbol, timeframe, or inputs, delete and recreate the alert so it uses the intended configuration.
━━━━━━━━━━━━━━━━━━━━━━
🧪 PRACTICAL WORKFLOW
━━━━━━━━━━━━━━━━━━━━━━
A practical review process:
1. Add Pivot Sniper Method to a standard candlestick chart.
2. Select Auto, Dark, Light, or Phone Mode.
3. Start with symmetrical pivot settings.
4. Observe how right-side bars affect confirmation delay.
5. Select Both Trend Bias when studying raw signal behavior.
6. Select Bullish or Bearish when reviewing one direction only.
7. Begin with All Sessions when studying general behavior.
8. Test London, New York, or Custom session filtering.
9. Begin with the default Minimum Signal Strength.
10. Compare signal frequency at higher and lower thresholds.
11. Review the strength percentage below each BUY or SELL label.
12. Use the tooltip to inspect the confirmed pivot price.
13. Compare the five quality components in the dashboard.
14. Select the preferred Stop Loss Mode.
15. Verify that the structural stop is logically positioned.
16. Review the ATR fallback behavior.
17. Set TP1, TP2, and TP3 in increasing order.
18. Select the Break-Even rule.
19. Review when the Entry label disappears and BE replaces it.
20. Observe how new eligible signals replace an active tracked trade.
21. Review Live R and historical NET R.
22. Review failed setups as well as successful setups.
23. Create and test alerts.
24. Define personal position size independently.
25. Account for spread, commission, liquidity, news, and execution conditions.
The indicator is designed for structured study and monitoring.
It should not be treated as an automatic decision-maker.
━━━━━━━━━━━━━━━━━━━━━━
⚙️ SETTINGS REFERENCE
━━━━━━━━━━━━━━━━━━━━━━
📈 Trend Bias
Trend Bias
• Bullish
• Bearish
• Both
━━━━━━━━━━━━━━━━━━━━━━
⚙️ Pivot Settings
Pivot High Left Bars
Default:
10
Pivot High Right Bars
Default:
10
Pivot Low Left Bars
Default:
10
Pivot Low Right Bars
Default:
10
━━━━━━━━━━━━━━━━━━━━━━
🚨 Signal Settings
Show BUY / SELL Signals
Shows or hides signal labels.
Signal Cooldown Bars
Default:
0
━━━━━━━━━━━━━━━━━━━━━━
🕒 Time Filter
Trading Session
• All Sessions
• London
• New York
• London + New York
• Custom
Custom Session
Default:
08:00–17:00
Custom Session Time Zone
• Exchange
• UTC
• Europe/London
• America/New_York
• Europe/Istanbul
• Asia/Tokyo
━━━━━━━━━━━━━━━━━━━━━━
💪 Signal Strength
Enable Signal Strength Filter
Default:
On
Minimum Signal Strength
Default:
55
Show Strength on Signal
Default:
On
Strength Trend Length
Default:
50
Strength Volume Length
Default:
20
━━━━━━━━━━━━━━━━━━━━━━
📦 Trade Levels
Show Active Trade Levels
Default:
On
Stop Loss Mode
• ATR
• Pivot Level
• Pivot + ATR Buffer
• Signal Candle
ATR Length
Default:
14
Stop Loss ATR Multiplier
Default:
2.0
Pivot ATR Buffer
Default:
0.25
TP1 Risk / Reward
Default:
1.0R
TP2 Risk / Reward
Default:
2.0R
TP3 Risk / Reward
Default:
3.0R
Level Projection Bars
Default:
20
━━━━━━━━━━━━━━━━━━━━━━
🟡 Break-Even
Break-Even Mode
• Off
• After TP1
• After TP2
Default:
After TP1
Break-Even Offset Ticks
Default:
0
━━━━━━━━━━━━━━━━━━━━━━
📊 Statistics Dashboard
Show Statistics Dashboard
Default:
On
Dashboard Position
• Top Right
• Bottom Right
• Top Left
• Bottom Left
━━━━━━━━━━━━━━━━━━━━━━
🎨 Visual Settings
Theme Mode
• Auto
• Dark Mode
• Light Mode
• Phone Mode
Label Size
• Tiny
• Small
• Normal
• Large
• Huge
Phone Mode always uses Tiny.
━━━━━━━━━━━━━━━━━━━━━━
🔔 Alert Settings
Enable BUY Alerts
Default:
On
Enable SELL Alerts
Default:
On
Enable Dynamic Alerts
Default:
On
All public input values are hidden from PulseWire’s status line to reduce chart-header clutter.
━━━━━━━━━━━━━━━━━━━━━━
🧠 WHAT MAKES THIS SCRIPT ORIGINAL
━━━━━━━━━━━━━━━━━━━━━━
Pivots, ATR, EMA, volume comparison, session filters, risk/reward levels, Break-Even, alerts, and performance statistics are established technical-analysis concepts.
These concepts are not unique by themselves.
The originality of Pivot Sniper Method lies in the coordinated implementation applied to them:
confirmed high and low pivots
→ same-bar directional-conflict rejection
→ Bullish / Bearish / Both permission
→ session filtering
→ cooldown
→ five-part 0–100 quality model
→ minimum-quality acceptance
→ compact two-line BUY / SELL labels
→ confirmation-close Entry
→ four selectable Stop Loss models
→ ATR structural-stop validation fallback
→ independently adjustable TP1 / TP2 / TP3
→ target-state visual updates
→ TP1- or TP2-based Break-Even
→ Entry-to-BE visual replacement
→ active-trade replacement at current close
→ internal partial-R accounting
→ desktop and Phone dashboards
→ theme-aware colors
→ dashboard-corner selection
→ detailed static and dynamic alerts
Distinctive implementation features include:
• using five quality dimensions inside one pivot-reversal workflow
• separating pivot confirmation from Entry timing
• using the original pivot candle for wick quality
• using the later confirmation candle for candle quality and Entry
• applying session control only to new entries
• supporting four Stop Loss construction methods
• validating structural stops and falling back to ATR when required
• removing the Entry visual after Break-Even replaces it
• tracking replacement exits in R
• showing latest quality components in a compact dashboard
• supporting both individual events and one combined dynamic-alert workflow
The script is not a collection of unrelated indicators.
Every component supports the same objective: evaluating and managing a confirmed pivot-reversal setup under explicit, reviewable rules.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ IMPORTANT PRACTICAL NOTES
━━━━━━━━━━━━━━━━━━━━━━
Signal frequency depends on:
• symbol
• timeframe
• data provider
• pivot left and right settings
• Trend Bias
• selected session
• cooldown
• minimum strength
• EMA length
• volume length
• ATR availability
• historical data availability
Higher right-side pivot values increase confirmation delay.
Higher strength thresholds reduce accepted signals.
Session filtering can remove otherwise valid setups.
The strength score is not a probability forecast.
The Trend component is part of the score, not a separate hard trend filter.
The script replaces an active tracked trade when a new eligible signal appears.
The script does not retain completed trade lines historically.
Dashboard statistics use loaded chart history only.
Different exchanges, brokers, and data feeds can produce different:
• highs
• lows
• closes
• pivots
• wick measurements
• volume values
• ATR values
• EMA values
• signals
• stop levels
• target levels
• replacement exits
• historical statistics
Changing available history can change the first eligible setup and later active-trade sequencing.
━━━━━━━━━━━━━━━━━━━━━━
⚠️ LIMITATIONS AND SHORTCOMINGS
━━━━━━━━━━━━━━━━━━━━━━
This script has important limitations.
It does not guarantee profitable trades.
It does not predict future price movement with certainty.
It does not execute orders.
It does not place broker Stop Loss orders.
It does not place broker Take Profit orders.
It does not calculate position size.
It does not calculate account risk.
It does not include spread.
It does not include commission.
It does not include slippage.
It does not include latency.
It does not include swap or financing.
It does not include taxes.
It does not model partial fills.
It does not model order rejection.
It does not model contract specifications.
It does not model tick-by-tick execution.
It uses historical OHLC bars.
It cannot always determine whether Stop or target occurred first inside one candle.
It resolves same-candle ambiguity in favor of the active Stop.
It begins trade-management checks on the candle after Entry.
It requires right-side pivot confirmation.
It cannot identify a confirmed pivot on the original pivot candle.
It can react with delay when larger right-side values are used.
It rejects simultaneous high and low pivot confirmation.
It can reject setups through bias, session, strength, or cooldown rules.
It replaces an active tracked trade when a new eligible signal appears.
A replacement exit can close a trade before its mapped Stop or TP3.
Its Signal Strength is an internal score, not a probability.
Its volume component depends on available volume data.
Its dashboard is not Strategy Tester.
Its statistics are not audited.
Its Win Rate excludes exact 0R Break-Even results.
A positive Break-Even offset can classify a BE hit as positive R.
Its target hit rates use total trades started.
Its statistics depend on loaded chart history.
Changing settings recalculates historical behavior.
Alerts depend on PulseWire and user configuration.
Alerts do not guarantee broker execution.
━━━━━━━━━━━━━━━━━━━━━━
👤 WHO THIS SCRIPT MAY BE USEFUL FOR
━━━━━━━━━━━━━━━━━━━━━━
This script may be useful for traders who:
• understand pivot confirmation
• want BUY and SELL signals based on confirmed price pivots
• prefer a quality score instead of equal treatment for every pivot
• want separate Bullish and Bearish direction controls
• want London, New York, or Custom session filtering
• want selectable ATR or structural stops
• want independently adjustable R targets
• want TP1- or TP2-based Break-Even
• want active trade levels on the chart
• want compact tooltips
• want loaded-history R statistics
• want a compact desktop dashboard
• want a reduced Phone Mode
• want detailed PulseWire alerts
• understand that historical chart results are not verified execution
It may be less suitable for users who:
• want signals on the original unconfirmed pivot candle
• want no pivot delay
• want tick-level backtesting
• want multiple simultaneous tracked trades
• want new signals ignored while a trade is active
• want historical completed-trade lines preserved
• want automatic broker execution
• want position sizing
• want commission and slippage modeling
• want guaranteed reversal signals
• interpret Signal Strength as win probability
• expect historical Win Rate to continue unchanged
━━━━━━━━━━━━━━━━━━━━━━
🧭 BEST-PRACTICE SUGGESTIONS
━━━━━━━━━━━━━━━━━━━━━━
For studying pivot sensitivity:
• begin with equal high and low pivot settings
• compare smaller and larger left / right values
• remember that right-side values directly affect delay
For studying raw signal behavior:
• use Both Trend Bias
• use All Sessions
• use a moderate minimum strength
• review every accepted BUY and SELL
For directional study:
• use Bullish or Bearish
• compare results separately
• do not assume one direction will remain superior
For session-based review:
• compare All Sessions with London or New York
• use the exchange’s actual liquidity characteristics
• remember that active trades remain managed outside the session
For Signal Strength:
• begin with 55
• compare frequency at 45, 55, and 65
• review the five components
• do not interpret the percentage as guaranteed probability
For risk mapping:
• begin with ATR 14 and 2.0 multiplier
• compare ATR with Pivot Level
• compare Pivot Level with Pivot + ATR Buffer
• maintain logical TP1 < TP2 < TP3 values
For Break-Even:
• compare Off with After TP1
• test After TP2 for wider trade development
• keep the tick offset realistic for the instrument
For chart clarity:
• use Auto for general use
• use Dark or Light when manual control is preferred
• use Phone Mode on smaller screens
• move the dashboard away from important price action
• adjust label size according to chart density
Always:
• wait for confirmed signals
• review broader market structure
• review liquidity and volatility
• review news risk
• define personal account risk
• calculate position size independently
• test the exact symbol, timeframe, and data feed
• inspect failed trades as well as successful trades
• recreate alerts after important configuration changes
━━━━━━━━━━━━━━━━━━━━━━
🔓 PUBLICATION NOTE
━━━━━━━━━━━━━━━━━━━━━━
Pivot Sniper Method is published as an educational pivot-confirmation, signal-quality, session-filtering, risk-mapping, Break-Even, statistics, and alert tool.
The purpose of this description is to explain:
• how pivots are confirmed
• why signals appear after the original pivot
• how BUY and SELL candidates are formed
• how simultaneous pivot conflicts are rejected
• how Trend Bias affects eligibility
• how session filtering affects new entries
• how cooldown affects frequency
• how the five Signal Strength components work
• why Signal Strength is not a probability
• how Entry is defined
• how each Stop Loss Mode works
• how invalid structural stops fall back to ATR
• how TP1, TP2, and TP3 are calculated
• how Break-Even activates
• why Entry disappears after BE becomes active
• how same-candle Stop / target ambiguity is handled
• how active trades are replaced by new eligible signals
• how internal R statistics are calculated
• what the dashboard displays
• how Phone Mode differs
• what alerts include
• what the script does not simulate
• why historical results can change
The script is designed to support structured review.
It does not promise profitable results.
It does not remove market risk.
It does not replace independent analysis.
It does not replace personal risk management.
━━━━━━━━━━━━━━━━━━━━━━
🕒 REPAINTING, BACKPLOTTING, AND TIMING DISCLOSURE
━━━━━━━━━━━━━━━━━━━━━━
Pivot Sniper Method uses confirmed price pivots.
Pivot confirmation requires future candles relative to the original pivot location.
The number of required right-side candles is controlled independently for pivot highs and pivot lows.
The script does not know that a pivot exists on the original pivot candle.
After the required right-side candles complete:
• the pivot becomes confirmed
• the candidate is evaluated
• Signal Strength is calculated
• filters are applied
• the BUY or SELL label can appear on the confirmation candle
• the tracked Entry can open at the confirmation-candle close
The BUY or SELL trade label is not plotted back on the original pivot candle.
The Entry is not backdated.
Signals require confirmed chart bars.
This reduces unfinished current-bar variation.
It does not remove:
• pivot confirmation delay
• differences between historical OHLC and tick sequence
• data-feed differences
• changes caused by settings
• changes caused by loaded history
• market risk
Historical results can change when:
• pivot settings change
• Trend Bias changes
• session settings change
• cooldown changes
• strength settings change
• ATR settings change
• Stop Loss Mode changes
• target settings change
• Break-Even settings change
• symbol changes
• timeframe changes
• exchange or broker feed changes
• available chart history changes
Users should interpret the original pivot price as historical structure and the later BUY / SELL candle as the actual confirmed signal timing.
━━━━━━━━━━━━━━━━━━━━━━
🛡️ DISCLAIMER
━━━━━━━━━━━━━━━━━━━━━━
Pivot Sniper Method is provided for educational and informational purposes only.
It does not constitute financial, investment, trading, legal, accounting, or tax advice.
No indicator can guarantee future results.
Markets are uncertain.
Price structure changes.
Volatility changes.
Liquidity changes.
Volume behavior changes.
Session behavior changes.
Historical chart behavior does not ensure future performance.
Every user is responsible for their own:
• analysis
• validation
• symbol selection
• timeframe selection
• pivot settings
• directional bias
• session selection
• quality threshold
• Stop Loss selection
• target planning
• Break-Even selection
• position sizing
• risk management
• alert configuration
• trading decisions
• broker execution
• legal obligations
• tax obligations
The pivots, BUY labels, SELL labels, Signal Strength values, Entry levels, Stop Loss levels, Break-Even levels, TP1 levels, TP2 levels, TP3 levels, active lines, labels, tooltips, dashboard values, Win Rate, NET R, Average R, target hit rates, and alerts are visual analysis tools only.
A confirmed pivot is not a guaranteed reversal.
A high Signal Strength value is not a guaranteed winning trade.
A TP label is not proof of an actual broker fill.
A Stop Loss event is not proof of an actual broker fill.
The dashboard is not verified account performance.
The statistics are not audited.
The script does not include spread, commission, slippage, latency, financing, taxes, partial fills, order rejection, position sizing, account equity, or broker-specific execution.
Use the script as a structured pivot-reversal review, trade-mapping, and monitoring framework—not as a promise of profitability or a substitute for independent judgment.
Indicator

Session Range BoxSession Range Box
A universal tool that draws the range of a chosen session as a box. The trader
sets the conditions: the session, the timezone, and the window. The borders are
built from the session highs and lows - an area of potential liquidity, since
resting orders tend to build up above the highs and below the lows.
This is a tool, not a signal system. It gives a clean, non-repainting map of the
range. How to use it is up to the trader's own strategy.
How It Works
1. Accumulation window. The trader sets the session time in their own timezone.
The highest high and the lowest low inside this window become the box borders.
2. Freeze. Once the window closes, the borders are locked and never repaint.
What you see on history is what actually happened at that moment.
3. Extend. The frozen box is stretched to the right until the end of the day, so
you can watch price test the borders after the session. A new day starts a new box.
What It Pairs With
Smart Money logic and the accumulation - manipulation - distribution model. The box
shows where potential liquidity sits; the trader applies their own scenario on top.
Applications
- Trading the Asian range
- Trading the European and US range
- First-hour range
- Mean reversion (from the box midline)
Settings
- Timezone: city entries (which adjust automatically for daylight saving) or fixed
UTC offsets (to match a broker's server time).
- Accumulation window: any length, from one hour to a full session.
- Extend box to end of day: on/off.
- Style: color, fill, borders, midline, label.
To show several sessions at once (Asia + Europe + US), add the indicator to the
chart more than once with different settings.
Notes
- Recommended timeframe: M1 to H1, depending on the strategy.
- Time is based on the selected timezone; city entries adjust for daylight saving,
fixed offsets do not. Indicator

Displacement Acceptance Engine [PhenLabs]📊 Displacement Acceptance Engine
Version: PineScript™ v6
📌 Description
The Displacement Acceptance Engine grades what happens after a liquidity sweep — not just the sweep itself. Most sweep tools fire on a wick beyond a swing and stop there. DAE waits for a real displacement leg, then scores whether price accepts that move or rejects it.
Traders see a clean story on the chart: sweep zone → neon displacement beam → scored ▲ ACC / ✕ REJ label, plus a live dashboard with bias, state, score, last event, HTF context, and volume pulse. Built for SMC/ICT retail who want continuation quality after stop-hunts on crypto, indices, FX, and metals.
🔧 Core Features
• Confirmed BSL/SSL liquidity pools from swing pivots
• Stop-hunt sweep detection with ATR buffer and optional close-back-inside
• Displacement window that requires body + ATR expansion beyond the sweep
• Acceptance vs rejection resolve with hold-fraction logic
• Mechanical 0–10 score (depth, displacement, body, volume, structure, HTF)
• Neon beams, sweep zones, scored labels, and PhenLabs command dashboard
• Cooldown + max visible events to keep charts readable
⚙️ How It Works
• Sweep Depth — wick pierce beyond the pool normalized by ATR
• Displacement Magnitude — impulse leg size vs ATR after the sweep
• Body Quality — displacement candle body strength vs ATR
• Volume Pulse — bar volume vs SMA (HOT / OK / SOFT)
• Structure Break — close through recent swing extreme or pool buffer
• HTF Bias — optional higher-timeframe alignment bonus
• Final score gates high-conviction ▲ ACC labels; failed holds print ✕ REJ
🎨 Visual Guide
• Dotted pool rails — active buyside / sellside liquidity
• Translucent sweep boxes — stop-hunt event footprint
• Dual-glow displacement beams — core + outer rail from origin to impulse close
• ▲ ACC / ✕ REJ scored labels — continuation quality at a glance
• Soft bar highlight — high-score acceptance bars only
• Top-right dashboard — BIAS · STATE · SCORE · EVENT · HTF · VOL · POOLS
📡 Alerts
• Bull Liquidity Sweep
• Bear Liquidity Sweep
• Bull Displacement
• Bear Displacement
• Bull Acceptance High Score
• Bear Acceptance High Score
• Displacement Rejection
⚙️ Key Settings
• Pivot Lookback — Default: 5 — pool sensitivity
• Require Close Back Inside — Default: true — classic stop-hunt reclaim
• Displacement Window — Default: 6 bars — time allowed for impulse
• Min Displacement (ATR) — Default: 0.55 — impulse size gate
• Acceptance Window — Default: 8 bars — hold / fail resolve time
• Hold Fraction of Disp Leg — Default: 0.45 — acceptance hold line
• Min Acceptance Score — Default: 6.0 — label / highlight gate
• HTF Bias Timeframe — Default: 60 — score alignment context
• Max Visible Events — Default: 8 — clutter control
⚠️ Disclaimer
Educational tool only. Not financial advice. Past structure ≠ future results. Always manage risk. Indicator

FVG CrossfireGENERAL OVERVIEW:
FVG Crossfire identifies and plots the exact price bands where a bullish and a bearish imbalance have overlapped. These overlap bands, called crossfire zones, are the only objects the indicator draws. Ordinary Fair Value Gaps are tracked in the background as inputs, but a standalone gap is never rendered on the chart; a zone is created only when a fresh FVG overlaps an older, still-unfilled FVG of the opposite direction. From that point the zone remains on the chart, reversing direction each time an opposing FVG overlaps it, recording each transition with a star counter, marking every retest with an arrow, and being removed only when price trades fully through it.
What is the theory behind the indicator?
A Fair Value Gap records a price imbalance: price moved quickly enough that a gap was left between the wicks of the surrounding candles. The problem is that FVGs are common. On a fast chart dozens print every session, most of them noise, and drawing them all obscures the few levels that actually matter.
FVG Crossfire is built on a stricter criterion: the event worth displaying is the overlap. When a new imbalance prints in the opposite direction directly on top of an older, still-unfilled one, that price band is no longer one-sided; buyers have left an imbalance there, and now sellers have as well (or the reverse). That overlap marks a contested level, one the market has already reacted to from both directions.
The sequence often continues. Each additional opposing FVG flips the zone again, and because a flip keeps only the portion of the zone where the imbalances actually overlap, the contested band becomes tighter and more precise with each transition. What remains is a narrow, repeatedly tested level with a visible history, which is among the strongest forms of support or resistance an imbalance structure can produce.
The FVG Crossfire indicator includes 5 main features:
FVG CROSSFIRE FEATURES
Crossfire Zone Detection
Zone Flipping & Flip Counter
Retest Detection
Zone Mitigation
Alerts
CROSSFIRE ZONE DETECTION:
🔹What Is a Crossfire Zone?
A crossfire zone is the price band shared by two opposite imbalances: an older, still-unfilled Fair Value Gap and a newly formed FVG in the opposite direction that printed on top of it. The zone covers only the overlap, and it takes the direction and color of the newer FVG, the most recent side to print. An optional "origin funnel" draws converging lines from the older gap into the zone, so the source of the overlap remains visible.
🔹What Is a Fair Value Gap?
For background: an FVG is a three-candle pattern where the middle candle moves so strongly that a gap is left between the first candle and the third: the low of candle three above the high of candle one (bullish), or the high of candle three below the low of candle one (bearish). In this indicator FVGs are inputs, not output: they are detected and tracked entirely in the background, and one that never overlaps an opposite gap is discarded without ever being drawn.
🔹Why Are Crossfire Zones Important?
A single gap indicates one-sided aggression at a price. A crossfire zone indicates that both sides were aggressive at the same prices and disagreed. These contested bands tend to attract price repeatedly, which makes them stronger candidates for support, resistance, and reaction trades than any single gap. And because only overlaps are drawn, every object on the chart is already a filtered, higher-significance level.
🔹How Crossfire Zones Are Detected:
Every candle close, the engine scans the last three candles for a new FVG (gaps smaller than your minimum size are skipped, and candles around daily or weekly session breaks are excluded so overnight gaps don't create false patterns). Each stored gap is also tracked as later candles fill it (by wick or by close, depending on the setting), and a fully filled gap is dropped from the pool. When a fresh FVG confirms, it is compared against every waiting opposite gap: wherever it overlaps the unfilled part of one, a crossfire zone is created on the overlap and the origin funnel appears. Every FVG participates exactly once; after creating (or flipping) a zone it is consumed, so one price move never produces duplicate zones. Live zones extend to the right edge of the chart, and an optional "Combine" mode merges same-direction zones that overlap in price into one bigger zone.
🔹Settings: Base FVG Group (the detection engine)
Base FVG mitigation: whether wicks or only candle closes fill a waiting gap before it can participate in an overlap.
Min FVG gap (% of price): ignore gaps below this size; 0 keeps every gap.
Show origin funnel: draw the converging lines from the source gap into its zone.
Border, Style, Colors: visual control of the funnel; color transparency sets the fill strength.
🔹Settings: Crossfire Zone Group
Lookback (candles): zones are only built inside the most recent N candles (default 3000); every zone created in the window is shown.
Border, Style, Midline: outline and optional equilibrium line for each zone.
Bullish / Bearish colors: transparency sets the zone fill strength.
Combine overlapping zones: merge same-color zones that overlap in price.
ZONE FLIPPING & FLIP COUNTER:
🔹What Is a Zone Flip?
If a live crossfire zone is overlapped by another FVG in the opposite direction, the zone flips: the current box is frozen in place and a new, opposite-colored box continues from that point. Read left to right, a flipped zone forms a timeline of directional control over that price band.
🔹Why Do Flips Matter?
Every flip is another change of direction at the same level, evidence that the market continues to react to that price. And because each flip keeps only the part of the zone that the new FVG actually overlapped, the contested band tightens with every flip. A zone that has flipped three times is a narrow, precise, repeatedly contested level, exactly the kind of area worth planning trades around.
🔹How the Flip Counter Works:
Each live zone shows a star counter on its edge at the latest candle: green stars touching the bottom edge of bullish zones, red stars touching the top edge of bearish zones. One star means the zone has formed once, two stars means one flip, and so on; zones with five or more entries display a compact count instead (for example "6 ★"). There is no limit on flips; the chain only ends when the zone is fully mitigated.
RETEST DETECTION:
🔹What Is a Retest?
A retest is price leaving a live crossfire zone and then coming back to touch it again. The indicator marks every single retest: a small green ▲ below the candle that re-entered a bullish zone, a small red ▼ above the candle that re-entered a bearish zone.
🔹Why Are Retests Important?
The retest is usually the tradeable moment. A contested zone holding on a return visit is the confirmation many traders wait for before entering, and repeated successful retests indicate the level continues to hold.
🔹How Retests Are Detected:
On every candle close, the indicator checks whether the candle touched the zone (any wick contact counts) while the previous candle did not. Each fresh re-entry counts; price must leave the zone before the next retest can register, so a candle sitting inside the zone for several bars only counts once. Every retest can also fire an alert.
🔹Settings:
Retest markers: show or hide the ▲/▼ arrows.
ZONE MITIGATION:
🔹What Is Zone Mitigation?
A crossfire zone is complete (fully mitigated) when price trades all the way through it: through the bottom of a bullish zone, or through the top of a bearish zone. At that point the zone and its whole flip history are removed from the chart, or kept and faded out if you prefer to study them.
🔹Why Does Mitigation Matter?
A zone that price has completely passed through has served its purpose: the imbalance on both sides is resolved. Removing finished zones keeps the chart focused on levels that still matter, while the optional faded view lets you review how past zones resolved.
🔹How Mitigation Is Detected:
You choose what counts as trading through the far side: any wick, or only a candle close. Until that happens, the zone stays live no matter how many times it flips or gets retested.
🔹Settings:
Zone mitigation: Wick or Close.
Show mitigated zones: keep finished chains on the chart, frozen and dimmed.
ALERTS:
FVG Crossfire covers the full life of a zone with four alert events, each with its own on/off switch. Create one alert on the indicator using "Any alert() function call" and every enabled event will come through with the symbol and timeframe in the message:
New crossfire zone: two opposite FVGs overlapped and a new zone was created.
Zone flipped: a live zone changed direction (bullish ↔ bearish).
Zone retested: price re-entered a live zone after being outside it (fires on every re-entry).
Zone mitigated: a zone was fully traded through and completed.
IMPORTANT NOTES:
Plain FVGs are never drawn. Gaps are tracked in the background, and a gap only becomes visible, through its origin funnel, at the moment it produces a crossfire zone. Every object drawn on the chart is already an overlap.
All detections are evaluated on candle close. Zones, flips, retests, and mitigations are confirmed events; they do not repaint.
Background gaps are filled on a three-candle delay. This is deliberate: the same impulsive move that creates the new FVG is often the move that fills the old one, and without the delay the overlap could never be detected.
Each FVG participates exactly once. After creating or flipping a zone it is consumed, so one price move never produces duplicate zones.
A flip requires the new FVG to overlap the currently visible zone, and the flipped zone keeps only the overlapping part; zones tighten as they flip.
A retest requires price to leave the zone first. Consecutive candles inside the zone count as one visit.
Candles around daily and weekly session breaks are excluded from gap detection so overnight gaps don't create false patterns.
Internal drawing limits keep the script within PulseWire's object budget; on extremely gap-dense charts the oldest zones are released first.
UNIQUENESS:
Most FVG tools draw every gap and leave the trader to determine which ones matter; inversion (IFVG) tools go one step further and record a single change of direction. FVG Crossfire does not draw ordinary gaps at all. It uses them purely as inputs and puts only one thing on the chart: the price bands where opposite imbalances have overlapped, and it then tracks the full lifecycle of each contested level. Zones flip an unlimited number of times, each previous state freezes into a left-to-right timeline, the band tightens to the true overlap on every flip, a star counter records the number of transitions, every individual re-entry is flagged with a retest arrow and alert, and the level is only removed when price fully trades through it. The result is not another gap plotter: it is a filtered map of where opposing imbalances keep forming at the same prices, how many transitions each level has recorded, and exactly how tight the contested band has become.
Indicator

Liquidity Sweep Hunter Algo [AlgoAlpha]🟠 OVERVIEW
Liquidity Sweep Hunter Algo identifies liquidity highs and lows across three different lookback periods and keeps them active until they are mitigated. This creates a persistent view of where resting liquidity has formed instead of only showing the latest swing points.
The indicator also displays a heatmap that highlights the relative strength of active liquidity levels and generates reversal signals after price sweeps multiple visible liquidity bands before reclaiming them. Optional trade drawings project a stop loss, reward target, and intermediate target levels directly on the chart.
🟠 CONCEPTS
Liquidity Level — A price extreme detected from fast, medium, and slow lookback windows. Matching levels are merged so nearby highs or lows are treated as the same liquidity area.
Liquidity Heatmap — A visual strength map where colour represents the relative strength of each active liquidity level compared to the other visible levels.
Multi-Level Liquidity Sweep — A reversal condition where price sweeps at least two visible liquidity bands and then closes back beyond the reclaim level within a limited number of bars. An optional strength filter can require the swept levels to exceed a minimum average strength.
🟠 FEATURES
Liquidity Heatmap — Displays active liquidity levels using a colour gradient that reflects their relative strength.
Multi-Level Sweep Signals — Plots bullish and bearish reversal labels after confirmed liquidity sweep and reclaim events.
Trade Projection Boxes — Draws entry, stop loss, reward zone, and target milestone levels after each signal.
Trade Progress Display — Fills the target area as price reaches successive target levels and marks completed trades with a check mark.
🟠 HOW TO USE
Watch the heatmap to identify where stronger liquidity has accumulated around current price.
Wait for a bullish or bearish sweep signal after price clears multiple liquidity bands and reclaims the area.
Use the optional trade projection as a visual reference for the calculated stop loss, reward target, and target milestones.
Increase the lookback values to focus on broader liquidity zones or decrease them to detect more local levels.
Adjust the sweep strength filter if you want signals only when stronger liquidity zones are involved.
🟠 CONCLUSION
Liquidity Sweep Hunter Algo combines persistent liquidity mapping, a relative strength heatmap, and multi-level liquidity sweep detection in a single indicator. It also provides optional trade projections that remain on the chart after each signal. Together these features help traders monitor where liquidity has formed, when it has been swept, and where price has reclaimed the area. Indicator

FVG IndicatorFVG (Fair Value Gap) Indicator – Multi-Timeframe & iFVG Support
The Fair Value Gap (FVG) represents a sharp price imbalance created during aggressive moves. In Smart Money Concepts, these areas act as key support and resistance zones. This indicator provides a comprehensive, highly customizable visualization of FVGs directly on your chart.
🔍 Key Features
Multi-Timeframe Support (HTF) : Display FVGs from your current timeframe plus up to 3 higher timeframes simultaneously (e.g., view 1m, 5m, 15m, and 1h FVGs all on a single 1-minute chart).
iFVG (Inverted FVG) Auto-Conversion : When price closes below a Bullish FVG, it auto-converts to a Bearish iFVG (Purple) . When price closes above a Bearish FVG, it auto-converts to a Bullish iFVG (Teal) . iFVGs have independent line styles (Dashed/Dotted/Solid) and widths for easy distinction.
Extension Modes : Choose how far the FVG boxes extend to the right.
- No Extension: Boxes remain within the original candle range.
- Custom Extension: Boxes extend for a specific number of bars you define.
- Infinite Extension: Boxes extend infinitely to the right edge of the chart, with labels fixed to the right for real-time price context.
Volume Threshold (Highlight / Filter) : Separate significant FVGs from minor ones using volume.
- Supports SMA, EMA, or Z-Score for volume averaging.
- Highlight Mode: Adds a yellow border and a ★ star to FVGs that exceed the volume threshold.
- Filter Mode: Hides FVGs that do NOT meet the volume threshold, keeping your chart clean and focused.
Fully Customizable Styling : Set independent background colors, border colors, and border widths for Bullish FVG, Bearish FVG, Bullish iFVG, and Bearish iFVG. Adjust label text color, size, and offset freely.
📊 Interpretation Guide
Bullish FVG (Green): Gap created after a strong upward move Acts as a key support zone during pullbacks.
Bearish FVG (Red): Gap created after a strong downward move Acts as a key resistance zone during bounces.
Bullish iFVG (Teal): Price breaks above a Bearish FVG's top Indicates prior resistance has flipped into support .
Bearish iFVG (Purple): Price breaks below a Bullish FVG's bottom Indicates prior support has flipped into resistance .
Volume exceeds the defined threshold: Highlights that this FVG is backed by strong volume, making it more significant .
⚙️ Important Input Settings Explained
Bullish / Bearish FVG Display : Toggle to show or hide specific directional FVGs.
Maximum FVG Boxes : Limits the total number of boxes displayed (1–100) for optimal performance.
HTF 1 / 2 / 3 : Enter higher timeframe values (e.g., 60 for 60 minutes, 240 for 240 minutes, D for Daily, W for Weekly). Leave blank to disable.
Threshold Mode :
- None: Displays all FVGs regardless of volume.
- Highlight: Visually emphasizes FVGs that pass the volume test.
- Filter: Only displays FVGs that pass the volume test.
- Threshold Type: (SMA / EMA/ Z-score) Simply need to select a indicator for measuring the threshold.
- Recommand Setting : If you select SMA or EMA >> length: 3~20 & Multiply 1.5
If you select Z-score(sma based) >> length: 3~20 & Multiply 1
Apply Threshold to iFVG : When enabled, the volume threshold is re-evaluated when a standard FVG converts to iFVG.
⚠️ Important Notes
To prevent repainting and false signals, higher timeframe (HTF) data is fetched with lookahead turned OFF . This ensures the indicator relies only on closed HTF candles.
The script is configured with a maximum of 500 boxes and 500 labels to handle heavy multi-timeframe rendering without performance lag.
This indicator is based on historical price data. It should be used in confluence with price action, market structure, or other confirmation tools—not as a standalone buy/sell signal.
📜 License
This work is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) .
✅ Allowed: Free use, modification, and sharing for non-commercial purposes.
❌ Prohibited: Commercial use, redistribution for profit, or publishing without proper credit.
🔗 Required: Always retain the original author's credit (Lapa) and provide a link to the license.
Full license details: creativecommons.org Indicator

TGIF Weekly Retracement+ (M1D)TGIF "Thank God It's Friday"-
Is a weekly retracement model taught by ICT. It is day-specific: it appears once a week, on Friday. Once the week has expanded and delivered into a higher-timeframe objective, Friday's job is not more expansion but a retracement back inside the weekly range — roughly 20-30% of that range given back before the weekly close. Structurally it is the distribution phase of the weekly Power 3.
This script measures the range and maps the draw. It takes no directional opinion of its own.
THE RANGE-
The weekly range is the lowest low of the week up to its highest high. Both anchors are weekly extremes, so the percentages are cut from the weekly range itself.
Direction comes from the sequence of those two extremes. Whichever printed later is the terminus the retracement runs back from; the opposite extreme is the origin. A week making higher highs into Friday is measured low to high; a week that topped midweek and sold off into Friday is measured high to low. The read refreshes on every confirmed bar, so a week that re-expands and takes its other side flips the measurement with it.
THE PRECONDITION-
The model expects price to have already delivered into a higher-timeframe premium array in a bullish week, or a discount array in a bearish week. Without that the week can keep expanding and close on its extreme with no retracement at all. It is the condition that separates the two, so it is checked rather than assumed, and enforced by default.
Monthly, Weekly and 3D are scanned. Each keeps at most one discount and one premium array, the most recent to pass validation. Two kinds of void qualify: a three-candle displacement gap, where an order block registers only if its displacement left a gap and the gap only registers if it clears a height floor with a real body behind it; and the void across a candle boundary, from one higher-timeframe candle's close to the next one's open, which nothing traded through at all — on the weekly, the weekend.
A week qualifies when its terminus extreme has traded a set depth into one of those arrays, 25% by default, measured from the edge price approached. The array checked is the one opposite the week's direction: a bullish week rallies into premium, a bearish week drops into discount. Because the test runs against that week's own extreme it reads correctly on every week in history, and the dashboard names what qualified it.
One array per side is drawn by default, highest timeframe winning where two overlap in price. Raising the count draws the next one down that sits elsewhere. That is display only — the check reads every array found, so tidying the chart cannot change which weeks qualify. An array stays drawn until price has traded fully through it.
A SPENT DRAW IS NOT A SETUP-
Friday is meant to deliver the give-back. A week that already paid it out on Wednesday has nothing left, however cleanly the rest reads. The deepest pullback from the terminus is tracked, and if it reached the retracement band before Friday the week is marked as worked rather than shown as live. That measurement restarts whenever the terminus moves, since a new extreme begins a new leg with its own untouched draw.
A stricter reading is available, off by default: require the terminus to have formed on Thursday or Friday.
(Visual shows the setting ON)
CONFIRMATION-
Friday's swing sets no level. It is the gate on conviction: a swing on the terminus side, confirmed on the 15M or 30M and held on a closing basis. The zones are a draw on liquidity, drawn in anticipation rather than waited on, which is how the model is used. Confirmation fires the alert and locks the measurement, so the levels stop moving. If the swing is later broken the lock releases and it re-arms on the next one.
Before that lock the levels do move, because the weekly range is not final until the extreme stops extending. That is the model rather than a repaint: nothing is read from an unclosed bar, no decision taken on a closed bar is ever revised, and the confirmation timeframe is requested one bar back so no forming higher-timeframe bar can contribute a pivot that later disappears.
WHAT IT DRAWS-
- The weekly range as an outline: a dotted level on each extreme, each beginning at the candle that formed it, closed by a riser at each end. It draws from early in the week.
- TGIF 20-30%, the retracement zone measured from the terminus back inside the range, with a midline through it — the 25% marker at default settings. The zones begin at the candle that formed the terminus, since a retracement cannot start before the extreme it runs back from exists.
- A reversal band beyond the draw. Not a target: past roughly 40% the move stops describing a Friday retracement and starts describing a larger reversal, and by 50% most of a TGIF position would already be off.
- The higher-timeframe arrays, captioned BISI, SIBI, OB+, OB- or VI alongside the timeframe that owns them.
- A dashboard carrying the chart timeframe, a countdown to the Friday close, model status, the array that qualified the week, the weekly range in points, and the distance from price to each zone.
Callouts sit at the right edge of the drawing, spaced by ATR-derived clearance so they do not stack on one another.
SETTINGS-
- Timezone, IANA format, defaulting to America/New_York. All day-of-week resolution uses it.
- Whether delivery into a higher-timeframe array is required, which of the three timeframes are scanned, the depth that counts as delivery, and how many arrays are drawn per side.
- Whether the terminus must have formed on Thursday or Friday, and how many completed weeks stay on the chart.
- The Friday hour past which the extreme is treated as set, 13:30 by default. Reported in the dashboard; it does not stop the anchors tracking a genuine new extreme.
- Swing confirmation timeframe, 15M or 30M, with adjustable pivot bars.
- Both bands are adjustable. 20/30 and 40/50 are defaults, not fixed values.
- Colours, label visibility and offset, dashboard position, and the Friday close time the countdown counts to.
NOTES-
- Non-repainting. All structure is read on closed bars.
- Completed weeks stay on the chart behind the current one, two by default and up to eight, frozen as they finished and with their callouts dropped so old text does not sit over live price. Set the count to zero for the current week only.
- Three alert conditions: Friday swing confirmed, price tapping the retracement zone, and price entering the reversal band.
- This is a mapping tool. It draws the model's levels and reports where price sits relative to them; it produces no entries, targets or stops. ICT is explicit that TGIF supplies the draw and the day, and that the entry is whichever of his models you prefer.
Disclaimer-
This is not financial advice. Levels drawn by a model are context, not a recommendation to trade, and the past behaviour of a weekly range says nothing certain about the next one. Indicator

Optimal Trade Entry (OTE) Zone Plotter [algo_aakash]Optimal Trade Entry (OTE) Zone Plotter locates the 62%-79% institutional retracement zone of a confirmed impulsive swing and keeps only the single most relevant zone per direction on the chart, fading it through disclosed mitigation states as price interacts with it.
Problem Statement
The Optimal Trade Entry concept, retracing into the 62%-79% region of an impulsive leg before continuation, is a well-known Fibonacci convention, but most public implementations simply plot every Fibonacci level on every swing they detect. This produces charts covered in overlapping retracement boxes, most of which come from insignificant swings that carry no real weight, and gives no visual indication of which zones are still fresh, already tested, or fully invalidated.
This indicator addresses that gap by filtering which swings are allowed to generate a zone in the first place, by showing only the current zone per direction at full strength, and by changing each zone's appearance as price actually interacts with it.
Methodology
Swing highs and lows are identified with ta.pivothigh/ta.pivotlow using a user-defined Pivot Length, so every swing referenced by the script is a confirmed pivot, evaluated only after barstate.isconfirmed is true.
Consecutive pivots of the same type extend a running swing extreme; a leg is only registered when the pivot type alternates (a low following a high, or a high following a low). Each candidate leg must then clear three disclosed checks before it is allowed to create a zone: the leg's price range must reach a minimum multiple of ATR, the swing candle's own body-to-range ratio must reach a minimum threshold, and, if the Break of Structure filter is enabled, the new swing must exceed the prior swing of the same type. Legs that fail any check produce no zone, no label, and no alert.
A qualifying leg generates one OTE zone: the shaded region between the 62% and 79% retracement of that leg, with the 70.5% level drawn as a two-layer glowing midline inside it. Only one bullish and one bearish zone are ever active at a time. When a new qualifying leg forms, the previous zone of that direction is frozen in place and, if enabled, kept as a single low-opacity historical reference rather than removed outright or left overlapping the new zone.
Each active zone tracks its own mitigation state on every confirmed bar: Fresh (untouched), Touched (price has wicked into the 62%-79% region), Mitigated (a confirmed close through the 79% boundary), or Invalidated (a confirmed close back through the leg's own origin point). State can only advance forward, and the zone's fill opacity and border color update automatically at each transition, so the chart communicates a zone's condition without any additional label or panel.
Signal Workflow
Step 1 — a confirmed swing pivot alternates direction, registering a candidate leg from the prior opposite pivot to the new one.
Step 2 — the leg is checked against the Minimum Swing Size, Body Ratio, and optional Break of Structure filters; legs that fail are discarded with no chart output.
Step 3 — a qualifying leg creates a new active OTE zone (62%-79%) with its 70.5% midline, and the previous zone of the same direction is frozen and faded.
Step 4 — the active zone's state advances from Fresh to Touched as price wicks into the zone on a confirmed bar.
Step 5 — the zone advances to Mitigated on a confirmed close through the 79% boundary, or to Invalidated on a confirmed close back through the leg's origin, at which point it is greyed out.
Step 6 — each transition and each zone entry/exit can trigger its own alert, gated by the corresponding toggle in the Alerts group.
Why This Indicator Is Different
Most public OTE/Fibonacci scripts draw a zone for every detected swing regardless of its significance, leaving multiple overlapping retracement boxes on the chart at once.
This script applies a disclosed three-part quality filter (ATR-relative swing size, swing candle body ratio, optional break-of-structure confirmation) before a swing is even allowed to generate a zone.
Only one zone per direction is ever shown at full strength; the prior zone automatically fades to a quiet historical reference the moment a new qualifying swing appears, keeping the chart focused on the current opportunity.
Zone fill opacity and border color are driven entirely by a four-state mitigation engine (Fresh/Touched/Mitigated/Invalidated) computed from confirmed price action against the zone's own boundaries, so the visual state of a zone is informative rather than purely decorative.
The 70.5% equilibrium level is rendered as a two-layer glow line rather than a plain dashed line, giving the zone's mid-point a distinct, non-generic appearance.
Inputs
Swing Detection
Pivot Length
ATR Length
OTE Quality Filter
Minimum Swing Size (x ATR)
Minimum Swing Candle Body Ratio
Require Break of Structure
OTE Zone
Show Bullish OTE Zones
Show Bearish OTE Zones
Zone Extension (bars)
Show Institutional Midline (70.5%)
Fade Previous Zone on New Swing
Visual Settings
Bullish/Bearish Zone Colour
Bullish/Bearish Midline Colour
Label Size
Alerts
Alert: New OTE Zone Created
Alert: Price Entered OTE Zone
Alert: Price Left OTE Zone
Alert: OTE Zone Mitigated
Alert: OTE Zone Invalidated
Alerts
Alerts are available for:
New Bullish/Bearish OTE Zone Created
Price Entered Bullish/Bearish OTE Zone
Price Left Bullish/Bearish OTE Zone
Bullish/Bearish OTE Zone Mitigated
Bullish/Bearish OTE Zone Invalidated
Practical Usage
Treat an active, Fresh OTE zone in the direction of the prevailing structure as a region to watch for a retracement entry, not a standalone entry signal by itself.
Use the Break of Structure filter on trending instruments to restrict zones to swings that genuinely extended structure, and disable it on ranging instruments where internal swings may still be meaningful.
Raise the Minimum Swing Size and Body Ratio filters on lower timeframes or noisy instruments to reduce the number of zones generated.
Watch the zone's fill opacity as a quick visual read of its condition: a bold zone has not been tested, a lighter fill has already been touched or mitigated, and a greyed zone has been invalidated and should generally be disregarded.
Combine the Entered/Exited alerts with your own confirmation criteria (candlestick behavior, lower-timeframe structure, etc.) rather than treating zone entry alone as a trigger.
Limitations
Swing pivots require bars to form on both sides before they confirm, so every zone is inherently placed a Pivot Length number of bars after the actual swing extreme occurred.
The quality filter reduces the number of zones shown but does not evaluate or predict the outcome of any individual retracement.
Only one active zone per direction is displayed at a time; if you want to review multiple historical zones simultaneously, enable "Fade Previous Zone on New Swing" and note that only the single most recent prior zone is retained, not a full history.
As with any retracement-based tool, results will vary across instruments, timeframes, and market regimes.
Notes
This indicator is a zone-location tool intended to highlight the current, quality-filtered Optimal Trade Entry region and its mitigation state through a disclosed, rule-based process.
All swing confirmations, zone creation, mitigation-state transitions, and invalidations are evaluated on confirmed bar closes only, so no element of the script repaints once drawn.
The output is intended to support retracement-based analysis and is not a standalone buy or sell recommendation.
Indicator

Inducement Sweep Strategy [algo_aakash]Inducement Sweep Strategy enters trades only after the classic ICT inducement sequence has fully played out: an external liquidity pool is identified, an internal swing (the inducement) forms in front of it, that inducement is swept with genuine displacement, and price then confirms a Market Structure Shift back in the real direction. Every qualifying setup is scored by the Inducement Quality Index (IQI), a 0-to-100 composite that ranks how convincing the engineered move actually was before an entry signal is ever shown.
Problem Statement
Most public inducement or "sweep and BOS" scripts fire a signal the instant any minor swing is tagged and broken. They do not distinguish between an inducement that formed in front of a meaningful liquidity pool with a violent, high-conviction reversal, and a shallow internal wiggle that happened to get tapped during normal noise. Traders end up manually filtering every alert, checking chart context by hand, which defeats the purpose of automating inducement detection in the first place. This script instead separates structure identification from signal display: the full pipeline runs on every bar, but only setups that pass the quality bar are shown as entries.
Methodology
Two pivot lengths run in parallel. A longer length confirms External Structure — the major swing highs and lows that represent the real liquidity pool the market is engineered toward. A shorter length confirms Internal Structure — the minor swings that sit closer to current price. When a confirmed internal low forms above the most recent confirmed external low (or, for shorts, an internal high forms below the most recent external high), that internal point is flagged as an Inducement Candidate: a level structurally positioned to attract retail stops in front of the real liquidity pool.
The candidate remains active until price wicks through it and closes back on the correct side with a reversal body at least a user-defined ATR multiple in size — this is the Sweep, and the ATR displacement requirement filters out shallow wicks that reflect noise rather than an engineered stop run. Once swept, the script watches for a Market Structure Shift: a close beyond the internal high or low that sat between the external level and the inducement. Only this break confirms the real directional move is underway, and only then does the entry logic activate.
Each confirmed setup is scored by the IQI engine across four factors — displacement strength, sweep freshness, liquidity depth, and rejection wick quality — combined into a single 0-to-100 score. An entry signal is only displayed on the chart when the score meets the user's configured minimum, so lower-quality setups are tracked internally but never clutter the chart or trigger alerts.
If price fails to sweep the inducement within a maximum bar window, breaks the external level before the sweep, fails to confirm the MSS within its own bar window, or fails an optional retest, the setup is invalidated and the pipeline resets automatically. All structure is derived from confirmed pivots only, so nothing in the detection logic repaints.
Signal Workflow
1. Confirm a major external swing high or low using the External Structure Length.
2. Confirm a minor internal swing forming on the inducing side of that external level — this becomes the active Inducement Candidate.
3. Wait for price to wick through the inducement level and close back on the correct side with a reversal body meeting the ATR displacement threshold — this is the Sweep.
4. Wait for a confirmed close beyond the internal high/low recorded between the external level and the inducement — this is the Market Structure Shift.
5. Calculate the Inducement Quality Index from displacement, freshness, depth, and rejection wick quality.
6. If Require Retest is enabled, wait for price to pull back and hold the broken MSS level before confirming.
7. Display the entry signal with its IQI score only if the score meets the configured minimum, and fire the corresponding alert.
Why This Indicator Is Different
Standard inducement or liquidity-sweep-plus-BOS scripts treat every sweep-and-break sequence identically, regardless of how convincing the move actually was.
The Inducement Quality Index is a composite score built specifically around the mechanics of an engineered inducement move rather than a generic volatility or volume filter — it weighs how fresh the sweep was relative to the inducement, how deep the underlying liquidity pool is in ATR terms, how strong the displacement candle was, and how decisively the sweep bar rejected its extreme.
Because setups below the quality threshold are still tracked internally and simply not displayed, the pipeline status label can show a user exactly where an unfolding setup stands without forcing premature signals onto the chart.
The optional retest requirement gives discretionary traders a way to demand confirmation of the broken structure as new support or resistance before treating the setup as valid, without changing the core detection logic.
Inputs
Structure Settings
External Structure Length — pivot length confirming the major swing that anchors the real liquidity pool
Internal Structure Length — pivot length confirming the minor swing used as the inducement candidate
Inducement Settings
Max Bars to Sweep — maximum age allowed for an inducement candidate before it is discarded as stale
Max Bars to Confirm MSS — maximum age allowed between the sweep and the structure shift confirmation
Displacement Filter
ATR Length — period for the ATR used in the displacement requirement
Min Displacement (x ATR) — minimum reversal candle body, as an ATR multiple, required to validate a sweep
Signal Quality
Minimum IQI to Show Signal — setups scoring below this 0-100 threshold are tracked but not displayed
Entry Options
Require Retest Before Entry — waits for a pullback that holds the broken MSS level before confirming the signal
Trade Levels
Show Entry / Stop / Target Lines — visual-only projected levels, not a managed strategy
Reward : Risk Ratio — target distance as a multiple of the stop distance
Level Projection Length — how far right the projected lines extend
Visual Settings
Show Inducement Level, Show Sweep Marker, Show MSS Break Line, Show Pipeline Status Label
Bullish / Bearish / Inducement / MSS / Sweep Marker colors
Alert Settings
Alert: Inducement Identified, Alert: Inducement Swept, Alert: Entry Signal, Alert: Setup Invalidated
Alerts
Alerts are available for:
Bullish Inducement Identified
Bearish Inducement Identified
Bullish Inducement Swept
Bearish Inducement Swept
Long Entry Signal (with IQI score, entry, and stop level)
Short Entry Signal (with IQI score, entry, and stop level)
Setup Invalidated (bullish and bearish, optional)
Practical Usage
Raise the Minimum IQI threshold on lower timeframes or noisy instruments to surface only the most convincing engineered moves.
Enable Require Retest for a more conservative entry style that waits for the broken structure to hold before committing.
Use the pipeline status label to monitor an unfolding setup in real time without needing a signal to already have fired.
The projected trade levels are a visual reference only — position sizing and trade management remain the trader's responsibility.
Combine with a higher timeframe bias tool to only act on Inducement Sweep signals that align with the broader directional context.
Limitations
Structure confirmation requires the full pivot look-right period to elapse before a swing is confirmed, so entries occur after price has already moved past the exact reversal point. This is standard confirmed-pivot behavior and is not repainting.
The IQI score is a relative ranking based on the four factors described above and does not guarantee trade outcomes. It should be used as a filtering aid, not a standalone trading signal.
The displacement filter is ATR-relative; on instruments with unusually low volatility, the ATR multiple may need to be reduced to detect qualifying sweeps.
The indicator does not manage open positions, calculate position size, or provide exits beyond the single visual target line. It identifies potential inducement-based entries only.
Notes
All structure levels and signals are drawn at the bar index of the actual pivot or event, not the confirmation bar, ensuring accurate visual placement.
The state machine for bullish and bearish setups runs independently and concurrently, so both directions can be tracked at the same time on ranging instruments.
For best results combine with Market Structure Break BOS/CHoCH Tracker to cross-check the higher timeframe structural context before acting on a signal.
Indicator

Asia, EU & US Open Levels + DTS Time & Price## Overview
The **Asia, EU & US Open Levels + DTS Time & Price** indicator is an all-in-one time-and-price tool designed for intra-day traders (SMC, ICT, and Session traders). It combines key session open levels (Asia, EU, and US) with precision time-based vertical markers and session shading (DTS / Time & Price concepts).
Understanding where price opens at key regional trading hubs, combined with specific time-based liquidity windows, gives traders a clear edge in identifying daily bias and key reaction zones.
---
## Key Features
### 1. Major Session Open Levels & Background Shading
* **Asia, EU, and US Open Prices:** Automatically plots bold horizontal levels at the exact opening candle of the Asian, European, and US sessions based on your local timezone (default set to `Europe/Belgrade`).
* **Dynamic Session Fills:** Highlights the background region between the opening price and the candle close throughout the duration of that specific trading session phase, providing instant visual feedback on price expansion.
* **Daily Reset:** Levels and session phases automatically reset every new trading day to keep your chart clean and noise-free.
### 2. DTS (Daily Time Structure) & Time Markers
* **NY AM Session Shading:** Displays custom background highlighting for the New York Morning trading window (default set to `UTC-5`).
* **5-Level Time Progression Lines (0, 0.25, 0.50, 0.75, 1):** Draws full-height vertical gridlines across key time intervals during the session with clear labels positioned cleanly at the bottom of the chart screen.
* **Time Confluence:** Enables traders to identify "Time & Price" confluence—when price hits a key support/resistance level at a specific fractional time window of the day.
---
## How to Use This Indicator
1. **Session Open Trading:**
* Watch how price behaves around the green (Asia Open), blue (EU Open), and red (US Open) lines. These opening prices often act as dynamic support/resistance or draw-on-liquidity targets during later sessions.
2. **Time-Based Executions (DTS):**
* Look for trade setups (FVGs, Liquidity Sweeps, Order Blocks) that coincide with the vertical time lines (0, 0.25, 0.50, 0.75, 1).
3. **Customization:**
* Open the indicator settings to easily adjust input times and timezones to match your local execution hours or specific preferred session windows.
---
## Inputs & Settings
* **Session Open Levels:** Adjust the opening hour inputs for Asia, EU, and US sessions along with their fill colors.
* **DTS Time & Price:** Adjust the NY AM session window, timezone, vertical line intervals, line colors, and label colors to fit your custom layout. Indicator

Market Structure BOS, CHoCH, HH HL LH LL & Trend Health [LunqFX]Market structure is the skeleton of every trend: a series of higher highs and higher lows, or lower highs and lower lows, until a break says the trend has changed. This indicator maps that skeleton automatically — labelling every swing as HH, HL, LH or LL, drawing each Break of Structure (BOS) and Change of Character (CHoCH) — and adds one thing no other structure tool has: it tells you the trend is failing BEFORE the structure actually breaks.
❶ THE STRUCTURE MAP
▸ SWING LABELS — every confirmed swing point is labelled HH (higher high), HL (higher low), LH (lower high) or LL (lower low). The sequence of those four labels IS the trend, and having it on the chart removes the guesswork from reading price action.
▸ BOS — Break of Structure. Price closes through the last swing level in the direction of the trend: the trend is continuing. Drawn as a dashed line from the broken level with a BOS label.
▸ CHoCH — Change of Character. Price closes through the last swing level against the trend: the trend has flipped. Drawn as a solid, highlighted line — this is the reversal signal smart-money traders wait for.
▸ STRUCTURE CANDLES — the candles themselves are coloured by the structural trend, not by whether each bar closed up or down. Green means the market structure is bullish, violet means bearish, so the regime is obvious at a single glance. Their brightness fades as Trend Health falls.
❷ TREND HEALTH 0–100 — THE EARLY WARNING
Every other structure tool tells you a trend has ended after CHoCH prints. By then the move is already gone. Trend Health measures the two things that decay before every structure break:
▸ EXPANSION — in a healthy trend each new extreme clears the previous one by at least as much as the last leg did. When new highs barely exceed the old ones, the trend is running out of fuel.
▸ RETRACEMENT — in a healthy trend pullbacks stay shallow. When each pullback eats deeper into the previous leg, control is shifting to the other side.
Both are measured on the live leg, normalised by ATR so the score behaves the same on any symbol and timeframe, and blended into a single 0–100 reading. When it drops below your threshold the dashboard flags WEAKENING — while the trend is still technically intact. That is the warning CHoCH cannot give you, because CHoCH is confirmation, not anticipation.
❸ THE STRUCTURE TAPE
Instead of a table of numbers, the dashboard shows a timeline of the last five structure events, oldest to newest: BOS ▲ · BOS ▲ · CHoCH ▼ · BOS ▼. Reading the sequence tells you instantly whether the market is trending cleanly (a run of BOS in one direction) or chopping (CHoCH flipping back and forth) — context you cannot get from a single label on the chart.
❹ HOW TO TRADE IT
1 — Establish the bias from MARKET STRUCTURE in the panel. Bullish structure = look for longs, bearish = look for shorts. Do not fight it.
2 — Use BOS as continuation. A BOS in the direction of your bias confirms the trend is intact; the broken level often becomes support or resistance on the retest.
3 — Use CHoCH as the reversal trigger. A CHoCH against the prevailing trend is the earliest confirmed signal that structure has flipped. Wait for it before trading a reversal.
4 — Use TREND HEALTH for timing and risk. Health above 65 with a run of BOS on the tape = a clean trend, hold your position and trail. Health falling into WEAKENING = tighten stops, take partials, and stop adding — the structure is decaying and a CHoCH becomes more likely.
5 — Read the tape for market state. Several BOS in a row = trending market, trade continuations. Alternating CHoCH = choppy market, stand aside or trade the range instead.
❺ HOW IT WORKS
Swing points come from confirmed pivots, so a swing only exists once the bars on both sides of it have closed. The most recent swing high and swing low become the active structure levels. When a bar CLOSES beyond one of them (a wick-based mode is available), the break is registered: in the direction of the current trend it is a BOS, against it a CHoCH, and the trend state flips. Trend Health compares the size of the current expansion leg with the previous one in ATR units, and the depth of the latest pullback against the leg it retraced, then blends them 60/40 into the 0–100 score. Immediately after a CHoCH there is no second leg to compare yet, so the panel honestly reports NEW TREND instead of a misleading health reading.
Works on every symbol and timeframe — forex, gold, indices, crypto and stocks — because every threshold is either structural or ATR-normalised, with nothing to configure per market.
SETTINGS — swing length (how major a swing must be), break on close or wick, the health threshold that flags weakening, swing labels and BOS/CHoCH lines on/off, number of events kept, structure candles on/off, and dashboard position.
ALERTS — BOS up, BOS down, CHoCH up, CHoCH down, and Structure Weakening (the early warning).
NON-REPAINTING — swings are built from confirmed pivots and every break is validated on bar close. A label or line that has printed never moves or disappears.
Every component here describes the same object — the market's structure — at a different resolution: the swings build it, BOS and CHoCH break it, Trend Health measures its condition, and the tape is its history. That is why they belong in one tool rather than five.
This indicator is an educational market-analysis tool, not financial advice. Trend Health describes the current structure's condition and does not predict future prices. Always confirm with your own analysis and manage your risk.
Pre-publish checklist Indicator

HTF Power of 3 (PO3) with Trailing Stop🔵 OVERVIEW
The HTF Power of 3 (PO3) with Trailing Stop is a technical indicator created by BigBeluga to capture institutional market cycles based on Smart Money Concepts (SMC). Detecting market manipulation phases and structural accumulation zones has always been a major challenge in technical analysis, as traditional breakouts often lead to false signals and whipsaw trades. In order to provide a solution to this problem, this indicator maps higher timeframe (HTF) Power of 3 cycles—breaking price action down into Accumulation, Manipulation, and Distribution phases—combined with an advanced volatility-based trailing stop engine.
The indicator aims to visualize institutional order-building and subsequent expansions. The core element of its calculation involves tracking HTF session levels alongside a dynamic ATR-based trailing threshold defined as:
trailingStop = close ± currentAtr * trailMultiplier
where currentAtr is the standard Average True Range of period atrPeriod , and trailMultiplier is the sensitivity footprint multiplier. Higher values of accumMultiplier and trailMultiplier allow the indicator to adjust to longer consolidation periods and filter out minor market noise.
🔵 FEATURES
The system utilizes a multi-layered matrix structure to provide actionable market intelligence:
1 — Auto HTF Matrix Mode & Session Engine
Dynamic Timeframe Scaling: When enabled, the indicator automatically scales the higher timeframe matrix dynamically based on your current chart timeframe context.
Session Tracking: Continuously calculates local open, high, low, and close parameters across higher timeframe layers to project real-time structural candles on the right side of your chart.
2 — Power of 3 (PO3) Phase Breakdown & Peak Labels
Accumulation Phase: Maps the initial consolidation boundary lines over a defined accumMultiplier bar count, outlining the high and low thresholds where institutional orders cluster.
Manipulation Phase & Peak Labels: Triggers automatically when price breaks out of the accumulation boundaries, identifying fakeouts and plotting a peak manipulation label marked with an M at the extreme high or low.
Distribution Phase & Peak Labels: Transitions into the expansion phase once the trailing stop is breached, tracking the final leg of the institutional delivery cycle and plotting a peak distribution label marked with a D .
3 — Dynamic Trailing Stop & Cloud Fill
Volatility Boundaries: Employs a robust ATR trailing line that shifts dynamically to lock in profits and signal shifts in market bias.
Visual Cloud Fills: Dynamically colors and fills the space between price action and the trailing stop line to offer clear visual confirmation of trend direction.
🔵 HOW TO USE
Apart from the basic visualization of institutional market cycles, this tool can also act in alternative ways to support decision-making:
Identify Accumulation Zones: Monitor the orange accumulation channel during the early stages of an HTF session to spot tight consolidation ranges before an expansion.
Trade the Manipulation Breakout: Wait for price to sweep outside the accumulation boundaries to trigger a "Manipulation" label and an M peak marker, signaling an institutional run on liquidity before the true directional move.
Manage Risk with Trailing Stops: Use the dynamic trailing stop line, cloud fill, and subsequent D distribution peak markers as a trailing stop loss mechanism to guide entries, manage open positions, and catch the final distribution leg.
🔵 NOTES
Why this implementation is unique:
It automates complex multi-timeframe ICT concepts directly onto lower timeframe charts without requiring manual chart reconfiguration.
The right-aligned visual projection engine gives traders a clear look at the developing higher timeframe candle and session metrics without cluttering active price history.
The script is fully optimized for Pine Script version 6, integrating seamless label sizing and automated line management for maximum rendering performance.
Indicator

Liquidity Levels, Sweeps & Grabs | Falcon AIPrice is constantly hunting liquidity — the pools of stop orders that sit just beyond obvious highs and lows. This free tool draws the four levels where that liquidity rests, then flags the exact bar each one gets taken, so you see stop-runs as they happen instead of after the move.
THE LEVELS IT DRAWS
• Previous Day High / Low (PDH / PDL)
• Previous Week High / Low (PWH / PWL)
Calculated from the last COMPLETED day and week and fixed for the whole period — non-repainting.
TWO WAYS LIQUIDITY GETS TAKEN — FLAGGED SEPARATELY
• Sweep (triangle) — a multi-candle event. Price runs beyond a level, can hover or consolidate there, then closes back through it. The classic stop-run that often front-runs a reversal.
• Grab (diamond) — a single-candle event. One candle wicks sharply beyond the level and closes back inside with a small body (a doji-like rejection). A fast, one-bar liquidity raid.
The two are mutually exclusive per level: a slow multi-candle reversal reads as a sweep; a one-bar wick rejection reads as a grab.
ALERTS
Four ready-to-use alerts — high sweep, low sweep, high grab, low grab — so you're pinged the moment buy-side or sell-side liquidity is taken.
INPUTS
• Toggle each level set (day / week) and each signal type (sweeps / grabs)
• Grab sensitivity via a wick-to-body ratio (higher = stricter / more doji-like)
• Line style, colors, price labels
HOW TRADERS USE IT
Sweeping and grabbing liquidity is a core Smart-Money / ICT idea: price is pushed beyond a well-watched level to fill orders and trigger stops before reversing. Watching for a sweep or grab of PDH/PDL or PWH/PWL — especially into a higher-timeframe level or a session open — can help spot exhaustion and potential turning points. This tool marks those moments objectively; how you act on them is your call.
Educational tool — not financial advice. Past behavior does not guarantee future results. Indicator

Nwog - Ndog Tracker (M1D)NWOG - NDOG Tracker (M1D)
Maps the two electronic-session opening gaps on index futures and tracks how much of each one price has traded back through.
A New Day Opening Gap is the distance between the prior session's 17:00 close and the 18:00 Globex reopen — the CME maintenance halt. A New Week Opening Gap is the distance between Friday's 16:59 close and the Sunday 18:00 reopen. These are electronic-session boundaries and are deliberately not the 09:30 cash open or the 16:14 regular-hours close, which belong to a different gap entirely.
How It Is Built-
No bar prints inside either window, so the bar immediately preceding a reopen always carries the true prior close. Both gaps read their origin from that bar rather than from a bar found by its clock time, which is what keeps them correct through a holiday or an early close — on those days the scheduled closing bar never prints at all, and a tool that waits for it builds the gap off a stale price.
A gap is read from the side its reopen landed on. Opening above the prior close leaves the unfilled area below price, where it stands as support. Opening below leaves it overhead as resistance.
Every boundary is detected on the bar that contains its target time rather than by comparing bar-open times, so each one resolves correctly on any intraday timeframe. All detection runs on confirmed bars only.
What It Draws-
Each gap is a box spanning from its origin to its right edge, captioned with its direction, type and date. The caption sits level with the consequent encroachment just past the right edge, and holds the same visual distance from the box at any zoom.
Direction and type are carried separately so neither has to be inferred from the other. The box fill stays keyed to the type, daily and weekly each keeping their own wash, while the border and the caption arrow carry the polarity.
Levels inside a gap are optional. Quadrants draw 0.25, the consequent encroachment and 0.75. Octants draw eighths. Each level's value is printed beside the right end of its own line, level with it at any zoom, and the consequent encroachment is named CE and carries its own colour. The gap high and low are the box itself and are not redrawn as levels.
A table lists the tracked gaps newest first, each with its direction and the percentage of it that price has covered, and a count of how many remain unfilled. The callout arrow in the example chart points from a gap to this table so the two can be matched up at a glance.
Settings-
Gap times, session close, and the reopen times are each adjustable and independent of one another.
Extend controls how far a box runs. Until next gap keeps only the newest box tracking price, clipping the previous one as a new gap forms. Extend to price runs every kept box to the current bar. End of day stops each at the session close. The weekly gap adds End of week, which stops it at Friday's close and keeps it visible for a set number of weeks afterwards.
Direction colouring can be switched off, in which case every border and caption falls back to the single border colour. The two direction colours themselves are adjustable.
Keep-last counts, fill and border colours, label size, and the table position and length are all adjustable.
Notes-
Fill percentage is the share of a gap's own range that price has covered, measured between the deepest and shallowest points reached inside it. It only increases, and reaches 100 percent once price has covered the gap end to end. It is deliberately direction-agnostic: it records how much of the gap has been consumed, not which side consumed it.
Being traded through does not remove a gap. A filled gap stays on the chart, and only the keep-last count clears it.
Disclaimer-
This script reports where these gaps sit and how much of each has been consumed. It does not generate signals and it is not financial advice. Indicator

Session Micro-Structure Shift & Range Equilibrium RadarOverview and Purpose
The Session Micro-Structure Shift and Range Equilibrium Radar is an open source technical analysis indicator designed for intraday traders utilizing ICT and Smart Money Concepts (SMC). It automates the tracking of key trading sessions like Asia, London, and New York, measures range equilibrium, and filters for structural shifts combined with Fair Value Gap (FVG) retests.
How the Indicator Works and Mathematical Logic
1. Session Range and Equilibrium Computation:
The script plots distinct session ranges for Asia (20:00 to 00:00 UTC-4), London (02:00 to 06:00 UTC-4), and New York (08:00 to 12:00 UTC-4). For each active session, the 50 percent Equilibrium level is dynamically plotted using the average of session high and session low.
2. Liquidity Sweep Detection:
The algorithm continuously checks whether price sweeps the previous session high or low liquidity levels.
3. ATR Filtered Displacement and MSS Confirmation:
Following a sweep, a Micro-Structure Shift (MSS) is validated only when a displacement candle forms. Displacement is verified using a 14 period Average True Range filter where the candle body size exceeds 0.8 times the ATR value. The bar must close beyond the active session equilibrium line to mark a true MSS.
4. Fair Value Gap (FVG) Identification and Alert Engine:
When an MSS is confirmed, the script checks for a 3 candle imbalance and draws an active zone box. To avoid signal spam, exactly one alert per session is triggered when price taps into the FVG zone.
Trading Interpretation and Application
Valid Setup (FVG Tap):
When price sweeps a session extreme, confirms an MSS across the Equilibrium level, and retraces to tap the highlighted FVG zone, a valid trade setup occurs. Traders typically place stop losses at the recent swing low or high and target a minimum 1 to 2.5 Risk to Reward ratio.
Invalidated or Unfilled Setup (Missed FVG):
If price performs all required steps like sweep and MSS but fails to retest or tap the FVG box before expanding away, no alert triggers, and the setup is treated as unfilled to protect capital.
Disclaimer
This script is strictly for educational and chart analysis purposes. It does not provide financial advice or direct trading signals. Always manage risk responsibly and perform backtesting across your chosen trading pairs.
Indicator

PO3 Matrix+ (M1D)PO3 Matrix+ (M1D)
Projects the recent candles of a chosen higher timeframe as a compact candle matrix beside live price, then marks the liquidity events, structure and PD array context that develop on that timeframe — taken swings, structure shifts, fair value gaps, previous-day levels, and cross-market divergence. The intent is to read higher-timeframe conditions without leaving the execution chart, and to keep every drawn element sourced from the same data so nothing drifts out of step.
── HOW IT IS BUILT ──
The selected higher timeframe is pulled once, as a snapshot of its recent candles, and every element is drawn on the last bar from that one source. Dividers, high/low rails, quadrants, sweeps, gaps and structure all read the same array, so they cannot disagree with each other. The forming candle is accumulated from chart bars, so it updates live without repainting its history.
Level lines are origin-anchored: each one begins at the candle that actually printed the extreme, not at the bar where the level happened to be calculated. Derived midlines (equilibrium, the inner quartiles) have no originating candle, so they run from the period open instead.
── WHAT IT DRAWS ──
PO3 CANDLE MATRIX — the selected higher timeframe's recent candles, projected to the right of price with time dividers on the live chart and a per-candle high/low rail. A countdown above the block shows the timeframe in use and the time left on the forming candle. The PD array context is mirrored onto the block at its own horizontal scale, and each event carries a compact direction marker there, so the block reads as a standalone view of what that timeframe is showing.
CANDLE EQUILIBRIUM — the true 50 percent of each completed candle in the block, as a reference the following candle can retrace into.
CURRENT-RANGE QUADRANTS — the forming candle's high, 75 percent, equilibrium, 25 percent and low projected across price as a live premium and discount reference.
LIQUIDITY SWEEPS — only swing liquidity is marked. A level qualifies when it is a swing high or swing low that a later candle raids and then closes back inside: wick beyond, body back within. A candle that simply trades past its neighbour is not a sweep and is not marked.
SMT DIVERGENCE — the correlated market is read on the same higher-timeframe grid, so the two align candle for candle. A SMT is marked when your chart takes a swing but the peer fails to take its matching swing, meaning the move lacked cross-market participation. The peer auto-pairs across equity indices, precious metals and BTC against ETH, in matching contract sizes, and can be overridden with any symbol. It deliberately does not guess a peer for markets where the correlation is too loose for a divergence to mean anything; with no pairing, no SMT is drawn. A SMT is invalidated in real time once price trades back through the extreme that formed it, and is then either faded or removed.
MARKET STRUCTURE SHIFT — a true swing broken by a body close. A swing here means a level price actually turned at: a swing low sits at the change from a down candle to an up candle, a swing high at the change from an up candle to a down one. A low that merely sits under its neighbours while price kept running the same way is not a swing and is never used, which is what separates this from a plain pivot break. The first candle to CLOSE beyond the swing's full wick — body, not wick — marks the shift; later closes past the same level are continuation and are not marked. An optional setting requires a liquidity raid to precede the shift, for the classic sweep-then-shift sequencing: a buyside raid before a bearish shift, a sellside raid before a bullish one.
FAIR VALUE GAPS (BISI+ / SIBI-) — detected on the higher-timeframe snapshot, so they are multi-timeframe by construction. Only fully formed gaps are drawn; a gap still forming on the live candle is ignored until it completes. Each zone moves through four states: live, active, inverted, or spent. A gap closed clean through has inverted — the old support is now resistance, or the reverse — and it stays inverted, flipped and redrawn in the inversion colour, for as long as that break holds. No retest is required, because a retest is where the level gets traded rather than what makes it valid. Closing back through in the original direction takes the gap back; the zone is spent, and fades but stays on the chart as history rather than disappearing.
PREVIOUS-DAY LEVELS — previous high, low and equilibrium, drawn from session start and dimming once taken. Three definitions of the day are offered because they genuinely differ on futures: the symbol's own daily candle, midnight to midnight New York, or the regular-hours session only. Regular hours are taken from the instrument itself rather than a fixed clock, so index futures, metals and everything else each use their own session. The label carries the source date, so a level that is several days old after a weekend reads as intentional.
CONTEXT TABLE — day, AMD phase, forming-candle bias, premium or discount, higher-timeframe direction, last sweep, market structure shift, fair value gap, previous-day status, and a session-close countdown. SMT is drawn on the chart and the block but does not have its own table row.
── SETTINGS WORTH KNOWING ──
The higher timeframe must be above the chart timeframe; the script says so on the chart if it is not.
Session handling is read from the instrument, not hardcoded, so the regular-hours option and the session countdown are correct on index futures, metals and anything else without configuration. Instruments that trade around the clock have no regular session, and the countdown says so rather than inventing one.
Every drawn element can be turned on or off on its own, and the chart labels and the compact markers on the projected block are controlled separately, so the block can be kept clean while the chart stays annotated. Label size, colour, vertical clearance, which side of a line a label sits on, and the marker glyph style are all adjustable.
Fair value gap sensitivity is measured against the average range of the visible higher-timeframe candles, so it scales per instrument rather than being a fixed distance. Raise the minimum height and displacement to keep only the larger gaps.
Market structure shift has an optional displacement requirement, off by default. Turn it on if you want the shifting candle to also expand or leave a gap, which reduces how often it marks.
Sweeps, gaps and structure marks each have a maximum shown, so the chart stays contained rather than accumulating history indefinitely. Gap zones also declutter against each other: two translucent zones stacked on the same prices multiply into a solid block, so a zone overlapping one already drawn beyond an adjustable tolerance is skipped and the most recent gap in that price band is the one kept. The same idea applies to stacking: two same-direction zones separated by only a thin seam read as one inefficiency wearing two boxes, so the older one is removed and the newest kept. Zones facing opposite directions are never removed for sitting close together — they are genuinely different reads.
── NOTES ──
Detection runs on completed higher-timeframe candles. The forming candle updates live, but a gap or a structure mark is only considered once the candles that define it have closed.
SMT is not available in bar replay. Replay rewinds the chart symbol only, so the correlated symbol keeps returning its live data and the two grids no longer line up; the table reports Misaligned and no divergence is drawn. That is the alignment guard working, not a fault. Every other feature reads from the chart symbol and replays normally.
Everything drawn is context. There are no entry or exit instructions, no directional calls, and no performance claims of any kind. It reports what has happened on the higher timeframe.
This is a market-analysis tool, not financial advice. Past market behaviour does not indicate future results. Test any tool thoroughly and trade your own plan.
Indicator
