Session Range Architecture [JOAT]Session Range Architecture
Introduction
Session Range Architecture (SRA) is an open-source, institutional-grade session killzone engine that captures the opening range of the Tokyo, London, and New York trading sessions as live price-tracking boxes, draws high, low, and mid extension lines that persist after each session closes, and fires rejection signals when price wicks beyond a session extreme and closes back inside. Signals are filtered by an EMA alignment stack (EMA 4, EMA 5, and EMA 750) and confirmed exclusively on closed bars. ATR-based stop loss and take profit boxes visualize each signal's risk/reward from entry. Per-session and aggregate win rate statistics are tracked and displayed in a configurable dashboard.
The core problem SRA solves is the repetitive, daily manual work of marking opening range boxes for each session. ICT methodology identifies the first portion of each killzone as the period during which institutional order flow establishes the session's directional bias — the high and low of that range become the primary intraday reference levels. When price returns to those levels later in the session or in the following session and creates a wick rejection, it signals a potential liquidity grab and reversal opportunity. SRA automates the full process from box construction through signal detection to trade outcome tracking.
Core Concepts
1. Session Opening Range Construction
Each session's opening range is built dynamically during the configurable range window (default: first 15 minutes of each session). The high and low of every bar within that window expand the range in real time. At the end of the window, the range is finalized and stored as a SessionRange user-defined type containing the box, three extension lines (high, low, mid), and the session label:
if inTokyo and not tokBuilding
tokHi := high
tokLo := low
tokOpenBar := bar_index
tokBuilding := true
else if inTokyo and tokBuilding
tokHi := math.max(tokHi, high)
tokLo := math.min(tokLo, low)
2. Extension Lines
When a session's range window closes, three horizontal lines are drawn extending rightward from the range: a dashed line at the session high (buy-side liquidity), a dashed line at the session low (sell-side liquidity), and a dotted line at the session midpoint (50% equilibrium reference). These lines persist on the chart as long-term structural reference levels beyond the session itself.
3. Rejection Signal Detection
A rejection is detected when a bar's wick pierces a session high or low and the close returns inside the range. A minimum wick percentage filter ensures the penetration is meaningful relative to total candle range — trivial pokes are excluded. For a bullish rejection at a session low (price swept below, closed above), the setup is treated as a potential long opportunity. For a bearish rejection at a session high, it is treated as a short opportunity.
4. EMA Alignment Filter
Signals are optionally filtered by a simplified EMA alignment check: bullish signals require EMA 4 above EMA 5 and price above EMA 750; bearish signals require EMA 4 below EMA 5 and price below EMA 750. This ensures rejection signals at session levels are taken in the direction of the prevailing trend structure rather than against it.
5. ATR-Based Trade Visualization and Tracking
On each confirmed signal, ATR-based stop loss and take profit boxes are drawn from the entry close. Outcome is checked on subsequent bars — if price hits the SL or TP, the trade is recorded, counters for the originating session are updated, and the box color changes to reflect the result.
Features
Three Independent Session Ranges: Tokyo, London, and New York opening ranges built automatically each day — individually configurable with independent colors and visibility toggles
Configurable Range Window: Opening range capture window length adjustable from 5 to 60 minutes to match different analysis styles
Extension Lines: Session high, low, and mid extension lines drawn from completed ranges and extended rightward as persistent liquidity reference levels
Rejection Signal Detection: Wick-beyond, close-inside detection at session extremes with minimum wick percentage filter
EMA Alignment Filter: EMA 4/5 cross direction and EMA 750 price side required for signal confirmation — configurable on/off
ATR TP/SL Visualization: Risk and reward boxes from each entry bar — default 1.5× ATR stop, 3:1 reward ratio, fully adjustable
Session Win Rate Tracking: Independent win/loss/total counters for Tokyo, London, and New York sessions
Session History Management: Oldest range boxes automatically trimmed to prevent chart clutter (configurable maximum)
Non-Repainting: All signals gated on barstate.isconfirmed — session ranges never move backward
Timezone Configuration: Session windows evaluated relative to a configurable timezone to handle exchange-specific session times
Dashboard (Top Right): Per-session win/loss/rate table for Tokyo, London, NY, and aggregate total with color-coded performance rows
Session Background Tints: Subtle color fills applied to the chart background during Tokyo, London, and NY range-building windows — visually delineates the opening range capture period for each session in real time
Session Name Labels on Range Boxes: Session name label placed at the midpoint of each finalized range box — immediately identifies which session produced each visible range without requiring manual reference
EMA Alignment State in Dashboard: Current EMA alignment state (BULL ALIGN / BEAR ALIGN / NEUTRAL) displayed in the dashboard — provides a one-glance structural context for the active session
Live ATR Value in Dashboard: Current ATR value shown in the dashboard — communicates the prevailing volatility level used for TP/SL sizing at any given moment
Expanded Dashboard (8 Rows): Dashboard expanded to 8 rows — now includes EMA alignment state and live ATR value alongside the existing per-session win rate breakdown
Input Parameters
Session Settings:
Chart Timezone: Timezone for session window evaluation (default: America/New_York)
Show Tokyo / London / New York Range: Independent visibility toggles per session
Range Window (minutes): Opening range capture duration (default: 15)
EMA Filter:
Fast EMA: Period for fast EMA (default: 4)
Slow EMA: Period for slow EMA (default: 5)
Trend EMA: Period for long-term trend filter EMA (default: 750)
Require EMA Alignment: Toggle filter on/off (default: enabled)
Risk Settings:
ATR Length: ATR period (default: 14)
ATR SL Multiplier: Stop loss ATR distance (default: 1.5)
Reward:Risk Ratio: TP as multiple of SL distance (default: 3.0)
Show TP/SL Boxes: Toggle TP/SL visualization (default: enabled)
Signal Settings:
Require Rejection Wick: Toggle minimum wick filter (default: enabled)
Min Wick % of Range: Minimum wick size relative to candle range (default: 55%)
How to Use This Indicator
Step 1: Identify Session Range Levels
Each session's opening range box shows the high, low, and midpoint established during the opening window. These are the primary liquidity reference levels for that killzone. Extension lines persist after the session box closes, continuing to mark those price levels as the day progresses.
Step 2: Monitor for Rejection Signals
When price wicks beyond a session extreme and closes back inside, a rejection signal is generated. This event represents a liquidity grab — the market took the stops placed beyond the session extreme and reversed. The signal fires at the close of the rejecting bar, confirmed on that candle only.
Step 3: Confirm EMA Alignment
With the EMA filter enabled, only signals aligned with the current EMA 4/5 direction and EMA 750 trend side are triggered. This avoids trading session rejections against the prevailing structural trend.
Step 4: Manage Risk with TP/SL Boxes
The ATR-based TP/SL boxes extend from the entry close and show the exact risk/reward zone for each trade. The stop is placed 1.5× ATR from entry; the target is 3× that distance by default. Both are adjustable.
Step 5: Review Session Performance
The per-session win rate table shows which session ranges have historically produced the best rejection setups on the current instrument and timeframe. Use this to focus attention on the sessions with the strongest empirical edge.
Indicator Limitations
Session detection is based on time windows relative to the selected timezone. Instruments that observe daylight saving time shifts differently from the selected timezone may require manual session string adjustment during DST transitions
The opening range window is fixed in minutes. On timeframes coarser than the window (e.g., a 30-minute chart with a 15-minute range window), the range will capture only one or two bars, which may not accurately represent the opening range
The EMA 750 requires 750 bars of history to produce an accurate value. On instruments with limited history or on very long timeframes, the first 750 bars will show an inaccurate trend filter — use the indicator on instruments and timeframes with sufficient historical data
Session win rate counters are maintained within the current chart load session and reset when the indicator is refreshed. They reflect historical outcomes up to the current chart's loaded data, not a permanent multi-year backtest
Rejection detection uses bar closes. On timeframes with large candles (daily, weekly), a wick rejection at a session range level may span multiple intraday sessions, making the signal less precise for intraday execution
Originality Statement
SRA automates the full three-stage session range workflow — range construction, level monitoring, and rejection detection — within a single indicator, with per-session outcome tracking and EMA trend filtering. This is original for the following reasons:
The dynamic range construction (high/low expanding bar-by-bar during the opening window, then finalizing on window close) replicates the manual process of drawing opening range boxes in real time, including live box expansion during active sessions — behavior not available from static horizontal lines
Extension lines at the session high, low, and midpoint persist beyond the session box as separate structural reference levels, providing a layered view of session-specific liquidity without requiring additional drawings
The rejection detection system operates across all three active session ranges simultaneously in a single scan loop, identifying which specific session range produced the signal and tagging it for session-specific outcome tracking
The EMA alignment stack (fast EMA cross direction + long-term trend EMA) applied as a prerequisite filter to session rejection signals combines institutional level-based methodology with trend confirmation in a single indicator rather than requiring a separate trend indicator
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Session range levels and rejection signals are historical reference points. Price does not respect these levels in all market conditions, and rejection signals do not guarantee a reversal. Session win rates are derived from historical bar data and do not predict future performance. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Dominance Sweep Tracker [JOAT]Dominance Sweep Tracker
Introduction
Dominance Sweep Tracker (DST) is an open-source, institutional-grade order flow engine that combines three detection layers — market structure dominance, liquidity sweep identification, and order block entry confirmation — into a single, unified trading framework. It tracks confirmed swing pivots, identifies when body-close breaks through those levels signal a structural shift in market dominance, detects liquidity sweeps where wicks pierce prior pivots and price closes back inside, and marks the last opposing candle before each sweep as the entry order block. ATR-based trade visualizations with risk/reward boxes and per-session win rate tracking complete the system.
The core problem DST solves is the fragmentation of ICT order flow analysis across multiple manual steps. Traders watching for structural dominance shifts, hunting sweeps of prior swing liquidity, and locating order block entries typically need to perform those three steps separately, often missing the interaction between them. DST connects all three into a single detection pipeline that fires on confirmed bars, identifies the relevant entry zone automatically, and tracks the resulting trade outcome against configurable TP and SL levels across four distinct trading sessions.
Core Concepts
1. Swing Pivot Detection
DST uses Pine Script's built-in ta.pivothigh() and ta.pivotlow() functions to identify confirmed swing highs and lows. These are inherently non-repainting — a pivot is only confirmed after the required number of bars on both sides have formed. The most recent confirmed swing high and low are stored as the active liquidity levels.
2. Market Dominance Detection
A dominance shift occurs when a bar's body — not its wick — closes beyond a confirmed swing level. Bullish dominance is confirmed when the close exceeds the most recent swing high. Bearish dominance is confirmed when the close falls below the most recent swing low. This body-close requirement eliminates wick-based false breaks and isolates genuine structural displacement:
bool bullDom = close > swingHi and open > swingHi
bool bearDom = close < swingLo and open < swingLo
3. Liquidity Sweep Detection
A sweep occurs when a bar's wick pierces a prior swing level and the close returns back inside. DST applies a minimum wick depth filter (default: 0.2 ATR) to avoid noise from trivial touches. A bullish sweep fires when the low exceeds the swing low but the close is above it. A bearish sweep fires when the high exceeds the swing high but the close is below it. Both are gated on barstate.isconfirmed.
4. Order Block from Last Opposing Candle
When a sweep is confirmed, DST scans back through recent bars to identify the last candle that moved in the opposite direction of the sweep. For a bullish sweep setup (price swept below a low and recovered), the last bearish candle before the sweep is marked as the entry order block. This zone represents the origin of the move that created the liquidity pool — the level where institutional positioning likely occurred.
5. Session-Aware Trade Tracking
Each detected signal is tagged with the trading session active at that bar (Asia, London, NY, or Off-Session). ATR-based stop loss and take profit levels are calculated at signal time and visualized as color-coded boxes. Outcome is tracked against those levels, and win/loss counters are maintained per session for statistical context.
Features
Swing Pivot Tracking: Confirmed swing highs and lows rendered as horizontal reference lines — the primary liquidity pool levels
Body-Close Dominance Detection: Structural breaks confirmed only on candle body close beyond swing level, eliminating wick-false-break noise
Liquidity Sweep Detection: Wick-beyond, close-inside detection across all recent pivots with configurable ATR depth filter
ATR Wick Filter: Minimum wick penetration depth prevents noise from triggering sweep signals on trivial pokes
Order Block Identification: Automatic scan of last opposing candle before each sweep — rendered as a colored zone box
OB Touch Signal: Secondary signal fires when price returns to touch an active order block zone
EMA 750 Trend Filter: Optional filter that requires price to be on the correct side of the EMA 750 for long and short signals
ATR-Based TP/SL Boxes: Risk (SL) and reward (TP) areas visualized as colored boxes from entry — default 1.5× ATR stop, 3:1 reward
Session Detection: Asia, London, NY, and Off-Session windows (configurable) tag each signal for session-specific tracking
Per-Session Win Rate: Independent win/loss/total counters for all four sessions displayed in the dashboard
Non-Repainting: All signals gated on barstate.isconfirmed; ta.pivothigh/ta.pivotlow inherently confirmed
Dashboard (Top Right): Session win rates for Asia, London, NY, and Off-Session with color-coded performance indicators
BOS Dominance Labels: "BOS ▲" and "BOS ▼" dominance labels replace simple B/S markers — clearly communicates the direction of each confirmed structural break on the chart
Order Block Dominance Labels: "BULL DOM" and "BEAR DOM" labels placed inside order block boxes at creation — identifies the structural context in which each OB was formed
Dominance Candle Tint: Candles colored teal when dominant bull conditions are active, rose when dominant bear — encodes structural dominance state directly into price bar color
Upgraded TP/SL Pip Labels: SL and TP labels now include session name and RR ratio in the format "142p TP 3.0R | London" — full trade context visible directly on the chart
Sweep and Dominance Shift Counters: Sweep counter and dominance shift counter displayed in the dashboard — cumulative structural activity metrics updated on each confirmed event
Expanded Dashboard (8 Rows): Dashboard expanded to 8 rows — now includes sweep count and dominance shift count alongside existing session win rate data
Input Parameters
Pivot Settings:
Swing Lookback: Number of bars on each side required to confirm a pivot (default: 5)
Sweep Settings:
Min Sweep Wick (ATR×): Minimum wick depth relative to ATR (default: 0.2)
Sweep Lookback Bars: How many recent bars to scan for swing levels to test against (default: 50)
Order Block:
OB Scan Back: How far back to search for the last opposing candle (default: 10)
OB Max Active: Maximum number of live order blocks displayed simultaneously (default: 5)
Filter Settings:
EMA Trend Filter: Require price on correct side of EMA 750 for signal confirmation (default: enabled)
EMA Length: Period for the trend EMA (default: 750)
Risk Management:
ATR Length: Period for ATR calculation (default: 14)
ATR SL Multiplier: Stop loss distance as ATR multiple (default: 1.5)
Reward:Risk Ratio: Take profit as multiple of stop distance (default: 3.0)
Session Settings:
Timezone, Asia/London/NY window hours — fully configurable per session
How to Use This Indicator
Step 1: Identify the Current Structural Context
Swing highs and lows on the chart represent the live liquidity pools. Price above the most recent swing high in an uptrend signals buy-side liquidity accumulation. Price below swing lows signals sell-side liquidity. The dominance signal (filled triangle) fires when price body-closes through a swing, marking a genuine structural shift.
Step 2: Monitor for Sweep Signals
When a sweep label appears, price has taken liquidity from a swing level and rejected back inside. This is the setup precondition — the liquidity event has occurred. The order block zone identified at that bar is the entry reference level.
Step 3: Enter at the Order Block
The last opposing candle before the sweep is rendered as a box. Price returning to that zone represents a potential re-entry into the displacement move. Combine with EMA 750 trend direction for higher-probability setups.
Step 4: Manage the Trade with TP/SL Boxes
ATR-based SL and TP boxes extend from the entry bar. Stop loss is set 1.5× ATR below (long) or above (short) entry. Take profit is at 3:1 reward by default. Both are fully configurable.
Step 5: Review Session Performance
The per-session win rate table highlights which killzones have historically produced the best outcomes on your instrument and timeframe. Use this to weight your activity toward higher-performing sessions.
Indicator Limitations
Swing pivot detection requires a minimum number of confirmed bars on both sides of the pivot. On very fast timeframes (sub-1 minute), pivot lookback may be impractically long relative to the session window
The order block scan selects the last opposing candle within a fixed lookback window. In trending conditions with extended single-direction candle runs, no opposing candle may be found within the scan range
Session win rate counters reset when the indicator is removed and re-added, or when the chart is refreshed with no history. They are valid only within the current chart session
The EMA 750 filter is based on a 750-period EMA. On shorter timeframes, 750 bars may not be available on instruments with limited history, causing the EMA to be inaccurate until sufficient data loads
ATR-based TP and SL levels are static from entry — they do not trail or adjust. Volatile markets may require manual adjustment of the ATR multiplier for realistic risk sizing
Originality Statement
DST integrates three distinct ICT order flow concepts — structural dominance, liquidity sweeps, and order block entry — into a unified detection and tracking pipeline. This combination is original for the following reasons:
The three-layer detection pipeline (dominance → sweep → order block) processes each concept in sequence, where a sweep only becomes significant in the context of the structural level it targets, and the order block is identified relative to that sweep specifically — not as an independent scan
The body-close dominance confirmation (requiring the entire body, not just the wick, to close beyond the swing level) is a stricter filter than standard breakout detection, reducing false structural break signals in choppy conditions
Per-session win rate tracking, maintained independently for four distinct trading windows within a single indicator, provides empirical context for which market periods generate the most consistent outcomes on a given instrument
The order block touch signal — a secondary detection layer that fires when price returns to interact with a previously identified OB zone — closes the loop between zone creation and zone interaction without requiring separate indicators
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Liquidity sweeps and order block zones are historical reference levels. The appearance of a sweep signal does not guarantee price continuation in any direction. Session win rates are based on historical bar data and do not predict future performance. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Session Pulse [JOAT]Session Pulse
Introduction
Session Pulse is an open-source multi-session gap statistics engine that tracks, categorizes, and accumulates gap data across Asia, London, and New York trading sessions, marks every session boundary transition with labeled vertical lines on the chart, and presents a unified session statistics dashboard. It answers a specific and persistent question that many traders examine manually: how often, in which direction, and by how much does this instrument gap between sessions?
Gap behavior is one of the most systematically consistent patterns across many instruments. Session close-to-open gaps represent a measurable directional displacement — one that either fills (mean reverts) or extends (confirms momentum) in predictable proportions over sufficiently large samples. Session Pulse automates the data collection and visualization for that entire analysis, providing live cumulative statistics on gap frequency, average gap size, maximum gap, and directional bias, refreshed on every bar.
Core Concepts
1. Session Detection
Each of the three sessions (Asia, London, New York) is detected using Pine Script's time() function with a user-configurable session string and timezone. Session transitions are identified by comparing the current bar's session membership to the previous bar's membership. A session start occurs on the first bar where the current bar is inside the session and the previous bar was outside:
inAsia = not na(time(timeframe.period, asiaSess, tzString))
inLondon = not na(time(timeframe.period, londonSess, tzString))
inNY = not na(time(timeframe.period, nySess, tzString))
asiaStart = inAsia and not inAsia
londonStart = inLondon and not inLondon
nyStart = inNY and not inNY
2. Gap Calculation and Categorization
A gap is calculated at each session open as the difference between the current bar's open and the previous bar's close, expressed as a percentage of the previous close. Gaps are categorized as Gap Up (positive gap, open above prior close) or Gap Down (negative gap, open below prior close). A minimum gap percentage threshold filters out negligible noise-level gaps that do not qualify as meaningful session displacements:
gapPct = (open - close ) / close * 100
isGapUp = asiaStart and gapPct > minGap
isGapDown = asiaStart and gapPct < -minGap
3. Session Boundary Visualization
At each session start, a vertical dotted line is drawn extending across the chart, and a labeled arrow points down from the top of the price range with the session name (ASIA, LONDON, NEW YORK). This creates a clear visual demarcation of every session boundary on the chart without requiring manual annotation. The lines and labels are drawn live on the current bar and persist across the chart history:
if showSessLns and londonStart
line.new(bar_index, low * 0.9999, bar_index, high * 1.0001,
color=color.new(#01579B, 55), style=line.style_dotted,
width=2, extend=extend.both)
label.new(bar_index, high, "LONDON",
style=label.style_label_down,
color=color.new(#01579B, 50), textcolor=color.white, size=size.tiny)
4. Cumulative Statistics Accumulation
Statistics are accumulated across the full chart history using running counters and accumulators for each direction. For each session type (Asia, London, NY), the indicator tracks: total gap count by direction, cumulative gap size sum for average computation, and the maximum gap in each direction. These statistics build bar by bar and display the full historical picture at any point in time:
if isGapUp
upCount += 1
upTotal += gapPct
upMax := math.max(upMax, gapPct)
5. Unified Statistics Dashboard
A single unified table presents all gap statistics in a structured layout: Gap Up rows at the top, a separator, Gap Down rows below, a final separator, and a summary row showing total gap count and the percentage of gaps that were up (directional bias). The entire table is positioned at a single user-configurable location on the chart, eliminating split-panel layouts:
// Row 0-1: Gap Up (Count, Avg, Max)
// Row 2: Separator
// Row 3-4: Gap Down (Count, Avg, Max)
// Row 5: Separator
// Row 6: Summary (Total, Up Bias %)
Features
Three-session gap tracking: Asia, London, and New York sessions each independently tracked with configurable session strings
Session boundary vertical lines: Dotted vertical lines with session name labels (ASIA, LONDON, NEW YORK) at every session transition
Gap categorization: Gap Up and Gap Down separated by direction with independent counters, average, and maximum for each
Minimum gap filter: Configurable threshold eliminates negligible gaps below a specified percentage
Directional bias calculation: Summary row shows Up Bias % — what proportion of all detected gaps have been upward
Unified statistics table: Single table with Gap Up, separator, Gap Down, separator, and summary rows at a single configurable position
Table position selector: Top-right, bottom-right, bottom-left, or bottom-center placement
Session boundary line toggle: Session vertical lines and labels can be independently enabled or disabled
Configurable session strings: All three session time windows are fully user-adjustable for different broker timezones
Timezone input: Single timezone string applied consistently to all three session detectors
Alerts: Six alertconditions — Gap Up and Gap Down for each of the three sessions, plus Asia, London, and New York session open alerts
Input Parameters
Session Settings:
Timezone: Timezone string for session detection (default: America/New_York)
Asia Session: Session time string (default: 1800-0000)
London Session: Session time string (default: 0200-0500)
New York Session: Session time string (default: 0930-1600)
Gap Detection:
Min Gap %: Minimum gap size to qualify as a gap event (default: 0.05%)
Enable Gap Tracking toggles per session
Display:
Show Session Lines toggle
Show Stats Table toggle
Table Position: Top Right, Bottom Right, Bottom Left, Bottom Center
Session line colors for Asia, London, and New York
How to Use This Indicator
Step 1: Read the Directional Bias
The summary row of the statistics table shows Up Bias % — the percentage of all gaps that have been upward. An Up Bias above 60% on a large sample indicates this instrument has a persistent tendency to gap up at session opens. This is the first, most actionable piece of information from the table.
Step 2: Compare Average Gap Sizes
The average gap rows for Gap Up and Gap Down show the typical magnitude of each type. If the average Gap Down is significantly larger than the average Gap Up, the downside gaps — when they occur — tend to be more violent even if they are less frequent. This asymmetry has implications for stop sizing around session opens.
Step 3: Use Maximum Gap for Range Planning
The maximum gap rows show the largest gap in each direction recorded on the chart. This establishes the worst-case session displacement for this instrument at the current timeframe — useful for setting session-open risk boundaries.
Step 4: Use Session Boundary Lines for Chart Context
The vertical lines with session name labels divide the chart into session periods. On lower timeframes this makes it immediately clear which session each group of bars belongs to, providing context for patterns that occur predominantly in specific sessions.
Step 5: Monitor for Session Open Alerts
Set the session open alerts to receive notifications at each session transition. This is particularly useful on instruments where specific sessions (London or New York) have consistent volatility expansion patterns at open.
Indicator Limitations
Gap detection measures the open of the first bar inside a session versus the close of the last bar outside the session. On timeframes where session transitions do not align cleanly with bar boundaries, gaps may be slightly misattributed
On instruments that trade continuously (24/7 crypto) with no actual session close, the concept of a gap between sessions is less meaningful — the session boundaries exist but price does not actually stop between them
The minimum gap filter is a flat percentage threshold. Instruments with different typical volatility levels require different minimum gap values to produce meaningful categorization
Statistics accumulate from the beginning of the chart's data history. On very long charts or charts with intraday data going back years, early data may represent a different market regime than the current one, diluting the relevance of cumulative statistics
This indicator tracks and categorizes gaps. It does not predict gap fill probability, gap extension probability, or provide entry/exit signals
Originality Statement
Session Pulse is original in its simultaneous three-session gap tracking system with unified cumulative statistics, directional bias calculation, and session boundary visualization integrated into a single tool. This indicator is published because:
Tracking gap statistics across three named, independently configurable sessions simultaneously — with separate counters, averages, and maximums for each direction per session — in a single unified table is uncommon in published open-source Pine Script
The directional bias percentage (Up Bias %) derived from cumulative historical gap data provides a single, immediately actionable summary statistic that characterizes the instrument's session gap behavior over the entire charted history
The session boundary vertical lines with labeled session name arrows provide a visual calendar overlay that applies the same session detection logic used for gap calculation to the chart itself, creating consistency between the chart elements and the statistical table
The unified single-table layout with section separators — merging Gap Up, Gap Down, and summary into one table at one position — avoids the visual fragmentation of split multi-table layouts
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice or a recommendation to buy or sell any financial instrument. Trading involves substantial risk of loss. Session gap statistics reflect historical data and do not guarantee future gaps will occur with the same frequency, size, or direction. The directional bias percentage is a historical observation, not a predictive probability. Session open behavior is subject to news, earnings, and macroeconomic events that historical statistics do not account for. Always use proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

AMD Absorption | AnonycryptousAmd Absorption | Anonycryptous
Description & user manual
Why this indicator is different
Most AMD indicators do the same thing. They draw a box for Asia, a box for London, a box for New York, and call it a cycle. They show you where the sessions are. They do not show you what is happening inside them.
Amd Absorption works differently.
It detects the full accumulation-manipulation-distribution cycle mechanically, bar by bar, within whatever session windows you define. It does not assume the cycle follows a fixed schedule. It finds it where it actually forms. And it only confirms a signal when the manipulation sweep shows evidence of institutional absorption — high volume on a bar that barely moves. That is the difference between a sweep that fails and a sweep that leads somewhere.
Most traders can look at a chart in hindsight and identify an AMD cycle. The challenge is identifying it in the moment, on any asset, at any time. That is what this indicator is built to do.
It works on every instrument. Crypto, futures, forex, stocks, commodities. The session windows, detection parameters, and absorption thresholds adapt to the asset class through a preset system. The same logic that detects a liquidity sweep on a bitcoin five-minute chart detects it on a gold two-minute chart, a nasdaq futures one-minute chart, or a forex fifteen-minute chart.
Important notice
Amd Absorption generates trading signals based on pattern detection and volume analysis.
These signals are not financial advice.
They do not predict the future.
They do not guarantee profitability.
All trading decisions are made entirely by the user.
Always manage your own risk. Always apply your own judgment.
1. Overview
Amd Absorption is a cycle detection and entry timing indicator built around three phases of price behavior: accumulation, manipulation, and distribution.
What it includes:
- Mechanical AMD cycle detection within configurable session windows
- Absorption filter on the manipulation bar using volume and body/range analysis
- Five asset class presets with individually tuned detection parameters
- Three-phase candle coloring showing accumulation, manipulation, and distribution in real time
- Absorption dot markers on qualifying manipulation bars
- Distribution target box with configurable stop loss mode and risk/reward ratio
- Volume-weighted price levels as structural reference and target zones
- Vertical session boundary lines at open and close
- Configurable session background colors
- Live dashboard showing session status, preset, last signal, and absorption statistics
- Alerts for bull and bear setups
2. The AMD cycle
2.1 Accumulation
A defined period of price compression. The market moves within a narrow range while smart money builds a position. Amd Absorption detects this as a rolling high-low range falling below a configurable percentage threshold over a set lookback period. During this phase, candles are colored gray.
2.2 Manipulation
After accumulation, price sweeps beyond the range boundary — above the high for a bearish setup, below the low for a bullish setup. This is the liquidity grab. Market orders resting beyond the range are collected. Stops are hit. Retail traders enter in the wrong direction. During this phase, candles are colored in the direction of the sweep — red for a bear sweep, green for a bull sweep.
2.3 Distribution
The real move begins. Price reverses from the sweep extreme and creates a fair value gap — a three-candle imbalance confirming displacement. The signal fires. A distribution target box is drawn from the entry close to the calculated take profit level. Candle coloring continues in the signal direction for the duration of the distribution box, then stops automatically.
The cycle can repeat multiple times within a single session. There is no hard limit on setups per session.
- A note on signal quality versus cycle validity
An AMD cycle that does not produce a signal triangle can still play out fully. The triangle means the manipulation bar showed mechanical absorption — volume confirmed, body was small. That is additional evidence of institutional presence at the sweep level. It raises conviction. It does not make setups without it invalid. Many clean AMD cycles complete without a qualifying absorption bar. The candle coloring will show the full cycle regardless. The triangle is a quality filter, not the only valid setup.
3. The absorption filter
The absorption filter is what separates Amd Absorption from a standard cycle detector.
A manipulation sweep can occur for many reasons. Not every sweep leads to a reversal. The ones that do tend to share a specific characteristic on the sweep bar itself: high volume combined with a small candle body relative to the bar's range.
This pattern means price moved far on heavy participation — a big wick — but the bar closed near where it opened. Something was absorbing the selling or buying pressure. The move did not follow through. That is absorption. It is the mechanical fingerprint of institutional defense of a level.
When the absorption filter is enabled, the signal only fires if the manipulation bar meets both conditions: volume above a configurable multiple of the rolling average, and a body-to-range ratio below a configurable threshold. Bars that qualify are colored in the absorption color and marked with a dot above or below the candle.
The filter can be disabled. With the filter off, every valid AMD + FVG pattern fires a signal. With it on, only the setups with volume confirmation fire. The trade-off is signal frequency versus quality.
4. Presets
Presets automatically configure the four core detection parameters — accumulation lookback, maximum range width, absorption volume multiplier, and absorption body ratio — for each asset class.
Crypto
Lookback: 15 bars. Range: 1.20%. Volume multiplier: 1.2×. Body ratio: 0.55.
Wider range tolerance for volatile 24/7 markets. Looser volume threshold because crypto volume behavior differs from traditional markets.
Futures
Lookback: 20 bars. Range: 0.40%. Volume multiplier: 1.4×. Body ratio: 0.45.
Tight range detection for institutionally driven instruments. Higher volume requirement to match the tick-level precision of futures order flow.
Forex
Lookback: 25 bars. Range: 0.25%. Volume multiplier: 1.3×. Body ratio: 0.50.
Longest lookback and tightest range for the slow, deliberate consolidations common in major pairs. Moderate volume threshold.
Stocks
Lookback: 22 bars. Range: 0.50%. Volume multiplier: 1.4×. Body ratio: 0.50.
Balanced settings between futures and forex. Works across individual equities and equity indices.
Commodities
Lookback: 22 bars. Range: 0.35%. Volume multiplier: 1.4×. Body ratio: 0.50.
Designed for gold, silver, oil, and similar instruments. Tighter than forex but more tolerant than futures. Handles institutional spikes well.
Custom
All four parameters are set manually in the Amd Logic and Absorption Filter groups. Use this when the presets do not match the behavior of a specific instrument or timeframe combination.
Note: the manipulation search window, FVG size filter, and ATR length are always set manually regardless of preset. These three parameters are active for all presets and can be adjusted freely.
5. Sessions
Amd Absorption detects AMD cycles only within active session windows. Outside of sessions, no accumulation is tracked, no sweeps are detected, and candle coloring is inactive. This prevents false setups forming during off-hours thin markets.
Three sessions are configurable: Asia, London, and New York. Each session has an independent toggle, a clock-picker for start and end time, and a background color. All session times are entered in your selected timezone, which can be set to any UTC offset from UTC-12 to UTC+12.
A thin vertical line marks both the opening and closing of each active session. This gives you a clear visual boundary for each session's cycle. The opening line and closing line use the same configurable color.
6. Distribution box
When a signal fires, a distribution target box is drawn from the entry bar forward. The box represents the expected move from entry to take profit.
Two stop loss modes are available:
Atr mode
Stop loss distance is calculated as ATR × the configured multiplier. This gives a consistent distance across all setups regardless of the exact FVG size. Useful for instruments where ATR matches your natural stop placement.
Fvg structure mode
Stop loss is placed at the outer edge of the FVG candle — above the FVG high for a bear setup, below the FVG low for a bull setup. This uses the actual market structure as the invalidation point, which is how many practitioners manage stops on this type of setup.
The take profit is calculated as: entry ± stop distance × RR ratio. The default ratio is 2.0, giving a 1:2 reward-to-risk setup. The ratio is adjustable.
The box width is fixed in bars. It does not track price. When the configured number of bars elapses, candle coloring for the distribution phase stops automatically. For position sizing and stop management, Risk Management Engine by Anonycryptous can be used alongside this indicator.
7. Price levels
Volume-weighted pivot highs and lows are drawn as horizontal reference lines. Pivot highs above current price act as resistance. Pivot lows below current price act as support. Each level shows its exact price value.
Line appearance reflects volume strength. A stronger volume reading at the pivot produces a more visible glow layer. Weaker pivots are more subdued.
Levels disappear automatically when price touches them. The maximum number of visible levels is configurable. These levels serve as structural context and potential distribution targets for confirmed signals.
8. Candle coloring
Amd Absorption colors candles to show the current phase of the cycle. The coloring is active only within session windows.
Gray — accumulation phase. Price is consolidating within the detected range.
Red (bear) or green (bull), dim — manipulation phase. A sweep has been detected and the indicator is searching for a confirming FVG. Colors the sweep candles and any subsequent candles until the FVG fires or the search window expires.
Absorption color (default purple) — absorption bar. A candle within the manipulation phase that meets both volume and body conditions. Also marked with a dot above or below the bar.
Red (bear) or green (bull), dim — distribution phase. Fires from the signal bar and continues until the distribution box width elapses.
Priority: absorption color overrides distribution, which overrides manipulation, which overrides accumulation.
9. Dashboard
The dashboard shows:
- Session — current active session or off
- Preset — active asset preset
- Last signal — direction of the most recent confirmed signal
- Last session — which session the last signal occurred in
- Abs / setups — absorption-confirmed signals vs total AMD setups detected
- Abs filter — whether the absorption filter is on or off
- Accumulation — current accumulation state: active, searching, or none
Position is configurable: top left, top right, bottom left, or bottom right. Size is configurable: tiny, small, or normal.
10. Settings reference
10.1 Sessions
- Timezone — utc offset for session time entry
- Asia / London / New York — toggle, time picker, background color per session
- Show session open lines — vertical lines at session open and close
- Session line color
10.2 Preset
- Asset preset — crypto / futures / forex / stocks / commodities / custom
10.3 Amd logic
- Accumulation lookback — bars used to measure consolidation range (custom only)
- Max accumulation range (%) — maximum range width to qualify (custom only)
- Manipulation search window — bars to search for a sweep after accumulation
- Min fvg size (atr multiplier) — minimum gap size for distribution confirmation
- Atr length — period for atr calculation
- Sl mode — atr or fvg structure
- Sl atr multiplier — stop distance multiplier in atr mode
- Rr ratio — reward-to-risk ratio for the distribution box
- Distribution box width (bars) — fixed bar width of the distribution target box
10.4 Absorption filter
- Enable absorption filter — toggle on/off
- Min volume multiplier — minimum volume relative to average (custom only)
- Max body/range ratio — maximum body-to-range ratio (custom only)
- Volume average length — lookback for rolling volume average
10.5 Price levels
- Show price levels — toggle on/off
- Pivot lookback — bars left and right to confirm a pivot
- Min volume multiplier — minimum volume at the pivot bar
- Volume average length — lookback for volume average
- Support level color — color for pivot lows
- Resistance level color — color for pivot highs
- Max levels shown — maximum number of visible levels
10.6 Visuals
- Show accumulation box
- Show manipulation box
- Show fvg box
- Show entry signal
- Bull color — color for bullish setups and signals
- Bear color — color for bearish setups and signals
- Absorption color — color for absorption bar highlight and dot
- Distribution color — candle color during the distribution phase
10.7 Dashboard
- Show dashboard
- Position
- Size
11. How to use
11.1 Initial setup
1. Select the preset that matches your instrument.
2. Set your timezone to match your location or preferred session reference.
3. Enable the sessions you trade. Set the times to match the actual session opens for your timezone.
4. Choose a stop loss mode. Fvg structure is the more precise option. Atr is more consistent if FVGs on your timeframe vary significantly in size.
5. Set your RR ratio. Default 2.0 is a starting point — adjust to your own risk management rules.
6. If using the custom preset, start with the preset values as a reference and tune from there.
11.2 Reading the chart
Look at the session background. Once a session opens, accumulation detection begins.
When candles turn gray, accumulation is active. The indicator has found a range that qualifies as consolidation. This is the waiting phase.
When candles turn red or green, a sweep has been detected. The indicator is now looking for a confirming FVG. This is the alert phase — something is happening.
When a purple (or absorption-colored) candle appears with a dot, the sweep bar showed absorption. This is the highest-quality moment within the manipulation phase. A signal is likely imminent if a FVG forms on the next bars.
When a signal triangle fires, the full AMD cycle has confirmed with FVG and absorption. The distribution box appears showing the entry level and target.
11.3 Illustrative bull scenario
Educational example only. Not a trading recommendation.
Session opens. Candles turn gray — accumulation detected between two levels. After several bars, price dips below the accumulation low on a high-volume candle that closes near its open. The candle colors purple. A dot appears below it. Two bars later, a gap forms above — price has displaced back through the range. A green triangle fires below the entry bar. The distribution box extends to the right showing the 1:2 target. A support level line sits just below the sweep low confirming the structural context.
11.4 Illustrative bear scenario
Educational example only. Not a trading recommendation.
Session opens in London. Candles turn gray — a tight consolidation forms. Price spikes above the range high on elevated volume. The spike candle has a large wick and closes back below the high — body is less than 40% of the bar range. The candle turns purple. A dot appears above it. A FVG opens below. A red triangle fires above the entry bar. The distribution box drops from entry toward the calculated take profit. A resistance level hovers just above the sweep high.
11.5 Using the absorption filter
With the filter on, the signal only fires when the manipulation sweep bar shows mechanical absorption. This reduces total signals but increases the average quality of what does fire. The dashboard shows abs / setups — how many confirmed absorptions versus total AMD patterns detected. A ratio of 1/5 is normal. The filter is stricter by design.
With the filter off, every valid AMD + FVG pattern produces a signal regardless of volume. Use this to explore how many setups form on your instrument before deciding whether the absorption requirement is helping or filtering too aggressively.
Regardless of filter setting, the candle coloring always shows the full AMD cycle. A setup without a triangle is still visible through the gray accumulation, the colored manipulation phase, and the FVG box. Traders who want to act on every AMD cycle can use the visual coloring as their cue and treat the triangle as an additional confirmation rather than a requirement.
11.6 Timeframe guide
- 1m–3m: scalp setups. Absorption filter on. Tight preset (futures or commodities).
- 5m–15m: intraday setups. All presets apply. Standard settings.
- 30m–1h: swing context. Manipulation window and accumulation lookback can be increased.
- 4h and above: macro context only. Signals will be infrequent. Use to identify major cycle pivots.
12. Tips
The manipulation search window is your primary tuning lever. If the indicator misses setups you can see visually, increase the manipulation window. If it produces setups that do not look like genuine sweeps, tighten the range width or increase the volume multiplier.
The absorption filter is directional. A bear sweep that qualifies will have a large upper wick and a small body. A bull sweep that qualifies will have a large lower wick and a small body. If you see a purple dot on a bar with a small wick, the volume threshold is too low — raise the min volume multiplier.
Price levels are structural context, not signals. Use them to assess whether a distribution target has a logical resting point — a prior support or resistance level aligned with the take profit zone strengthens the setup.
Multiple AMD cycles can form within a single session. The state resets after each completed cycle. If an accumulation forms but no sweep follows within the search window, the state clears automatically and the indicator waits for the next consolidation.
Candle coloring stops at the session close. If candles outside the session boundaries show unexpected colors, check that your session times are correctly set for your timezone.
13. Disclaimer
This indicator is provided for educational and informational purposes only. Nothing in this document constitutes financial advice or any form of recommendation. Trading financial instruments involves substantial risk of loss. Past performance is not indicative of future results. You may lose all of your invested capital.
Anonycryptous accepts no responsibility or liability for any losses incurred as a result of using this indicator.
Indicator

Asian Range Liquidity Map [AGPro Series]Asian Range Liquidity Map
🔹 OVERVIEW
Asian Range Liquidity Map is a precision tool for ICT and smart-money traders who focus on the London Open liquidity sweep. The indicator maps the Asian session high/low liquidity pool, tracks which side gets taken on the London kill-zone, and keeps a rolling 60-session record of post-sweep reactions. The engine calculates live Reversal / Continuation / Mixed probabilities for both bull and bear sweeps and displays everything in a compact info panel without cluttering the chart.
Whether you trade Turtle Soup setups, session-based liquidity grabs, or simply want clean Asian range context, this indicator gives you the structural read most traders spend months building manually.
🔹 UNIQUE EDGE
This is not another session-box plotter. Three design choices separate it from generic Asian range indicators:
1. ATR-Normalized Quality Filter — the range width is measured against the Daily ATR, not the chart timeframe. Sessions that are abnormally narrow (illiquid) or abnormally wide (news-driven noise) are filtered out of the statistics engine automatically. Only clean, tradable ranges count.
2. Live Historical Statistics Engine — every past sweep in the 60-session rolling window is classified as Reversal, Continuation, or Mixed using close-based validation. When a new sweep fires, a state label immediately shows the historical bias: "Bull Sweep -> Historical Reversal 73% (n=26)". You see the context the moment price reacts.
3. Three-Tier Classification — most tools treat sweep reactions as a binary outcome. This engine separates clean reversals, clean continuations, and indecisive mixed responses, giving a more honest statistical picture. The Mixed bucket is visible in the panel so the trader always knows how confident the signal actually is.
🔹 METHODOLOGY
1. Session Tracking — the Asian window is tracked using pure UTC hour/minute math (default 00:00-08:00 UTC), fully independent of chart timezone. Start and end hours are configurable.
2. Range Validity — on session close, the range width is compared to the Daily ATR. If the ratio falls outside the user-defined band (default 0.3-2.0 x dATR), the session is marked Filtered Out and excluded from statistics.
3. Sweep Detection — after the session closes, the engine watches a configurable post-open window (default 6 hours) for the first break of the Asian High or Low. Only the first sweep per session is recorded, which keeps the sample clean.
4. Reaction Classification — after the reaction window (default 10 bars), the engine evaluates post-sweep closes:
- Reversal: price closed through the opposite side by at least Reversal Threshold x Range
- Continuation: price sustained past the sweep level with pullback under Continuation Threshold x Range
- Mixed: neither condition was met
5. Rolling Sample — the most recent 60 classified sweeps feed the Bull and Bear statistics independently. Default is 60, configurable from 20 to 100.
🔹 SIGNALS AND ON-CHART ELEMENTS
- Asian Range Box: dotted amber rectangle during the session, solidifies on close if the range passes the ATR filter. Filtered sessions fade to near-invisible.
- High and Low Dotted Extensions: projected right from each validated session, showing the liquidity levels the market will target.
- Sweep State Label: appears on the bar that first breaks the range. Color-coded green for bull sweeps, pink for bear sweeps, with the historical bias and sample size baked in.
- Sweep Line: thick horizontal line at the taken level, drawn forward across the projection zone.
- Projection Zone: rectangular post-sweep forecast box where follow-through (or rejection) typically plays out.
- Multi-Day Overlay: up to the last 5 validated Asian ranges rendered with fade hierarchy (oldest most faded, newest most visible).
- Three alerts are included: Bull Sweep Detected, Bear Sweep Detected, and London Open with Valid Asian Range.
🔹 KEY INPUTS
Session Settings:
- Asian Session Start/End Hour (UTC)
- Sweep Detection Window (hours after London Open)
Quality Filter:
- Use ATR filter (on/off)
- Min and Max Range Width (x Daily ATR)
- ATR Length
Historical Stats Engine:
- Sample Size (20-100 sessions)
- Reaction Window (bars after sweep)
- Reversal Threshold (x Range)
- Continuation Threshold (x Range)
Multi-Day Overlay:
- Show historical sessions (on/off)
- Days to show and fade intensity
Post-Sweep Projection:
- Show projection zone (on/off)
- Projection length in bars
Visual Style:
- Label Font Size (independent from panel)
- Show sweep state label (on/off)
Info Panel:
- Show panel, location, theme (Dark/Light)
- Panel Font Size (independent from labels)
🔹 HOW TO USE
Best fit: intraday timeframes from 1m to 60m. The 15m chart is the intended sweet spot and what the defaults are tuned around. The script auto-disables on 4H and higher with a clear on-chart notice.
Typical workflow:
1. Confirm Range Status shows Valid after the Asian session closes. If Filtered Out, stand aside that day.
2. Wait for the London Sweep Window state and watch the Asian High/Low levels.
3. When a sweep fires, read the state label. A high Reversal probability near a major higher-timeframe level often flags a Turtle Soup opportunity. A high Continuation probability suggests fading is risky and trend-aligned entries are preferred.
4. Use the projection zone as a post-sweep attention area, not a target in itself.
5. Cross-check with your own higher-timeframe bias, volume, and structure before committing.
🔹 LIMITATIONS AND TRANSPARENCY
- This is a context tool, not a strategy. No buy/sell signals are generated and no backtest or performance claim is made.
- The historical percentages shown are descriptive statistics of recent price behavior in the sample window. They describe what has happened, not what will happen. A reading like 80% Reversal means four out of five prior sweeps in the sample reversed; the fifth did not.
- On strongly trending or low-volatility instruments, distributions can skew heavily to one category. For example, on a tight range-bound market a liquidity sweep almost always reverts, producing very high Reversal readings. This is a feature of the data, not a bug. If a distribution looks extreme, tighten the Reversal Threshold and shorten the Reaction Window for a stricter definition, or widen them for a looser one.
- Request.security is used to pull Daily ATR and is evaluated without lookahead; no future data is used.
- First-run sample size will be small until the chart has enough history to fill 60 sessions. Expect the panel to show progress like 18 / 60 until the buffer fills.
🔹 RISK DISCLOSURE
This indicator is a research and analysis tool for educational purposes. It does not constitute financial advice, a recommendation, or a solicitation to buy or sell any asset. Past behavior of liquidity sweeps does not guarantee future outcomes. Trading carries substantial risk of loss. Always perform your own analysis, apply risk management that suits your account, and consult a qualified professional before making financial decisions. Indicator

Key Levels Pro [AGPro Series]Key Levels Pro
🔑 Overview
Key Levels Pro is a comprehensive, non-repainting level tracker that consolidates every institutionally significant price reference into one clean overlay. Previous day, week, and month highs/lows (PDH, PDL, PWH, PWL, PMH, PML) are plotted alongside Asian, London, and New York session highs and lows. Every level is actively monitored — touch count, break count, and respect rate update in real time, giving you a live quality score for each price zone.
Most level scripts stop at drawing lines. Key Levels Pro goes further: lines automatically thicken on repeated touches, switch to dashed style when broken, and fade to muted color to signal invalidation. Zone rectangles extend back to the formation bar of each level, making historical respect visible at a glance. An ATR-aware label collision system keeps the chart readable on every timeframe, and same-price levels are intelligently deduplicated so you never see four overlapping labels at the same price.
───────────────────────────────────────────────────────
📐 Unique Edge
Unlike generic pivot or S/R scripts, Key Levels Pro tracks the behavioral quality of each level — not just its existence. A level that has been tested five times without breaking carries a different weight than a fresh, untested one. Key Levels Pro surfaces that difference automatically through line width, style, and panel data.
What makes it distinct:
🔹 Complete previous-period coverage (PDH/PDL, PWH/PWL, PMH/PML) in one overlay, without redundant current-period duplicates.
🔹 Live session tracking for Asian, London, and New York simultaneously, with automatic hiding on Daily and higher timeframes.
🔹 Per-level touch count, break count, and respect rate computed from actual historical price interaction.
🔹 Dynamic line thickening on repeated touches (width 1 → 2 → 3).
🔹 Auto-broken state with dashed style + muted color — no distracting flags or banners.
🔹 Historical zone boxes extending back to the formation bar of each level.
🔹 ATR-aware label collision resolution that stacks overlapping labels vertically.
🔹 Price-based deduplication: when two levels share the same price, the higher-priority one wins (Monthly > Weekly > Daily > Session).
🔹 ATR-normalized proximity to the nearest level above and below the current price.
───────────────────────────────────────────────────────
🔬 Methodology
Previous-period levels are pulled from the daily, weekly, and monthly timeframes using request.security() with lookahead enabled for the completed-period values. This approach is standard, transparent, and non-repainting — historical data does not change.
Session levels are tracked bar by bar using customizable session time inputs. Each session resets at its start time and tracks the running high and low until the session closes. The Asian, London, and New York sessions can each be configured independently.
Touch detection uses an ATR-based tolerance band (default 10% of ATR). When price closes within that tolerance of a level, the touch counter increments. A break is registered when price closes on the opposite side of a level compared to the prior bar. Respect rate is calculated as touches / (touches + breaks) × 100.
Line width scales with touch count: 1 touch = width 1, 2–4 touches = width 2, 5+ touches = width 3. Broken levels switch to dashed style and a muted color.
The label collision system operates in three stages: first, all enabled levels are collected into a sorted array; second, same-price levels are deduplicated based on priority (Monthly highest, Session lowest); third, an upward sweep enforces minimum vertical spacing using a blend of ATR and chart-range heuristics, ensuring labels never overlap regardless of market volatility.
───────────────────────────────────────────────────────
📊 Signals & States
This script is a visualization and data tool — it does not generate buy or sell signals.
Level states are communicated visually:
🔹 Active (solid line, full color): level has not been broken.
🔹 Touched (thicker line, 2–3px): level has been tested one or more times.
🔹 Broken (dashed line, muted slate color): level has been decisively closed through.
Info panel states:
🔹 Session: active market session (Asian / London / New York / Off-Hours / N/A on Daily+).
🔹 Near Above / Near Below: price of the closest active level on each side of the current close.
🔹 Dist Above / Below ATR: distance expressed as a multiple of ATR(14).
🔹 Touch and respect rate data for PDH, PDL, PWH, PWL.
───────────────────────────────────────────────────────
⚙️ Key Inputs
Level Groups: Toggle previous day, week, month, and session levels independently.
Session Times: Fully customizable start/end times for Asian, London, and New York sessions in exchange timezone.
Zone Style: Enable/disable S/R zones and adjust zone transparency.
Lines & Labels: Set line extension length, toggle labels, choose label density (All / Reduced / Minimal), set font size, and enable or disable same-price deduplication.
Info Panel: Toggle panel, set location (six positions), and choose theme (Dark / Light).
ATR Settings: Set ATR period and touch tolerance as an ATR multiple (0.02 to 0.50).
───────────────────────────────────────────────────────
📖 How to Use
1. Add the script to a chart — all major levels appear immediately.
2. Adjust session times if trading non-crypto markets.
3. Watch line thickness: thicker = more tested = stronger historical reaction zone.
4. Dashed + muted color = broken. Treat broken levels as potential new S/R from the opposite side (role reversal).
5. Use the panel's Near Above and Near Below fields to gauge proximity before entry or exit decisions.
6. Use "Reduced" density (default) for cleaner charts, or switch to "All" when you need session context.
7. Works on all asset classes: crypto, forex, equities, indices, commodities.
Recommended timeframes: 15m–4H for session levels; 1H–1D for previous-period levels.
───────────────────────────────────────────────────────
⚠️ Limitations & Transparency
🔹 Session tracking is session-relative and resets each new session.
🔹 Touch tolerance is an ATR-based heuristic and may need adjustment on extremely low-volatility instruments.
🔹 All data is historical. Touch count and respect rate describe past price behavior, not future outcomes.
🔹 This script is not a trading strategy, does not issue trade signals, and cannot predict market direction.
🔹 On exotic or illiquid instruments with large gaps, formation-bar zone boxes may appear truncated if the level formed outside the chart's visible range.
───────────────────────────────────────────────────────
🛡️ Risk Disclosure
This script is provided for informational and educational purposes only. It does not constitute financial advice, investment advice, or a recommendation to buy or sell any financial instrument. All trading involves risk. Past level behavior does not guarantee future results. Always use proper risk management and test any approach in a demo environment before committing real capital. Indicator

Indicator

Svopex SessionsSvopex Sessions
Overview
Svopex Sessions is a customizable multi-session indicator that visualizes the four major global trading sessions — Tokyo, London, New York, and Sydney — directly on your chart. It is designed for intraday traders, scalpers, and swing traders who rely on session-based volatility, liquidity patterns, and inter-session price behavior (such as the London–New York overlap or the Asian range breakout).
Each session can be displayed as boxes, background zones, a timeline strip, or colored candles, giving you the flexibility to match your preferred chart aesthetic without clutter.
Key Features
Four fully configurable sessions (Tokyo, London, New York, Sydney), each with its own:
Custom time range
Independent timezone selector
DST (Daylight Saving Time) toggle for markets that observe it
Custom color and on/off switch
Custom label text
Four display modes selectable from a single dropdown:
Boxes — classic session high/low rectangles
Zones — colored background shading
Timeline — compact session strip at the bottom of the chart
Candles — session-colored bars
Session analytics built in:
Change (Pips) — measured either as session high-to-low range or open-to-close move
Change (%) — same two measurement options
Both metrics update live and are displayed inside the session label
Session levels:
Session 0.5 Level — the midpoint (equilibrium) of each session, often used as a dynamic support/resistance
Open/Close Line — a line tracking price from session open to current close
Workflow helpers:
Merge Overlaps — automatically merges adjacent sessions (e.g. Tokyo into London, London into New York) to avoid overlapping boxes during transition periods
Hide Weekends — excludes Saturday/Sunday bars from session calculations
Lookback (Days) — limits how far back sessions are plotted to keep the chart light and responsive
Appearance controls for box border width and style (solid / dashed / dotted), line style, label size, label visibility, and box background fill.
Built-in alerts:
Session open (Tokyo / London / New York / Sydney)
New session high
New session low
Recommended Use
Intraday timeframes (1m – 1h) for best accuracy — the script automatically restricts itself to intraday charts.
Forex, indices, crypto, and futures — session-based analysis is especially relevant for FX majors and index futures, where liquidity rotates with the opening bell of each financial center.
Combine with volatility or volume tools to identify session breakouts, range expansions, and reversal zones.
Settings Reference
Sessions group — enable/disable each session, set time, timezone, DST, and color.
Additional Tools and Settings — change metrics, merge behavior, lookback, display type, and measurement source.
Appearance — fine-tune visual style (borders, line styles, label size, background fill).
Notes
DST is handled via a manual toggle per session. Because global markets don't switch to/from DST on the same dates, you have explicit control instead of a single global switch.
The indicator is capped at 500 boxes, 500 lines, and 500 labels (Pine Script limits). If you plot a long lookback with all sessions enabled, older drawings may be dropped — reduce the Lookback (Days) value if needed.
Tokyo is set to Asia/Tokyo (Japan does not observe DST), but the timezone field is free-form, so you can repurpose any session for a different market (e.g., Frankfurt, Hong Kong, Singapore). Indicator

Session Reaction Map [AGPro Series]Session Reaction Map
🔷 OVERVIEW
Session Reaction Map is a premium intraday study that maps how price reacts to the most important daily and weekly reference levels right at the opens of the Asia, London and New York sessions. Each session open is evaluated inside a fixed measurement window, and the resulting reaction is broken down into four dimensions: dominant move, close follow-through, wick rejection and counter-move penalty. The output is a single 0-100 reaction score that is then translated into tier-coded labels, premium reaction zones, an active reference band and a compact status panel, so you can instantly read what happened at each session open without scrolling through candles.
The indicator is designed for discretionary traders, systematic traders, SMC and price action practitioners who want a clean, consistent and quantitative way to read session open behaviour around PDH, PDL, PDM, Daily Open and Weekly Open. Reactions are drawn as directional zones (bull zones above the reference and bear zones below), with up or down pointing labels centered on the reaction, so orientation is always unambiguous.
🧭 UNIQUE EDGE
Most session open tools only mark time windows or highlight levels. Session Reaction Map goes further and quantifies the quality of the reaction itself. Four independent dimensions are measured against a fixed ATR-normalized baseline, and the final score determines not only whether a label is shown but also how prominent it is. Elite scores (80+) get the strongest visuals; strong scores (70-79) get a slightly softer treatment; watch scores (55-69) are coded as caution; anything below 55 is filtered out by default.
This separation between detection (a session open near a reference) and evaluation (the reaction quality score) is the core edge. It lets you focus only on the best intraday reactions and discard noise automatically, while still being able to audit every component by adjusting the ATR length, touch tolerance, evaluation window and score thresholds.
⚙️ METHODOLOGY
Session detection uses the chosen timezone and three session windows (Asia, London, New York), each with its own editable open range. When a session open occurs, the script checks whether the open price is within an ATR based touch tolerance of any enabled reference level (Previous Day High, Previous Day Low, Previous Day Mid, Daily Open or Weekly Open). If so, a reaction window is engaged on that bar and tracked for a configurable number of bars.
During the reaction window, the live zone, reference band and dashed reference line are updated in real time. When the window completes, the final score is computed as:
• Dominant move score (up to 45 points) - scaled against 1.20 x ATR
• Close follow-through score (up to 30 points) - scaled against 0.90 x ATR
• Wick rejection score (up to 15 points) - scaled against 0.50 x ATR
• Counter-move penalty (up to -20 points) - scaled against 1.00 x ATR
The sum is clamped into the 0-100 range and mapped into four tiers: Elite, Strong, Watch and Weak. The dominant direction of the reaction (up or down) is determined by comparing the upside excursion from the reference to the downside excursion from the reference during the window.
🎯 SIGNALS AND VISUALS
• Reaction zones - rectangular areas connecting the reference level with the reaction extreme, tier-coded by score and bias
• Active reference band - a thin accent band around the current reference level during a live reaction window
• Dashed reference line - marks the exact reference price while the reaction is being measured
• Tier-coded labels - up-pointing labels below bullish reactions and down-pointing labels above bearish reactions, centered on the reaction window
• Session dots - small colored markers that optionally display only on valid events, keeping the chart clean
• Active measurement highlight - an ultra-soft background shade on bars inside a live reaction window
Labels use a ring buffer overlap check, so dense multi-session conditions do not pile labels on top of each other. When two labels would visually conflict, the higher-scored reaction wins.
🛠️ KEY INPUTS
Sessions - enable/disable and edit Asia, London and New York session windows, each with its own color and timezone.
Reference Levels - individually toggle PDH, PDL, PDM, Daily Open and Weekly Open.
Reaction Logic - ATR length, touch tolerance in ATR, evaluation bars, label score filter, minimum label score, overlap reduction (bars and vertical ATR gap).
Visuals - show/hide reference levels, session dots, dots only on valid events, reaction zones, minimum score for zones, zone transparency and extension, live reaction zone, active reference band with its ATR size and transparency, active measurement highlight, level width, label size, label offset in ATR and label background transparency.
Panel - show/hide, position (six anchor points), Dark or Light theme, font size, optional guide row.
All numerical inputs carry professional English tooltips explaining their role, so the script can be tuned for any symbol, timeframe and trading style.
📘 HOW TO USE
1. Apply the script on an intraday timeframe. It is designed for intraday use and will stay passive on daily/higher timeframes.
2. Recommended starting timeframe is 4H for swing intraday context, and 1H for tactical intraday work. Lower timeframes (15m, 30m) work too but may produce dense output.
3. Start with the default settings. Observe which sessions and which reference levels generate the most Elite and Strong reactions on your symbol.
4. Use the panel to monitor the current state: last session, last reference, bias, score, tier, label filter, zone filter and the active reaction status.
5. Treat Elite (80+) and Strong (70-79) reactions as the main signals. Watch tier is informative and Weak tier is generally discarded.
6. Align with your own confluence: higher timeframe bias, structure, orderflow, or whatever your primary framework is. The script does not issue buy or sell calls - it scores reactions, and you decide.
⚠️ LIMITATIONS AND TRANSPARENCY
• This is not a strategy and does not place orders. No backtest statistics are implied.
• Reaction scores are computed after the evaluation window completes, so they are not repainting but are confirmed with a lag equal to the evaluation window size.
• The live reaction zone updates during the window and is finalized when the window closes.
• Session behavior varies significantly by symbol (crypto vs FX vs equities) and by volatility regime. Inputs should be tuned per symbol.
• Daily and Weekly references use standard request.security with barmerge.lookahead_off to avoid look-ahead bias.
• The script is not a forecasting tool. It is a post-event quantification of how price has just reacted to a known reference level.
🛡️ RISK DISCLOSURE
Trading involves substantial risk. Past reactions, patterns, zones or scores do not guarantee future performance. This script is provided for educational and analytical purposes only and is not financial advice. Always combine any tool with your own research, a defined risk plan and proper position sizing. You are solely responsible for your trading decisions. Indicator

Session VWAP Reaction Engine [AGPro Series]Session VWAP Reaction Engine
Session VWAP Reaction Engine builds the active intraday session VWAP as a reaction anchor and classifies confirmed price behaviour around it into three clear event types — Reclaim, Bounce, and Reject — each validated by a configurable confirmation window, a minimum prior-side bar filter, and an optional VWAP slope alignment filter. A volatility-scaled reaction corridor, compact reaction zones, a session box, and a minimal right-side bias panel turn raw session flow into a clean, publication-ready read on acceptance, rejection, and continuation.
🔷 OVERVIEW
Most session VWAP tools simply plot the line. Session VWAP Reaction Engine goes further: it reads how price behaves around the line inside a selected session window (Asia, London, New York, or Custom) and labels that behaviour using three structural event classes:
• Reclaim — a confirmed cross and acceptance on the new side of session VWAP, after price has spent a minimum number of bars on the opposite side.
• Bounce — a test of the reaction corridor edge that closes back on the prevailing side, with body-range and slope alignment quality checks feeding a Strong / Clean / Weak strength read.
• Reject — a wick into session VWAP that fails to accept on the other side, resolving as pressure against the crossing attempt.
Each confirmed event paints a compact rectangular reaction zone, a single label near the zone, and updates a right-side bias panel so the current session's story is always readable at a glance.
🟦 WHAT MAKES IT DIFFERENT
▸ Event classification, not just a line. Reclaim, Bounce, and Reject are treated as distinct structural events — each with its own confirmation path and visual signature — instead of blending into a single "crossed VWAP" signal.
▸ Corridor-based reaction detection. Bounce and Reject use a volatility-scaled ATR corridor around session VWAP rather than a single-pixel touch, which matches how VWAP is typically tested in real intraday flow.
▸ Slope-aware trend filter. Optional VWAP slope alignment biases bounce events toward the prevailing session direction and filters out counter-flow reactions that tend to fail.
▸ Reaction Strength read. Bounces are classified Strong / Clean / Weak using body-to-range ratio, close location in range, and slope alignment — turning every bounce into a quality-graded event.
▸ Active-Only and Publish Focus visual modes. The chart stays clean by surfacing only the latest session and the latest confirmed reaction, with older structure fading or removed. Ideal for decision-making and presentation.
🟣 METHODOLOGY
1) Session anchor. The selected session (Asia / London / New York / Custom) resets a cumulative PV / V VWAP on every new session bar, giving a fresh reaction reference for that window.
2) Prior-side filter. Before any Reclaim or opposite-side reaction can qualify, price must have spent a minimum configurable number of bars on one side of session VWAP. This isolates structural interactions and rejects chop.
3) Reclaim confirmation. A raw cross must be followed by N consecutive confirmed closes on the new side (default 2) before the Reclaim is validated and painted.
4) Corridor reactions. A volatility-scaled corridor (ATR × user multiplier) around session VWAP defines where Bounce and Reject qualify. Bounces require a corridor-edge test plus a close back on the prevailing side with body confirmation; Rejects require a wick into session VWAP that closes on the originating side.
5) Bias and state synthesis. Live Bias (Bullish / Bearish Acceptance or Pressure, or Neutral Rotation) is derived from close position relative to VWAP and corridor. Reaction State reflects the latest confirmed event (Bullish Acceptance, Bearish Acceptance, Bounce Support, Bounce Resistance, Reject Pressure, Reject Lift).
6) Post-session context. After the session ends, the last session VWAP and corridor stay on the chart for a configurable number of bars so recent structure remains visible without polluting older history.
🟢 SIGNALS & ALERTS
Eight alertcondition hooks are provided, all bar-close confirmable:
• Bullish Session VWAP Reclaim Confirmed
• Bearish Session VWAP Reclaim Confirmed
• Bullish Session VWAP Bounce Confirmed
• Bearish Session VWAP Bounce Confirmed
• Bullish Session VWAP Reject Confirmed
• Bearish Session VWAP Reject Confirmed
• Reaction State Shifted Bullish
• Reaction State Shifted Bearish
A "Confirmed Alerts Only" toggle restricts firing to barstate.isconfirmed so alerts will not repaint before close.
🟡 KEY INPUTS
Session Engine
• Selected Session — Asia / London / New York / Custom
• Custom Session — HHmm-HHmm format (used when Custom is selected)
• Session Timezone — Exchange / UTC / London / New York / Singapore
Reaction Engine
• Reclaim Confirm Bars — number of confirmed closes required after a cross (default 2)
• Minimum Prior Side Bars — whipsaw filter on the opposite side before qualifying (default 2)
• Reaction Corridor Width (ATR) — half-width of the ATR corridor around VWAP (default 0.20)
• Reaction Zone Length (Bars) — how far a confirmed zone extends right (default 14)
• Use VWAP Slope Alignment — trend filter for bounce events (default on)
• VWAP Slope Lookback — slope estimation window (default 3)
• Post-Session Context Bars — how long last session structure stays visible (default 18)
Visual Story
• Active-Only Mode, Publish Focus Mode, Show Previous Reaction Ghost
• Show Session Box, Show VWAP Reaction Corridor, Show Confirmed Reaction Zone
• Show Reaction Label, Show Session VWAP, Show Right-Edge SVWAP Tag
• Visible History Bars (default 700), Label Font Size (default Normal)
Panel
• Show Bias Panel (top-right), Panel Font Size (default Normal)
Alerts
• Confirmed Alerts Only (default on)
🟠 HOW TO USE
1) Apply to any intraday timeframe (1m–4h). Session VWAP requires intraday data to anchor the session reference.
2) Choose the session that best fits your market focus — New York for US equities and US-hours crypto, London for FX and European hours, Asia for Asian-session flow, or a Custom window.
3) Watch the corridor as the session develops. Bounce and Reject events inside the corridor describe how the session is defending or failing the VWAP reference.
4) Use Reclaim events as session-context shifts — combine with your own structure (HTF trend, S/R, order flow) rather than treating them as standalone entries.
5) Read the right-side Bias Panel for a compact summary: Session Status, Bias, Last Reaction, Reaction Strength, Signal Age, Reaction State, and Latest Line status.
6) For screenshots and presentation use, keep Publish Focus Mode and Active-Only Mode enabled — older sessions fade and only the latest structure remains dominant.
🟤 LIMITATIONS & TRANSPARENCY
• Intraday-only. Session VWAP is meaningful only on intraday timeframes; on daily and higher, the indicator will remain idle.
• Session VWAP resets at the start of each selected session. Reactions are evaluated within that window only.
• Confirmed events use bar-close logic. Intra-bar touches of the corridor are not counted as events until the bar closes.
• Volume-dependent. Session VWAP uses symbol volume. On symbols without meaningful volume, VWAP accuracy will be limited.
• The Reaction Corridor is a volatility-scaled visual and detection band, not a support/resistance guarantee.
⚠️ RISK DISCLOSURE
This indicator is an analytical and visualisation tool. It is not a trading strategy, does not generate buy/sell recommendations, does not predict future price direction, and does not guarantee any specific outcome. All signals, zones, and panel readings describe past and current price behaviour around session VWAP, not forecasts.
Markets carry risk of loss. Always use independent risk management, position sizing, and your own trading plan. Past behaviour of any signal does not imply future performance.
Indicator

Reference Price Operating Map [AGPro Series]Reference Price Operating Map
🔹 OVERVIEW
Reference Price Operating Map is a focused overlay that consolidates the four most universally watched reference prices — Daily Open, Weekly Open, Monthly Open, and Previous Close — into a single operating map. It tracks how price interacts with each level in real time, attributes control to the reference currently leading price action, groups overlapping references into confluence clusters, and fades distant context so the active map stays clean.
The chart answers one direct question at a glance: which reference is controlling the session right now.
Built for intraday operators, swing traders, and position traders who anchor their bias to session and period opens. Works on any symbol and any intraday or daily timeframe.
🔸 WHAT MAKES IT DIFFERENT
Most open-line indicators simply draw horizontal lines for Daily, Weekly, Monthly, and Previous Close and stop there. This script goes further by adding four layers on top of those lines:
• State tracking — each reference is classified as Untouched, 1st Touch, Tested, Held, Reclaimed, or Rejected, and the state updates bar by bar as price interacts with the level.
• Control attribution — a proximity-weighted scoring system selects one reference as the current "controller" of price action, highlighted with a dominant-row background in the panel and a thicker line on the chart.
• Confluence grouping — when two or more references sit within 0.5 ATR of each other, they collapse into a single cluster label (for example "D-Open + W-Open + PClose") instead of stacking separate labels on top of each other.
• Distance-aware rendering — references far from current price are demoted to a thin gray zone with a dotted line, keeping them visible as structural context without crowding the active map.
The engine also includes a far-aware state machine: references that price has not meaningfully engaged stay in the Untouched state instead of being forced into misleading classifications.
🔷 METHODOLOGY
Reference levels are pulled directly from the higher timeframe open (Daily, Weekly, Monthly) and the previous daily close using lookahead-safe security calls on confirmed bars.
Distance classification uses ATR(14) as a volatility scale. A reference is considered "near" when price is within a configurable ATR multiple and "far" when it exceeds the far-distance threshold. This adapts the map to both low-volatility ranges and high-volatility expansions without manual tuning.
State transitions are driven by a finite state machine with six states. Key transitions:
• Untouched → 1st Touch when price enters the touch zone (default 0.25 ATR) or wicks through it.
• 1st Touch / Tested → Held when price moves cleanly away from the level on the same side.
• 1st Touch / Tested → Reclaimed when price closes on the opposite side (optionally requiring multi-bar confirmation).
• Any engaged state → Rejected when a large wick rebounds from the level with more than 60 percent wick ratio.
• Held / Rejected → Reclaimed on a confirmed cross.
The control score combines proximity (how close price is to the reference relative to ATR) with a state weight (Reclaimed and 1st Touch score highest, Held scores lowest). The reference with the highest score is tagged as controller; if no reference has meaningful engagement the panel reports No Active Control.
🔶 SIGNALS AND ALERTS
Three alert conditions are exposed:
• Reference Touched — fires the first time any reference is touched in its period.
• Reference Reclaimed — fires when any reference transitions into the Reclaimed state.
• Reference Rejected — fires when a large-wick rejection bar is registered at any reference.
On-chart, first-touch diamond markers are placed on recent bars to make period engagement easy to spot in screenshots and reviews. The panel footer reports the current controller and updates in real time.
🔹 KEY INPUTS
Reference Lines — independent toggles for Daily Open, Weekly Open, Monthly Open, and Previous Close.
Display — Show Active References Only (hide untouched references for a cleaner map), Strict Reclaim Confirmation (require multiple confirmation bars for Reclaim), Label Density (Minimal shows only the dominant reference, Normal shows all active, Detailed appends state names to labels), Show Reaction Bands, Mark First Touches.
Panel — position (four corners), font size, label font size. All default to Normal per AG Pro Series visual standards.
Sensitivity — Touch Threshold (ATR multiple defining a touch), Reclaim Confirm Bars (strict-mode confirmation count), Band Width (reaction band width in ATR), Far Distance (ATR multiple beyond which references are faded to context).
All parameters are ATR-scaled so defaults transfer cleanly across instruments and timeframes.
🔸 HOW TO USE
1. Open the panel and read the controller. If the footer shows "D-Open Controls" with a Bull bias, intraday operators treat Daily Open as the session pivot and trade with that bias until the state changes.
2. Watch the confluence label. A grouped label such as "D-Open + W-Open + PClose" means three references are stacked — a cluster of this kind is typically a higher-conviction zone than a single isolated reference.
3. Use state transitions as triggers. A Rejected state at Monthly Open during a rally is a different signal than a Reclaimed state at the same level. The state tells you what just happened at the level, not just where the level is.
4. Use the far zone as context. A Monthly Open plotted as a gray zone five ATR away from price is not an execution level — it is orientation. When price approaches it, the zone transitions into an active band and the state engine re-engages.
5. Combine with your own structure work. This map is designed to sit underneath price action analysis, order flow, or trend tools, not replace them.
🔷 LIMITATIONS AND TRANSPARENCY
• This is an indicator, not a strategy. No entries, exits, position sizing, or backtesting is performed.
• Reference prices are sourced from higher timeframe candles using confirmed lookahead. Results on intraday charts should match the official Daily, Weekly, and Monthly opens of the exchange the chart is connected to.
• State classifications are heuristic. They describe observed behavior at each level in historical terms and should not be read as forecasts. A Reclaimed state is a description of what just happened, not a prediction of what comes next.
• ATR-based thresholds mean the map adapts to volatility but can feel different on very low-volume or very thinly traded instruments. Adjust the touch threshold and far distance inputs if defaults feel too loose or too tight.
• Confluence grouping uses a 0.5 ATR window. On very wide-range days this window can become large; on very narrow ranges it can feel tight.
🔶 RISK DISCLOSURE
This indicator is provided for informational and educational purposes only. It does not constitute financial advice, investment advice, trading advice, or any other form of advice. Past performance of any level, state, or methodology shown on the chart does not guarantee future results. Trading and investing involve substantial risk of loss. You alone are responsible for your decisions, for managing your risk, and for complying with the laws and regulations that apply to you. Test any tool on a demo account or in paper trading before using it with real capital. Indicator

Power of Three (AMD) Map [AGPro Series]Power of Three (AMD) Map
🔹 Overview
The Power of Three (AMD) Map visualizes ICT's foundational session-framework concept directly on the chart: Accumulation → Manipulation → Distribution. For each daily or weekly session, the indicator automatically segments the AMD phases, detects classic liquidity sweeps during Manipulation, and projects a distribution target based on the accumulation range. Built for ICT / Smart Money Concept traders who want session-aware bias, transparent sweep validation, and forward-looking expansion projections.
🔹 Unique Edge vs Other PO3 Scripts
Most PO3 indicators on PulseWire simply highlight time-based session blocks and leave liquidity detection to the user's eye. This implementation distinguishes itself through:
• Phase detection by bar count, not timestamps — ensuring consistent AMD ratios across every timeframe from 15m to 1D
• Adaptive sweep confirmation — accepts both same-bar ICT-strict sweeps (wick + close-back) and 2-bar delayed confirmations, significantly improving setup capture without sacrificing quality
• Dual-reference sweep logic — checks both the previous session's accumulation range AND the current session's accumulation range, capturing sweeps that single-reference scripts miss
• TF-adaptive target multiplier — Daily sessions project targets at 0.7× accumulation range, Weekly sessions at 0.3×, aligned with realistic crypto volatility profiles
• Transparent dual-KPI panel — separates Sweep Rate (how often valid sweeps occur) from Target Hit rate (how often the projected expansion completes), giving traders honest, verifiable performance metrics
🔹 Methodology
Each session is divided into three bar-count-based windows:
• Accumulation (first 33% of expected session bars) — tracks the initial range
• Manipulation (next 17%) — scans for liquidity sweeps against the previous session's accumulation high/low and the current accumulation extremes
• Distribution (remaining 50%) — the expected expansion phase, measured against the projected target
A valid Manipulation sweep requires a wick penetrating a reference level followed by a body close back inside (classic ICT definition). In Adaptive mode, sweeps can also confirm within a 2-bar window. The detected sweep direction determines the PO3 bias: sweeping a high produces a Bearish PO3 (expected downside distribution); sweeping a low produces a Bullish PO3 (expected upside distribution). A target price is projected from either the accumulation midpoint (default, symmetrical expansion) or the sweep extreme, multiplied by the configured ratio.
🔹 Signals & Alerts
Four built-in alert conditions:
• Manipulation phase started — Accumulation complete
• Bullish sweep detected — Low was swept, Bullish PO3 forming
• Bearish sweep detected — High was swept, Bearish PO3 forming
• Distribution target hit — Expansion reached projected level
🔹 Key Inputs
• Session Scope — Auto (TF-adaptive), Daily, or Weekly
• Accumulation / Manipulation window percentages (defaults 33% / 17%)
• Sweep Reference — Previous Accumulation, Current Accumulation, or Both (default)
• Sweep Confirmation — Strict (same-bar) or Adaptive (up to 2-bar, default)
• Target Projection Method — From Accumulation Mid (default) or From Sweep Extreme
• Multiplier Mode — Auto TF-adaptive (default) or Manual
• Historical sessions to display (default 5, max 10)
• Full visual customization — colors, label position, font size, panel position & theme
• Premium visuals — sweep triangle markers, target price label (toggleable)
🔹 How to Use
1. Add the indicator to any crypto or forex chart with timeframe 1H–4H (for Daily PO3) or 1D (for Weekly PO3)
2. Watch the Accumulation range form at the start of each session — this defines the sweep reference level
3. When Manipulation phase begins, monitor for a wick that sweeps the previous accumulation high/low with a body close-back (triangle marker appears on confirmed sweeps)
4. Once a sweep confirms, the panel displays the directional bias (Bullish/Bearish PO3), the projected target price, and a dashed target zone extends toward the session end
5. Use the Sweep Rate and Target Hit percentages in the panel to contextualize reliability on your chosen symbol and timeframe
6. The panel's Completion counter grows as new sessions close — give the script enough historical bars to build meaningful statistics
🔹 Limitations & Transparency
• AMD phase windows are bar-count approximations — real sessions do not cleanly segment into 33/17/50 splits. The indicator is a structural guide, not a timing oracle
• Sweep detection requires the chart timeframe to contain at least 4 bars per session. On 1D charts, use Weekly mode; on 1W charts, the indicator will display a warning
• The projected target is a statistical expectation based on the accumulation range. The Target Hit rate (shown in panel) reflects the historical frequency of this expectation being met on the current symbol/timeframe — typically 40–55% on crypto majors
• Sweep Rate shows the percentage of completed sessions where a valid Manipulation sweep was detected; sessions without sweeps produce no bias and no target
• Historical statistics accumulate from the first bar available on the chart and reset only when the chart reloads
🔹 Risk Disclosure
This indicator is a visualization and analysis tool. It does not generate trade signals, predict price movement, or guarantee outcomes. Past Sweep Rate and Target Hit statistics reflect historical behavior only and do not imply future performance. All trading decisions and risk management remain the responsibility of the user. Indicator

Silver Bullet Window Map [AGPro Series]Silver Bullet Window Map
🔹 Overview
Silver Bullet Window Map is a precision time-based tool that maps the three classic ICT "Silver Bullet" kill zones — compact 1-hour windows where institutional order flow is statistically concentrated — and automatically detects Fair Value Gap (FVG) imbalances formed inside each window. Instead of cluttering the chart with session-wide structures, the script isolates only the high-probability time periods ICT scalpers actually trade, rendering each window as a clean vertical zone with a live countdown, pulse highlight on the active window, and a lifecycle S/R zone for every FVG that prints during the window.
🔸 Unique Edge
Most Silver Bullet scripts either draw static colored backgrounds with no analytical value, or detect FVGs across the entire session and overwhelm the chart. This script does neither. It enforces a strict discipline: FVGs are only drawn if they form INSIDE an active Silver Bullet window. Outside-window price action is deliberately ignored. The result is a chart where every marked imbalance carries ICT-legitimate timing context — not noise. Each FVG becomes a horizontal lifecycle zone (bull or bear) that extends forward in time and is dimmed automatically when mitigated, giving you both a real-time map and a historical window-quality record in one view.
🔹 Methodology
The indicator evaluates the current bar's hour and minute in a user-selectable timezone (New York default, per ICT standard) and identifies three windows: London (03:00–04:00), AM (10:00–11:00), and PM (14:00–15:00). During each window, a three-bar FVG check is performed on confirmed bars: a bullish FVG requires the current bar's low to exceed the high two bars back; a bearish FVG requires the current bar's high to fall below the low two bars back. Gaps are filtered by a user-tunable ATR(14) multiplier to reject insignificant imbalances. Valid FVGs are rendered as time-anchored rectangular zones that extend a configurable number of bars into the future and are marked as mitigated the moment price revisits the opposite side of the gap.
A built-in timeframe guard disables rendering on timeframes of 1 hour and above, because Silver Bullet windows are exactly 1 hour long and cannot be resolved by bars equal to or larger than the window itself. On HTF charts, the panel displays a clean warning message instead of a broken visual.
🔸 Signals & Alerts
Four alert conditions are available: London window open, AM window open, PM window open, and window close. The script is designed for discretionary use — it does not issue buy/sell signals. Its purpose is to put the trader inside the correct time context with the correct structural references, and to let the trader read price action within that context.
🔹 Key Inputs
• Timezone: New York / London / UTC / Exchange
• Historical window depth: 1–30 days
• Individual toggles and custom colors for each of the three windows
• Active-window pulse effect (on/off)
• FVG detection (on/off), minimum size as ATR multiple, zone extension in bars
• Mitigation behavior: dim inactive zones or remove them
• Panel position, theme (Dark/Light), and font size
• Window labels and FVG labels: independently toggleable, font size configurable
🔸 How to Use
Best deployed on 1m–30m intraday charts where the 1-hour windows are visually meaningful. The AM window (10:00–11:00 NY) is historically the most actionable for US equities, indices, and major FX pairs. Wait for a window to open — the background lights up, the panel shows ● LIVE, and the window label appears above the opening candle. Look for a displacement candle creating an FVG inside the window. Use the FVG zone as a retest entry reference with risk defined beyond the gap. The panel's countdown and per-window FVG tally help you gauge window quality in real time. At the end of each day, the L / AM / PM tally shows which window produced the most imbalances — a quick read on session character.
🔹 Limitations & Transparency
This indicator does not predict direction. It does not backtest or display historical win rates — such figures on a time-window tool would be statistically misleading without an execution model. FVG detection uses the standard 3-bar definition; alternative definitions (implied fair value, BPR, inversion FVGs, etc.) are not covered by design. The tool is timezone-sensitive: if your data feed's timestamps drift from the selected timezone's DST boundaries, window alignment can shift by one bar around DST transitions. On timeframes equal to or greater than 1 hour, the script deliberately disables all rendering to avoid producing a misleading visual.
🔸 Risk Disclosure
This script is provided for educational and analytical purposes only. It does not constitute financial advice. Trading leveraged instruments carries substantial risk of loss. Past price behavior around kill zones does not guarantee future results. Use proper risk management and position sizing at all times. Indicator

Multi-Anchor VWAP Grid [AGPro Series]Multi-Anchor VWAP Grid
🔹 Overview
Multi-Anchor VWAP Grid is a volume-weighted analysis tool that plots five independently anchored VWAP lines on the same chart — anchored from swing high, swing low, higher-timeframe pivot, all-time high, and session open. Each anchored VWAP includes optional ±1σ and ±2σ standard deviation bands, forming a dynamic grid of volume-weighted support and resistance levels. When three or more VWAPs converge within a tight ATR-based band, the indicator draws a rectangular confluence zone highlighting the area as a higher-probability price reaction region.
The script is fully automatic. All five anchors are detected by internal engines (pivot detection, session detection, timeframe change detection, all-time-high tracker) and require no manual date picking or retroactive anchor placement. Install the indicator, select which anchors you want active, and the grid builds itself.
🔹 What It Does Differently
Most anchored VWAP tools plot one anchor at a time and require the user to manually place the anchor each time a new swing or event is identified. This script plots five anchors simultaneously and lets them compete for relevance. When multiple independent anchors agree on a price level, that agreement itself becomes the signal — visualized as a confluence zone. A single VWAP is one data point. Five VWAPs intersecting within 0.5 ATR of each other is a structural event.
The confluence detection engine tests each active VWAP as a reference point, counts how many others fall within the user-defined ATR tolerance, and picks the densest cluster on each bar. A minimum VWAP count threshold (default 3) prevents noise, and a lifecycle manager extends, adaptively resizes, and expires zones based on bar age and midpoint drift.
🔹 Methodology
**Anchor engines**
Swing High and Swing Low VWAPs reset on each confirmed pivot using the standard ta.pivothigh / ta.pivotlow detector with a configurable lookback length. HTF Pivot VWAP resets at the start of each selected higher-timeframe period (daily, weekly, or monthly) using timeframe.change. ATH VWAP resets whenever a new all-time high is printed on the visible chart. Session Open VWAP resets at the first bar of each trading session defined by the session window input.
**VWAP calculation**
Each anchor maintains three running accumulators since its last reset: sum of (price × volume), sum of volume, and sum of (price² × volume). VWAP is computed as the first divided by the second. Standard deviation is derived from the variance identity: sqrt(E − E ²), where E and E are computed from the running accumulators. Bands are plotted at configurable multipliers of this running standard deviation.
**Confluence engine**
On each bar, the script evaluates every active VWAP as a potential cluster center. For each candidate center, it counts how many other active VWAPs fall within ATR × tolerance distance. The cluster with the highest count wins. If the winning count meets or exceeds the minimum threshold, the bar is marked as confluence-active.
**Zone lifecycle**
When confluence becomes active, a new rectangular zone is created spanning the min/max of the clustered VWAPs. As long as confluence remains active and the cluster midpoint drifts less than 0.5 ATR from its original midpoint, the zone extends to the current bar and adaptively resizes with rate-limited expansion (maximum 1 ATR growth per bar per direction, preventing erratic stretching). If the midpoint drifts more than 0.5 ATR, a new zone is created. A 5-bar debounce prevents micro-breaks in confluence from prematurely closing active zones. Zones auto-expire after a configurable age limit (default 120 bars).
🔹 Signals and Panel Readouts
The information panel in the top-right corner (position and theme configurable) displays:
- **Price Bias** — count of VWAPs price is currently above vs below, with an overall BULL / BEAR / MIXED classification
- **Confluence** — current status (active with cluster count, or none) and the minimum-count threshold in use
- **Closest VWAP** — which of the five VWAPs is currently closest to price, and the distance in ATR units
- **Active VWAPs** — each enabled VWAP's current value and percent distance from close
Two alert conditions are built in: new confluence zone detection, and price crossing any active VWAP line.
🔹 Key Inputs
**Anchor Points group** — toggle each of the five VWAPs on or off, set swing pivot lookback length, choose HTF timeframe (D/W/M), define the session window for intraday anchoring.
**Deviation Bands group** — toggle bands on or off, configure band 1 and band 2 multipliers, enable or disable gradient fills between VWAP and the first band.
**Confluence Zones group** — toggle zones on or off, set minimum VWAPs required for a confluence (2 to 5), adjust the ATR-based tolerance, define maximum zone age in bars.
**Panel group** — toggle panel, choose location (six positions), select Dark or Light theme, set font size (Small / Normal / Large).
**Labels group** — toggle the compact end-of-line labels that identify each VWAP at the right edge of the chart.
🔹 How to Use
This indicator is designed as a context layer, not a standalone entry signal. Suggested workflow:
**1. Identify structural bias.** Check the Price Bias row in the panel. If 4 or 5 VWAPs sit below price (BULL), the market is trading above its most relevant volume-weighted averages across multiple timeframes and event contexts. The opposite applies for BEAR.
**2. Watch for confluence formation.** When the panel shows Confluence ACTIVE with 3 or more VWAPs clustered, a meaningful volume-weighted support or resistance area is forming. These zones often precede reaction or reversal behavior.
**3. Use bands for context.** When price trades near the ±1σ band of a single VWAP, reversion back toward that VWAP is statistically more likely. ±2σ extensions indicate volatility outliers.
**4. Cross-reference with your own tools.** This script is most useful combined with price action, volume profile, or a trend filter of your choice. It does not generate entries or exits on its own.
🔹 Tips
- On crypto 24h markets, set Session Window to 0000-2359 for a full-day session VWAP.
- Higher Swing Pivot Length values (30–50) filter noise on higher timeframes; lower values (10–15) are better for intraday.
- If the chart feels visually crowded, disable the ±2σ bands or reduce the number of active anchors. All five are rarely needed simultaneously.
- For the strongest confluence signals, increase Min VWAPs for Confluence to 4 — rarer but higher conviction.
🔹 Limitations and Transparency
- The script uses standard Pine Script pivot detection for swing anchors. Pivots are confirmed only after the pivot length has passed, which means swing VWAP anchors are placed retrospectively by that many bars. This is an inherent limitation of all pivot-based tools, not a bug.
- ATH tracking is limited to the visible chart range. On timeframes or symbols where the chart does not load full history, the "ATH" anchor represents the highest point within loaded data, not the true all-time high.
- Standard deviation bands assume price dispersion around each VWAP is approximately normal over the anchored period. In strongly trending markets, this assumption weakens and bands may widen significantly.
- Confluence zones are descriptive, not predictive. They mark areas where multiple volume-weighted averages happen to agree. They do not guarantee price reaction, only indicate where reaction is more plausible than average.
- Session Window input must match the instrument's trading hours to produce a meaningful intraday VWAP. Incorrect session definitions will produce misleading anchor points.
🔹 Risk Disclosure
This indicator is provided for educational and analytical purposes only. It is not financial advice, investment advice, or a recommendation to buy, sell, or hold any asset. All trading involves substantial risk of loss. Past chart behavior and historical VWAP reactions do not guarantee future results. Users are solely responsible for their own trading decisions and risk management. Always combine indicator output with independent analysis and appropriate position sizing. The author accepts no responsibility for any financial outcome resulting from the use of this script. Indicator

Judas Swing Detector [AGPro Series]Judas Swing Detector
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
OVERVIEW
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
The Judas Swing is a well-known intraday pattern in ICT (Inner Circle Trader)
methodology describing how price often makes a deceptive initial move at the
London or New York session open — pulling in participants in one direction —
before reversing to reveal the session's true directional bias.
Judas Swing Detector systematically identifies, visualizes, and tracks this
pattern across every London and New York session open. It shades the trap
zone, flags the reversal bar, highlights the true-direction bias, and maintains
a rolling 20-session performance log so users can assess how consistently the
pattern resolves on their chosen symbol and timeframe.
IMPORTANT — Timeframe requirement: This indicator is designed for intraday
charts of 1 hour or lower (1m, 5m, 15m, 30m, 1h). Session windows anchor the
entire logic, and a 1-hour Judas window cannot be resolved on 4-hour or higher
charts. The panel always shows an "Optimal TF: 1m - 1h" footer, and the TF
status row turns yellow with "use <=1h" if the current chart exceeds this
range.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
UNIQUE EDGE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Unlike generic session-open or breakout indicators, Judas Swing Detector is
built around a defined four-state lifecycle (Pending → Active → Forming →
Confirmed / Failed) with ATR-normalized thresholds, so detection remains
stable across different volatility regimes and asset classes.
Three design choices make it distinct:
1. Independent two-way extremum tracking inside the Judas window — both the
maximum upward and maximum downward excursion are recorded, and the larger
of the two is declared the fake move when the window closes. This removes
ambiguity in choppy openings.
2. Separate fake-move and reversal thresholds. The initial push must exceed
a minimum ATR-scaled size to qualify, and the reversal must travel a second
ATR-scaled distance beyond the session open — filtering out shallow round
trips that would otherwise inflate the signal count.
3. Rolling 20-session statistics panel reporting success rate, average fake
distance, and directional bias, giving discretionary traders an objective
view of how the pattern is behaving on their instrument before they act on
it.
4. Support/resistance-style invalidation zone drawn at the fake-move extremum
after confirmation. This gives a clear visual anchor: if price later
re-enters this zone from the opposite side during the session, the Judas
read is considered broken. The zone is a reference, not an automatic
signal.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
METHODOLOGY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Step 1 — Session anchoring
At the first bar of the configured London or New York window the script
records the session open price, resets the two-way extremum trackers, and
transitions to the Active state.
Step 2 — Fake-move accumulation
During the window the script tracks both the maximum high and minimum low
relative to the session open. Neither is committed as the fake move until the
window closes.
Step 3 — Window-close evaluation
When the window ends the larger excursion (up vs down) becomes the fake
direction. If its size reaches the user-defined ATR multiple it qualifies and
the script transitions to the Forming state; otherwise it resets to idle.
Step 4 — Reversal confirmation
In the Forming state the script waits for price to cross the session open in
the opposite direction of the fake move and travel at least the configured
ATR-scaled distance beyond it. When that happens the swing is Confirmed and
the true direction is drawn on the chart. If the reversal window expires
without confirmation the swing is recorded as Failed.
Step 5 — History log
Every confirmed and failed outcome is appended to a rolling 20-session log
used by the statistics panel.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
SIGNALS & ALERTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
On-chart visuals:
• Dashed vertical line at session start (accent color)
• "LON" or "NY" label at the session anchor bar (Balanced / Detailed only)
• Shaded fake-move box from session open to fake extremum, colored opposite
to the true direction (a bearish trap is shaded in the bear tone because
the true direction is down — and vice versa)
• Optional "Fake" distance label at the extremum (Detailed density only)
• Reversal marker "X UP" or "X DOWN" at the confirmation bar, offset
from the candles for readability
• Horizontal support/resistance-style invalidation zone around the fake
extremum, extending 40 bars to the right — a visual reference for where
the Judas read would break down if price re-enters the zone
Alert conditions (toggle individually in settings):
• Judas Swing Forming — fake move has qualified, waiting for reversal
• Judas Swing Confirmed — reversal threshold crossed, true direction known
• Judas Swing Failed — reversal window expired without confirmation
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
KEY INPUTS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Session Windows
• Track London Open — toggle London session monitoring
• London Judas Window (NY time) — session string, default 0200-0300
• Track New York Open — toggle NY session monitoring
• NY Judas Window (NY time) — session string, default 0930-1030
• Session Timezone — timezone used to interpret the windows
• Reversal Window (minutes) — maximum time after window close in which a
valid reversal can still be recorded
Detection Logic
• Min Fake-Move Size (ATR mult) — minimum excursion required to qualify
• Reversal Confirmation (ATR mult) — distance beyond session open needed
to confirm the reversal
• ATR Length — lookback for threshold scaling
Visuals
• Show Session Start Line, Show Fake-Move Zone, Show Reversal Marker,
Show Invalidation Zone — individual visual toggles
• Label Density — Minimal / Balanced / Detailed
• Font Size — tiny / small / normal / large (applies to labels and panel)
• Theme — Dark / Light (panel only, chart candles unaffected)
Panel
• Show Info Panel — master toggle
• Panel Location — 6 chart positions
• Always displays: current session, state, true direction, fake distance,
rolling 20-session statistics (success rate, avg distance, bull/bear
bias), current TF status, and a footer reminding the optimal timeframe
range
Alerts — three individual toggles (Forming / Confirmed / Failed)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Supported timeframes: 1m, 5m, 15m, 30m, 1h. These resolve a session's early
structure cleanly while keeping enough bars inside each Judas window for the
extremum tracker to work with. Recommended default: 15m or 1h.
Not supported: 4h, 1D, 1W. On these timeframes a single bar exceeds the
session window, so nothing is detected. The panel will show a yellow "use
<=1h" hint if you accidentally switch to one of these.
Recommended instruments: FX majors (EURUSD, GBPUSD, USDJPY), index futures
(NQ, ES), liquid crypto (BTC, ETH). The ATR-normalized thresholds keep the
logic portable across these asset classes.
Workflow suggestion:
1. Apply the indicator and let it observe several sessions so the panel
populates a meaningful sample.
2. Review the 20-session success rate on your specific symbol and timeframe.
This is not a forecast — it is a descriptive statistic of how the pattern
has resolved in recent history on that chart.
3. Use the Forming alert as a heads-up, and the Confirmed alert as the main
event. The true-direction arrow marks the bias of the remaining session,
not a trade entry or exit.
4. Combine with your own structural context — higher timeframe bias, key
levels, liquidity pools — before acting on any signal.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LIMITATIONS & TRANSPARENCY
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• Not a strategy. This is a discretionary analysis tool; it neither places
orders nor implies any specific trade setup.
• Intraday timeframes only. The logic requires 1h or lower charts to resolve
the session windows. On 4h, 1D or higher the indicator will not detect
anything and the panel will show a "use <=1h" notice.
• No forecasting. Displayed statistics describe past behavior on the current
chart only and do not imply future performance.
• Pattern-dependent. When price opens and trends cleanly in one direction
without a fake move, the pattern legitimately will not trigger. Low
signal count on such sessions is expected behavior, not a malfunction.
• Session boundary sensitivity. Results depend on the configured session
windows and timezone. Outside the major FX and equities session hours the
ICT framing may not translate cleanly.
• Extreme-volatility sessions. During very large gaps or news spikes the ATR
thresholds can be dominated by a single bar; users should review the
defaults in those conditions.
• Symbol coverage. Pip conversion handles forex and JPY pairs explicitly and
falls back to tick-based sizing for other asset types. Values are intended
as relative magnitudes, not broker-specific pip quotes.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RISK DISCLOSURE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
This indicator is provided for educational and analytical purposes only. It
does not constitute financial advice, a recommendation, or a solicitation to
buy or sell any instrument. Trading involves substantial risk of loss; past
pattern behavior is not indicative of future results. Users are responsible
for their own trading decisions and for verifying that any signal aligns with
their own methodology and risk management.
The source code is published under the Mozilla Public License 2.0. Feedback
and constructive suggestions are welcome. Indicator

Institutional Session Profiler [JOAT]Institutional Session Profiler
Introduction
The Institutional Session Profiler builds a real-time volume-by-price distribution for each of the three major trading sessions — Asia (Tokyo, 01–09 UTC), London (07–16 UTC), and New York (13–22 UTC). For each session, it calculates the Point of Control (POC — the price level with the highest traded volume), the Value Area High (VAH) and Value Area Low (VAL) encompassing 70% of session volume, and a net buy/sell delta that reveals directional institutional participation within the session. Profile shapes are rendered as smooth polyline waves via Catmull-Rom cubic spline interpolation, giving the profiles a clean, readable curve rather than a jagged bar histogram.
The core problem this solves: standard volume profile tools display a single aggregated profile for an arbitrary lookback. Institutional traders operate within defined session windows — Asia sets the range, London typically engineers liquidity, New York resolves direction. Mapping volume distribution per session reveals where institutions are genuinely active versus where price is simply passing through thin volume.
Core Concepts
1. Lower-Timeframe Volume Accumulation
To build accurate price-level histograms on any chart timeframe, 1-minute (or user-specified lower timeframe) bars are requested via Pine Script's security_lower_tf function. Each sub-bar's volume is classified as buy-side or sell-side, then placed into the session's price bins:
array ltf_c = request.security_lower_tf("", i_ltf, close)
array ltf_v = request.security_lower_tf("", i_ltf, volume)
for i = 0 to ltf_c.size() - 1
float p = ltf_c.get(i)
float v = ltf_v.get(i)
int idx = int(math.floor((p - s_asia.lo) / bin_size))
s_asia.bins.set(idx, s_asia.bins.get(idx) + v)
This means the profile represents actual sub-bar traded volume distributed across price, not a simple tick count or approximation from chart-timeframe candles.
2. Point of Control and Value Area
The POC is the bin index with the highest accumulated volume. The Value Area is computed by iteratively expanding from the POC outward, adding the higher-volume neighbor bin at each step until 70% of total session volume is captured:
float target = total_vol * VA_PCT // VA_PCT = 0.70
float accum = bins.get(poc_idx)
int lo_i = poc_idx
int hi_i = poc_idx
while accum < target
// expand toward whichever neighbor bin has more volume
The resulting VAH and VAL define the zone where the majority of institutional volume transacted. Price inside the value area is "accepted" — price outside it is either in premium or discount relative to session fair value.
3. Catmull-Rom Spline Profile Rendering
Rather than rendering a stepped histogram, the volume bins are smoothed with a double-pass averaging and then connected via Catmull-Rom cubic splines into a polyline. This produces the signature smooth profile wave that is readable at a glance without the visual noise of raw histogram bars:
// Control point generation for cubic interpolation
float cx0 = x0, cy0 = y0
float cx1 = x1 + (x2 - x0) / 6, cy1 = y1 + (y2 - y0) / 6
// ... polyline rendered via array
4. Session Delta
Each session accumulates a running buy/sell delta (buy volume minus sell volume across all sub-bars). The dashboard displays the session delta as a signed value with color coding — positive delta in the Asia session followed by a bullish London opening is a meaningful institutional convergence signal.
Features
Three Simultaneous Session Profiles: Asia, London, and New York built in parallel, each with its own color
Point of Control Line: Horizontal line at the highest-volume price level per session, extended across the full session range
Value Area Box: Shaded box from VAL to VAH representing the 70% volume concentration zone
Volume Wave: Smooth Catmull-Rom spline profile rendered as a polyline — showing the full shape of volume distribution
Buy/Sell Delta: Net directional volume per session displayed in the dashboard
Session Range Box: Outer boundary box showing the full session high-to-low range
9-Row Dashboard: Displays session status (open/closed), POC price, VAH, VAL, session range, delta, and total session volume for each active session
Alerts: Asia session open, London session open, NY session open, price enters value area, price exits value area
Input Parameters
Sessions:
Asia (01–09 UTC): Toggle Asia session profiling (default: on)
London (07–16 UTC): Toggle London session profiling (default: on)
New York (13–22 UTC): Toggle NY session profiling (default: on)
Volume Profile:
LTF for Volume: Lower timeframe to use for sub-bar volume accumulation (default: 1m). Must be smaller than chart timeframe.
Profile Bins: Number of price levels in each session distribution (default: 35, range: 10–100). More bins = finer resolution.
Show Value Area (70%): Toggle VAH/VAL box rendering (default: on)
Visualization:
Asia / London / NY Colors: Independent session color selection
Box Transparency: Base transparency of session range and value area boxes (default: 85)
Show Volume Wave: Toggle Catmull-Rom spline profile rendering (default: on)
Dashboard:
Position: Top Right, Top Left, Bottom Right, Bottom Left (default: Top Right)
How to Use This Indicator
Step 1: Locate the POC and Value Area
The POC is the single most important price level in each session — it represents the highest institutional agreement. Value Area (VAH to VAL) is where the majority of volume transacted. Price above VAH is premium; price below VAL is discount.
Step 2: Identify Session Transitions
The London open (07 UTC) frequently engineers liquidity above or below the Asia range. If London takes out the Asia high and then reverses, the Asia POC becomes a magnetic target. The NY open at 13 UTC is the resolution event — watch for which side of the London value area price is trading on at that open.
Step 3: Read the Session Delta
A session with strong positive delta (more buy volume than sell volume) combined with price closing near the VAH suggests institutional accumulation. Negative delta closing near VAL suggests distribution. Divergence between price direction and delta direction is a key reversal signal.
Step 4: Use VAH/VAL as Dynamic S/R
After a session closes, its VAH and VAL remain on chart as reference levels. These levels frequently act as support or resistance in the following session because institutional participants remember where the majority of volume transacted.
Originality Statement
This indicator is original in its combination of per-session volume profile construction using lower-timeframe data with Catmull-Rom spline visual rendering and real-time delta tracking across three simultaneous sessions. Its publication is justified because:
Volume profiles are typically computed for arbitrary user-defined time windows or fixed periods. Per-session profiling maps institutional behavior to the actual time windows in which institutions operate — Asia, London, and New York — creating contextually meaningful distributions rather than arbitrary aggregations
Catmull-Rom spline interpolation of the bin array produces a smooth, continuous profile shape that preserves the true distribution topology while being readable without histogram visual noise
Real-time lower-timeframe volume decomposition into price bins on any chart timeframe gives accurate sub-bar volume placement that chart-timeframe-only calculations cannot produce
Simultaneous three-session display with independent POC, VAH, VAL, and delta tracking per session enables cross-session analysis that no single-profile tool can provide
Limitations
LTF data requests consume additional computation. On very high timeframe charts (4H+), 1-minute LTF data pulls are large. Consider using 5m LTF on higher timeframes to reduce computation.
The buy/sell volume classification (close >= open = buy) is an approximation at the 1-minute level. True tick-direction is not available in Pine Script.
Session times are fixed UTC offsets. Daylight saving time transitions may shift the actual institutional open by one hour depending on the exchange.
Value Area calculation uses 70% of session volume by default. This follows the standard Market Profile convention but the threshold is not universally agreed upon.
On assets with very low volume (illiquid instruments), the profile bins will be sparse and the spline shape may not be representative of meaningful distribution.
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Session volume patterns do not guarantee future price behavior. Always use proper risk management.
-Made with passion by jackofalltrades
Indicator

Indicator

Indicator

Indicator

Session Levels IQ [TradingIQ]Hello Traders!
🔹 Session Levels IQ
Session Levels IQ is a session-based percentage grid tool designed to map how far price typically travels away from each session open.
Instead of treating a session as a simple open-high-low-close range, this tool builds a structured level framework around the session open and tracks which distances tend to get reached, how often they get reached, and what price typically does after touching them .
Think of it as a way to study session expansion behavior around the open .
This indicator records historical observations to show what typically happens.
It’s not a strict probability model, but more of a history book of past behavior.
session-based percentage levels built outward from the open
custom session or timeframe-based session construction
hit-rate tracking for each distance level
typical move-after-hit measurement
normal vs unusual level zoning
optional coloring by historical hit rate or move-after-hit
reference price line for inspecting post-hit behavior
🔹 What the tool shows
🔸 Session-centered level grid
Each session begins from its opening price, and the script builds levels outward in configurable percentage intervals.
This creates a structured grid above and below the session open, helping you visualize how price expands relative to where the session started.
This helps reveal:
how far price tends to travel from the session open
which percentage distances are reached most often
how session expansion behaves over time
🔸 Historical hit rate by level
The script tracks whether each percentage level gets touched across completed sessions.
Over time, this produces a running statistical view of how often price reaches specific distances from the open.
This allows you to observe:
which distances are commonly reached
which distances are less typical
where session expansion begins to become unusual
🔸 Typical move after hit
In addition to tracking whether a level is reached, the script also records what price typically does after touching that level.
For levels that get hit, it measures the median follow-through after contact.
This helps show:
whether certain levels tend to lead to larger continuation
whether some levels produce relatively small follow-through
how post-hit behavior differs across the grid
This is not just about whether price gets somewhere.
It is also about what tends to happen once it gets there .
🔸 Normal vs unusual zones
A configurable normal range defines which distances from the open are considered relatively typical and which fall outside that range.
Levels inside this zone are treated as normal, while levels beyond it are treated as more unusual.
This helps identify:
common session movement areas
stretched or less typical expansion zones
where price is trading beyond its more ordinary session behavior
🔸 Level coloring modes
The script can visually color levels in different ways depending on what you want to study.
Available modes include:
By Hit Chance
By Move After
None
With hit-chance coloring, levels are shaded based on how frequently they are reached.
With move-after coloring, levels are shaded based on the magnitude of the typical move after price touches them.
This makes it easier to spot:
frequently reached levels
less common extension areas
levels associated with larger follow-through
🔸 Custom session support
You can build the framework using either:
a standard session timeframe such as 1D
a fully custom intraday session window
This makes the tool flexible for traders who want to study:
daily opens
custom market sessions
specific trading windows
🔸 Whole-number level emphasis
The script can optionally emphasize whole-number percentage distances so that major percentage thresholds stand out more clearly on the chart.
This can help when you want to quickly distinguish:
major percentage levels
minor intermediate levels
cleaner structural reference points
🔸 Reference price line
An optional draggable reference line lets you place a price directly onto a level and inspect the typical move after that level is hit.
This gives you a visual way to explore:
how levels behave after being reached
which zones tend to continue further
which levels show more limited follow-through
This feature is best viewed as exploratory context , not as a standalone signal.
🔸 Session range box
The script can also draw a box around the current session’s working range, helping frame the active expansion area as the session develops.
This gives additional context for:
the current session’s high-to-low development
where the grid sits relative to the active range
how much of the session’s expansion has already formed
🔹 How to read it
Each component provides a different layer of session information:
Session open → anchor point for the grid
Percentage levels → structured expansion distances from the open
Hit chance → how often a level gets reached across sessions
Move after hit → typical follow-through once a level is touched
Normal range → common vs unusual expansion territory
Reference line → exploratory view of post-hit behavior
🔹 Why this tool is useful
It gives you:
a structured way to study session expansion around the open
historical context for which distances are commonly reached
visibility into which extensions are relatively unusual
insight into what price typically does after contacting a level
a contextual framework for session movement analysis
🔹 Best use cases
studying how far sessions typically expand from the open
identifying common vs stretched extension zones
comparing likely and unlikely distance levels
adding structure to open-based session analysis
exploring how price tends to behave after touching key percentage levels
🔹 Important note
This tool is based on historical session behavior and percentage-distance tracking.
That means:
it is descriptive, not predictive certainty
results depend on the instrument and timeframe being analyzed
smaller level spacing creates more detail, but also more density
typical move-after-hit is informational and should not be treated too literally
🔹 Inputs you can customize
The script includes flexible controls such as:
custom session toggle
custom session time
session timeframe
level spacing percentage
normal range percentage
label detail level
label size
label side
show all stored levels
whole-number level emphasis
session range box display
level coloring mode
reference price line
Closing Notes
Session Levels IQ is built to shift the focus from simply asking where price is now to asking how far price has historically tended to travel from a session open, how often those levels are reached, and what usually happens after contact .
It helps turn session expansion into a more structured and measurable framework , so you can view open-based movement with more context than raw candles alone.
Thank you for checking it out and thank you PulseWire!
Indicator

Liquidity Reaction Market Context FrameworkDescription
Liquidity Reaction – Market Context Framework is a structured visual tool designed to provide traders with clear market context based on session behavior, time-based positioning, and key reference levels.
This script does not aim to generate signals. Instead, it builds a contextual framework that helps traders understand how price evolves across different trading sessions and how liquidity transitions occur throughout the day.
Core Concept
Markets do not move randomly — they evolve through time-based cycles, where each session contributes to liquidity creation, expansion, and rebalancing.
This indicator organizes that behavior into a unified structure, allowing traders to:
Identify where price is within the daily cycle
Understand how sessions interact with each other
Detect where liquidity is likely being formed or consumed
Track how price reacts to prior session ranges and reference levels
Components
1. Sessions (Day, Asia, London, New York)
Each session is represented as a dynamic range (high–low) that evolves in real time.
Purpose:
Define structural ranges
Highlight consolidation and expansion phases
Provide context for intraday positioning
2. Session Close–Open Relationship (Gap)
The script tracks the relationship between the previous reference close and the next session open.
Purpose:
Identify imbalance zones
Highlight potential rebalancing areas
Provide a key reference for intraday reactions
3. Time Zones (Background Context)
Background shading represents key trading windows in New York time.
Purpose:
Provide temporal orientation
Align price action with institutional trading hours
Improve session-based analysis
4. Extended Hours
Marks low-liquidity periods outside primary sessions.
Purpose:
Contextualize reduced participation
Identify transitions between active and inactive markets
5. SMA 200
A long-term moving average included as a structural reference.
Purpose:
Provide directional bias context
Help visualize broader market positioning
Why This Script Is Different
Unlike traditional indicators that focus on signals or isolated calculations, this script is built as a contextual framework.
It integrates multiple time-based elements into a single, coherent structure that reflects how markets actually operate:
Through sessions
Through time
Through liquidity transitions
How to Use
Use sessions to understand where price is developing structure
Observe how price behaves when entering or leaving a session
Use the gap as a reference for imbalance and potential reaction
Align execution with time zones rather than arbitrary signals
Use SMA 200 as a higher-level directional filter
Notes
This indicator is designed to be used directly on the main chart
For proper visualization, place it above in the object tree
Works best on intraday timeframes where session behavior is more relevant
Each component can be enabled or disabled and limited by timeframe
This script is intended for traders who prioritize context over signals, and who want to understand the structure behind price movement, not just its outcome. Indicator

NBSG_DayTradingSuiteAn all-in-one day trading overlay designed by a futures trader for futures traders. It consolidates the key levels, anchored VWAPs, session volume profiles, and structural references that intraday traders typically spread across 3-5 separate indicators into a single, configurable script.
Built and defaulted for CME futures (ES, MES, NQ, MNQ, and similar instruments), but the session times are fully adjustable in settings. Traders on equities, crypto, or forex can adapt the indicator to their instrument by configuring the session windows to match their market's electronic trading hours.
The default session times are set for a trader operating in US Central Time (Chicago time). If you trade in a different timezone, adjust the session inputs accordingly.
This indicator is not a signal generator. It plots structure so you can make your own decisions.
FEATURES
Multiple Anchored VWAPs
The indicator plots two independent session-anchored VWAPs, each with optional standard deviation bands:
Overnight VWAP (VWAP 1) anchors at 17:00 CT (CME session open) and accumulates across the entire futures trading day through 16:00 CT. It resets cleanly each session. Optional 1SD and 2SD bands with fill show the statistical envelope around the developing VWAP.
NY Session VWAP (VWAP 2) anchors at 08:30 CT (Regular Trading Hours open) and accumulates through 16:00 CT. It includes a leapfrog mechanic: when the new RTH session begins, the prior session's VWAP is preserved and continues to plot as "Prev NY VWAP," giving you a reference for how price relates to yesterday's value during overnight trading.
Prev NY VWAP: This is the previous day's NY Session VWAP, which continues accumulating through the overnight session after the NY VWAP resets at 08:30. It provides a critical structural reference, particularly during the premarket and early RTH, showing where the prior session's volume-weighted equilibrium sits relative to current price. Many traders use the relationship between current price, the active NY VWAP, and the Prev NY VWAP to gauge directional bias.
All VWAPs use separate source, color, and line size settings.
Higher Timeframe VWAPs
Optional Weekly and Monthly VWAP overlays provide broader context without cluttering the chart. Disabled by default.
Session Volume Profiles (SVP)
Volume is distributed across the bar's high-low range using a configurable tick-based bin size (default: 2 ticks). The script calculates and plots:
Current Session SVP: POC and Value Area (VAH/VAL) for the active session, updating in real time.
Prior Day SVP: POC and Value Area from the previous completed session. These levels carry forward as horizontal references.
Last Week SVP: POC and Value Area from the prior completed week.
Each profile can be displayed as POC Only or POC + VA. The Value Area percentage is configurable (default: 70%).
Static Reference Levels
Prior Day High/Low (PDH/PDL): Previous day's range boundaries.
Last Week High/Low (LWH/LWL): Previous week's range boundaries.
Previous Session Close (PSC): The prior day's closing price.
Premarket High/Low (PMH/PML): Dynamically tracked during the 18:00-08:30 premarket session.
Opening Range (ORH/ORL): The first 15 minutes of RTH (08:30-08:45), with optional fill.
All static levels are individually togglable with independent color and size controls.
Deadzone
A configurable time window (default: 11:00-13:00 CT) highlighted with a background fill and border lines. This marks the midday period where volume and follow-through typically thin out on equity index futures. The time window is adjustable in settings.
Bar Coloring
Optional bar coloring based on the close's relationship to the three primary VWAPs (Overnight, NY, Prev NY). Bars are colored bullish when above 2 of 3, bearish when below 2 of 3, and neutral otherwise. Disabled by default.
Display Modes
A master display mode toggle lets you switch between:
Advanced All-Level: Shows everything you have enabled, the full suite.
Simplified VWAP: Strips the chart down to just the Overnight VWAP, NY VWAP, Prev NY VWAP, and Opening Range. All volume profiles, static levels, and the deadzone are automatically hidden. Useful for cleaner charts or when you want to focus purely on VWAP structure.
Labels
Every plotted level gets a text label with optional price display, offset to the right of the current bar for readability. Labels can be globally toggled on/off.
HOW TO USE
1. Add the indicator to your chart on an intraday timeframe (1m-30m recommended). It is defaulted for CME futures but can be adapted to any instrument by adjusting the session time inputs.
2. The default session times are built for US Central Time (Chicago). If your chart uses a different timezone, adjust the session inputs in the settings to match your market's session boundaries.
3. The default configuration shows most levels. Start by reviewing what each level represents, then toggle off anything that creates noise for your specific approach.
4. For cleaner charts, switch to "Simplified VWAP" mode, which isolates the core VWAP structure and Opening Range only.
CONFIGURATION
All session times, colors, line sizes, and visibility toggles are individually configurable. The settings are organized into numbered groups for clarity:
1. Master Display Mode
2. Session Times
3. NY VWAP Settings
4. Overnight VWAP Settings
5. Opening Range
6. Volume Profiles (SVP)
7. Static Levels
8. Higher Timeframe VWAPs
9. Deadzone
10. Bar Coloring
11. Labels
LIMITATIONS
The default session times are configured for CME futures with the standard 17:00-16:00 CT (close enough) session structure. If you are using this on equities, crypto, forex, or other instruments, you will need to adjust the session time inputs to match your market's electronic trading hours. The indicator will work on any instrument, but the session boundaries must be set correctly for accurate VWAP anchoring and level calculation.
This is a feature-rich script with multiple VWAPs, volume profiles, and level calculations running simultaneously. Tradingview handles it well the vast majority of the time, but on occasion the script may load slowly or display incompletely. If levels appear missing or the indicator looks off, a simple page refresh will typically resolve it.
The session volume profile uses a simplified volume distribution method (volume is evenly distributed across the bar's high-low range in tick-based bins). This is an approximation, not a tick-level volume profile. Accuracy improves on lower timeframes where bars have smaller ranges.
The Overnight VWAP session detection uses an hour-based reset (detecting when the bar's hour enters 17:00 in exchange time) rather than PineScript's built-in session boundary detection. This is intentional: on CME futures, the VWAP session (1700-1600) matches the instrument's native session, which prevents the standard session boundary method from firing correctly.
The deadzone time window relies on your chart's timezone setting. The default of 1100-1300 assumes US Central. Adjust if your chart uses a different timezone.
NOTES
This script is original work, but it stands on the shoulders of giants. The concepts and ideas behind it draw from numerous traders, educators, and open-source contributors who have freely shared their knowledge with the trading community. VWAP, volume profile, session levels, and opening range are not new ideas. What this script attempts to do is bring them together in a thoughtful, configurable way that reflects how an active futures day trader actually uses these tools in practice.
I built this for my own trading first. I am sharing it as open source because the open-source community on Tradingview gave me the foundation to learn, and this is my way of giving back what I have been given.
This is a structural tool, not a trading system. It does not generate buy/sell signals, alerts, or backtest results. Use it as a framework for building your own context around price action.
It's all risky, so you may as well make the bet.
Indicator

Institutional Zone Mapper [JOAT]Institutional Zone Mapper
Introduction
Institutional Zone Mapper is an open-source overlay indicator that detects swing-pivot order blocks — the last impulsive candle preceding a significant price displacement — and renders them as persistent box-based zones with session-color-coded borders, a four-component strength score from 0 to 10, touch-count tracking, and a configurable mitigation lifecycle. The indicator identifies the candle immediately before a confirmed swing pivot, verifies that a meaningful ATR-scaled displacement followed, and places a zone around that candle's midpoint. Zones are born with a strength score derived from displacement magnitude, session context, age, and zone height — allowing traders to instantly distinguish premium, high-conviction zones from weak, low-probability ones.
The core problem this indicator solves is that most order block tools place zones mechanically without quality filtering, flooding the chart with dozens of marginal levels that have little predictive value. The IZM's four-component scoring system ensures only zones with meaningful institutional characteristics survive on the chart. A minimum strength filter removes everything below the user-defined threshold, and the mitigation system automatically removes, stops extending, or fades zones that have been closed through — maintaining a clean, current map of active supply and demand.
Core Concepts
1. Swing Pivot Detection
The indicator uses ta.pivothigh and ta.pivotlow with a configurable swing length. A pivot high confirmed at bar_index means a price high existed swingLen bars ago that was higher than the swingLen bars on either side of it. When a pivot low is confirmed, the indicator looks back through a configurable candle lookback window to find the last bearish close candle before that pivot — this is the bullish order block candidate. The displacement check ensures the move from that candle to the pivot was at least ATR * dispMult, filtering out low-momentum pivots that are unlikely to represent genuine institutional accumulation.
2. Four-Component Strength Scoring
Each zone receives a score between 0 and 10 from four additive components:
Displacement Score (0-3): The ratio of the displacement to ATR is binned — larger moves score higher, capped at 3.0
Session Score (0-2): London and NY session zones score 2.0, Asia zones score 1.0, off-hours score 0.5
Age Score (0-2): Freshly formed zones (under 30 bars) score 2.0; zones over 150 bars old score 0.5
Zone Height Score (0-3): Zones whose ATR-normalized height falls in a sweet spot (0.5 to 2x ATR) score 3.0 — too tight or too wide zones score lower
The minimum strength filter (default 3.0/10) removes zones that fail to meet the threshold, keeping the chart uncluttered.
3. Session Classification and Color-Coded Borders
Each zone's birth session is stored and used to color its border: London zones receive a blue border (#60a5fa), NY zones a pink border (#f472b6), Asia zones a green border (#34d399), and off-hours zones a gray border (#64748b). The session is detected from the candle's timestamp using UTC hours, mapping to standard London (08:00-17:00 UTC), New York (13:00-22:00 UTC), and Asia (00:00-09:00 UTC) windows. This allows traders to immediately gauge which market session was active when institutional activity was registered.
4. Mitigation Lifecycle
When price closes through a zone — below the bottom of a bull OB, or above the top of a bear OB — the zone is considered mitigated. Three mitigation behaviors are available:
Delete: Zone is removed entirely from the chart
Stop Extending: Zone stops extending to the right and fades to near-transparent (zone box is fixed at the current bar)
Keep: Zone remains but fades visually to indicate mitigation
Touch counting is separate from mitigation — each confirmed close inside the zone increments the touch count, and the border progressively darkens with each retest to communicate how many times price has interacted with the level.
5. Proximity Detection
A configurable ATR buffer defines a proximity zone above each bull OB and below each bear OB. When price enters this buffer without yet entering the zone, the dashboard shows "NEAR" and proximity diamonds appear on the chart. This gives an early warning that price is approaching an active level before the actual retest occurs.
IZM showing the proximity diamond markers appearing as price approaches a bull OB from above, the info label updating with live age and touch count, and a faded zone after mitigation with the Stop Extending behavior active
Features
Swing Pivot Order Block Detection: Locates the last impulsive candle before a confirmed swing high or low with ATR-scaled displacement verification
Four-Component Strength Score (0-10): Displacement, session, age, and zone height combine into a single quality score — only zones above the minimum threshold are displayed
Session-Colored Borders: London blue / NY pink / Asia green / Off gray borders identify which session birthed each zone at a glance
Box-Based Zone Rendering: Solid box fills with session-colored borders — substantially more visible than linefill-based zone systems
Touch Count Darkening: Zone border opacity increases with each confirmed retest, visually communicating how frequently price has revisited the level
Three Mitigation Behaviors: Keep, Stop Extending, or Delete — each with optional fade-on-mitigation toggle
Proximity Markers and Dashboard State: Diamond markers and NEAR/ACTIVE dashboard state when price enters or approaches active zones
Info Labels: Dynamic text labels at zone right edge showing type, strength score, session, age in bars, zone height in pips/ticks, and touch count
Position Filter: Optional toggle to show only bull OBs below current price and bear OBs above, removing zones that are contextually irrelevant to the current price location
Max Active OBs: Oldest zones are trimmed when the array exceeds the configured maximum, keeping memory usage bounded
9-Row Dashboard: Active bull/bear OB counts, touch states (ACTIVE / NEAR), current session, ATR, minimum displacement distance, minimum strength threshold
6 Alertconditions: Zone entry, proximity approach, and new zone creation alerts for both bull and bear sides
Input Parameters
Order Block Detection:
Swing Length: Pivot confirmation lookback — higher values detect more significant, less frequent pivots (default 7)
OB Candle Lookback: How many bars back to search for the qualifying order block candle (default 20)
Displacement ATR Mult: Minimum displacement from OB candle to pivot, as a multiple of ATR (default 1.3)
Max Active OBs / Side: Maximum concurrent zones per direction before oldest are trimmed (default 5)
Min Strength Filter: Minimum strength score required to display a zone (default 3.0/10)
Zone Settings:
Zone ATR Width: Half the zone height expressed as ATR multiplier — sets the vertical thickness of zones (default 0.75)
Proximity Buffer (ATR): Distance above/below zone edge that activates the NEAR state (default 0.25)
Position Filter: When enabled, only shows zones on the correct side of current price (default off)
Mitigation:
On Mitigation: Keep / Stop Extending / Delete (default Stop Extending)
Fade On Mitigation: Whether to reduce zone opacity when mitigated (default on)
How to Use This Indicator
Primary Setup — Zone Retest Entry:
Look for price returning to an active zone (box fill area) after displacement away from it. When the dashboard shows ACTIVE and the zone has a high strength score (7+), this represents a high-quality retest opportunity. Enter in the zone's direction with a stop beyond the opposite edge of the box.
Reading the Strength Score:
Zones scoring 7-10 should be treated as premium levels — the displacement was large, the session was active, the zone is fresh, and the height is optimal. Zones scoring 3-5 are marginal. Use the minimum filter to remove low-quality zones entirely if the chart becomes cluttered.
Session Context:
London and NY zones (blue and pink borders) represent the most liquid, highest-participation session activity. An Asia-born zone that has not been retested by London or NY open is lower priority. A NY-born zone returning to price during the following London session is a high-context setup.
Proximity Workflow:
When a proximity diamond appears, price is approaching but has not entered a zone. This is the time to prepare your entry plan — set alerts using the Approaching alerts, watch for confirmation signals on a lower timeframe, and be ready when the NEAR state transitions to ACTIVE.
Indicator Limitations
Order block detection requires a confirmed swing pivot — pivot confirmation in Pine Script v6 is delayed by swingLen bars, meaning zones are created with a bar offset relative to the actual pivot price action
The displacement check uses the current-bar ATR, not the ATR at the time the zone was created — on rapidly expanding volatility environments this can temporarily raise the displacement threshold and filter out recent zones
The four-component scoring system uses static bin boundaries. Markets with unusually large or small ATR ranges may require tuning the displacement multiplier and zone width parameters to produce well-calibrated scores
Touch count increments on any confirmed close inside the zone, including the candle that originally created it. The first touch is therefore always the creation bar itself; meaningful retest context begins at touch count 2+
The mitigation logic detects a close through the zone edge, not an intrabar wick. Strong impulse candles that close back inside the zone will not trigger mitigation despite briefly penetrating the level
Originality Statement
This indicator is original in its four-component strength scoring system, session-colored border architecture, and touch-count border darkening feedback mechanism. The publication is justified because:
The four-component strength score (displacement, session, age, zone height) produces a quantitative quality ranking that is not present in standard order block tools, allowing the user to immediately identify premium versus marginal zones without manual evaluation
Session-colored borders encode institutional session context directly into the zone visual without requiring the user to maintain a separate session indicator, creating a self-contained contextual map
Touch-count border darkening provides a progressive visual feedback loop that communicates zone interaction history — the darker the border, the more times price has revisited the level
The proximity buffer and NEAR/ACTIVE dashboard state create a two-stage alert system that gives traders preparation time before an actual zone retest, reducing late entries
The mitigation lifecycle with fade-on-mitigation is a novel approach to zone management that preserves chart history while clearly delineating which zones remain actionable
Disclaimer
This indicator is provided for educational and informational purposes only and does not constitute financial advice or a recommendation to buy or sell any financial instrument. Past performance of any pattern or signal does not guarantee future results. All trading involves substantial risk. Always use proper risk management and conduct your own independent analysis.
— Made with passion by officialjackofalltrades
Indicator
