[ A L P H A X ] Order Blocks Institutional Supply & Demand ZoneAlphaX Order Blocks – Institutional Supply & Demand Zone Intelligence, Strength Scoring & Flip Detection
AlphaX Order Blocks is a professional-grade supply and demand zone detection system built on a proprietary multi-factor zone strength scoring engine. It identifies institutional order block zones where smart money has left footprints, tracks zone freshness through multi-touch degradation, detects flip zones when broken levels reverse polarity, and delivers confidence-scored entry signals at the highest-probability reaction points. Designed for traders who want to see where the institutions are positioned on instruments like XAUUSD, indices, forex majors, and crypto.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔬 The Order Block Engine — How It Works
At the core of AlphaX Order Blocks is an institutional zone detection algorithm that identifies price levels where aggressive buying or selling originated. Unlike simple support and resistance lines, these zones represent areas where large orders were placed — and where unfilled orders may still be waiting.
The detection process follows three steps:
Step 1 — Impulse Move Detection
The engine scans for consecutive same-direction candles (configurable from 2 to 5) that confirm a strong directional impulse
At least one candle in the sequence must have above-average volume (measured against a configurable Volume SMA)
This combination of directional conviction plus volume commitment identifies moves driven by institutional participation, not retail noise
Step 2 — Origin Candle Identification
Once an impulse is detected, the engine looks back up to 6 bars (configurable) for the origin candle — the opposite-color candle where the move started
For supply zones, this is the last bullish candle before the bearish impulse — the level where sellers overwhelmed buyers
For demand zones, this is the last bearish candle before the bullish impulse — the level where buyers overwhelmed sellers
The origin candle's high and low define the zone boundaries, expanded by an ATR-based padding for robustness
Step 3 — Volume Delta Calculation
During the origin-to-impulse sequence, the engine calculates the net volume delta — total buying volume minus total selling volume
This delta is displayed on each zone and used in the strength scoring system
A large negative delta on a supply zone confirms strong selling pressure at that level
A large positive delta on a demand zone confirms strong buying pressure at that level
Fresh zones appear with bold borders and bright colors. As they get tested, they visually degrade — giving you an instant read on zone quality without checking any numbers.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📊 Six Core Features
AlphaX Order Blocks combines six independent analysis layers into a single cohesive system:
1 ─ Supply Zones (Red Boxes)
Supply zones mark price levels where institutional selling originated. Each zone box displays:
Tier Rating — S, A, B, or C based on the 6-factor strength score
Touch Count — How many times price has tested this zone (×0, ×1, ×2, etc.)
Volume Delta — Net selling pressure at the zone origin
Strength Percentage — The composite score from 0 to 100
Visual styling degrades automatically as zones weaken:
Fresh (0 touches) — Bold solid border, bright color, full opacity
Tested (1 touch) — Solid border, slightly reduced opacity
Multi-tested (2+ touches) — Dashed border, reduced opacity
Weak (max touches reached) — Dotted border, heavily faded — zone is nearly exhausted
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
2 ─ Demand Zones (Green Boxes)
Demand zones following the same tier/touch/delta/strength display format
Demand zones mark price levels where institutional buying originated. They follow the identical visual degradation system as supply zones but in the green color family.
Green Bold Box — Fresh, untested demand zone with highest reaction probability
Green Dashed Box — Tested zone, still valid but weakening
Green Dotted Box — Heavily tested zone, likely to break on next visit
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3 ─ Flip Zone Detection (Purple Boxes)
One of the most powerful concepts in institutional trading is polarity reversal — when a broken support level becomes resistance, or a broken resistance level becomes support. AlphaX Order Blocks automates this:
When price closes above a supply zone, the zone is deleted and a new demand zone is created at the same level with a purple color
When price closes below a demand zone, the zone is deleted and a new supply zone is created at the same level with a purple color
Flip zones receive a +10 point bonus in the strength scoring system because institutional traders frequently use broken levels as new entry points
This feature can be toggled on/off independently
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
4 ─ Confidence-Scored Entry Signals (▲ / ▼)
Entry signal labels with S/A/B tier classification and strength percentage
When price enters a high-quality zone and produces a confirmation candle, the signal engine fires a scored entry:
▲ Green Label (Demand Signal) — Dark text on green background. Price entered a demand zone and closed with a bullish candle.
▼ Red Label (Supply Signal) — White text on red background. Price entered a supply zone and closed with a bearish candle.
Signals only fire when the zone's strength score meets your configured minimum threshold (default 40%). This prevents signals at weak, over-tested zones.
Each signal is classified into tiers:
S-Tier (75%+) — Highest probability. Fresh zone, high volume, strong departure, EMA confluence.
A-Tier (55–74%) — High probability. Most factors aligned.
B-Tier (40–54%) — Moderate probability. Basic conditions met.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
5 ─ Risk/Reward Projection
Dotted projection lines from entry to nearest opposite zone with R:R ratio displayed
When an entry signal fires, the system automatically projects a take-profit target to the nearest opposite zone :
Demand signal → Target projects to the nearest supply zone above
Supply signal → Target projects to the nearest demand zone below
The R:R ratio is calculated and displayed (e.g., "TP 2.3R")
This gives you an instant read on whether the trade offers sufficient reward relative to risk
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
6 ─ Proximity Warnings
Orange warning label appearing when price approaches a zone — time to prepare
The proximity engine continuously monitors the distance between current price and all active zones. When price comes within the configurable ATR distance of a zone:
An orange ⚠ warning label appears showing the zone type and distance percentage
This gives you advance notice to prepare for a potential reaction — set alerts, tighten stops, or prepare entries
Works for both supply zones above and demand zones below
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🧠 6-Factor Zone Strength Scoring
Every zone is continuously scored from 0 to 100 based on six independent factors. This score determines the tier rating, visual styling, and signal eligibility.
Freshness — Untested Zones Score Highest (up to 25 points)
0 touches = 25 points — Fresh zone, never tested, highest probability
1 touch = 18 points — Tested once, still strong
2 touches = 10 points — Multi-tested, weakening
3 touches = 4 points — Nearly exhausted
4+ touches = 0 points — Weak zone, likely to break
Volume at Origin (up to 20 points)
Compares the volume at the origin candle to the volume SMA
Volume ratio > 3.0× = 20 points (institutional-grade volume)
Volume ratio > 2.0× = 16 points
Volume ratio > 1.5× = 12 points
Volume ratio > 1.0× = 7 points (above average)
Departure Velocity (up to 20 points)
Measures how aggressively price left the zone (in ATR units)
Fast departures indicate strong institutional commitment — they want to get filled and move price away quickly
Velocity > 3 ATR = 20 points
Velocity > 2 ATR = 15 points
Velocity > 1 ATR = 10 points
Zone Age (up to 15 points)
Younger zones score higher — they are more relevant to current market conditions
Under 20 bars old = 15 points
Under 50 bars old = 12 points
Under 100 bars old = 8 points
Under 200 bars old = 4 points
Over 200 bars old = 1 point
EMA Confluence (up to 10 points)
Demand zones score higher when price is below the 200 EMA (buying into weakness)
Supply zones score higher when price is above the 200 EMA (selling into strength)
This adds structural trend context to zone quality
Flip Zone Bonus (up to 10 points)
Zones created from polarity reversal receive a flat 10-point bonus
Broken support becoming resistance (or vice versa) is one of the most reliable patterns in institutional trading
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📐 Dashboard Intelligence
A comprehensive AlphaX-branded dashboard provides real-time zone analytics organized into four sections:
Zone Inventory
Active supply and demand zone counts
Breakdown by status: F (Fresh), T (Tested), W (Weak)
Total flip zone count
Market Bias
Strength-weighted zone bias — shows whether demand or supply zones dominate the current price area
EMA trend direction (Strong Bull / Bull / Bear / Strong Bear / Cross)
RSI with zone classification (OB / OS / HIGH / LOW / MID)
Nearest Zones
Nearest supply zone above current price — with price level, strength score, and distance percentage
Nearest demand zone below current price — with price level, strength score, and distance percentage
Position indicator — shows whether price is closer to supply or demand
Signal Status
Last signal type and how many bars ago it fired
Current volume status relative to the SMA (Spike / High / Normal / Dry)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🚀 How to Trade with AlphaX Order Blocks — Step by Step
Step 1 — Identify the Zone Landscape
Look at the chart for active supply (red) and demand (green) zones
Check the Dashboard: Which zones are fresh (F)? Which are tested (T)?
Note any purple flip zones — these are high-probability levels
Step 2 — Wait for Price to Approach a Zone
When the ⚠ proximity warning appears, prepare for a potential reaction
Check the zone's tier rating — S and A tier zones have the highest reaction probability
Ignore C-tier zones unless other confluence is present
Complete trade flow: Zone detection → Proximity warning → Price enters zone → Entry signal → Risk/Reward projection
Step 3 — Enter on Confirmed Signal
Wait for a scored entry label (▲ or ▼) to appear
Confirm the tier — S-Tier and A-Tier signals have the highest probability
Place your stop loss beyond the opposite side of the zone
Step 4 — Set Target Using R:R Projection
The system automatically projects a dotted line to the nearest opposite zone
The R:R ratio is displayed — only take trades offering at least 1.5R or better
Use the projected target as your primary take-profit level
Step 5 — Monitor Zone Degradation
If you are in a trade and the target zone changes from solid to dashed border, it may break — consider tightening your take-profit
If your entry zone starts getting tested from the wrong side, the thesis may be failing — consider a stop adjustment
Step 6 — Understand Zone Breaks
When a zone breaks (candle closes through it), the zone is automatically deleted
If flip detection is enabled, a new opposite zone appears at the same level
Zone breaks often indicate a change in institutional bias — respect them
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ When NOT to Trade — Zone Quality Filters
Not all zones are created equal. AlphaX Order Blocks gives you clear visual and numerical cues to avoid low-quality setups:
Avoid these conditions:
C-Tier zones only — If no S, A, or B tier zones are near price, the area lacks institutional interest
All zones heavily tested — If every zone shows ×3 or ×4 touches with dashed/dotted borders, the levels are exhausted
Dashboard shows "BALANCED" bias — When supply and demand strength are equal, there is no clear institutional edge
Volume shows "DRY" — Low volume environments produce unreliable zone reactions
Multiple flip zones clustered — Heavy flip activity indicates a choppy, indecisive market where zones break frequently
What to do:
Wait for new fresh zones to form with strong volume
Look for zones where the departure velocity was high (the market left aggressively)
Switch to a higher timeframe to find larger, more significant zones
Only trade zones that align with the EMA trend direction
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚡ Key Features
🔬 Institutional zone detection using consecutive impulse candles + volume confirmation
🏗 6-factor zone strength scoring (freshness, volume, velocity, age, EMA, flip)
🏷 S/A/B/C tier zone classification with readable labels and strength percentages
👆 Multi-touch tracking with automatic visual degradation (solid → dashed → dotted → faded)
🔄 Automatic flip zone detection — broken supply becomes demand and vice versa (purple zones)
▲▼ Confidence-scored entry signals at high-quality zone reactions
📐 Risk/Reward auto-projection to nearest opposite zone with R:R ratio
⚠ Proximity warnings when price approaches active zones
📊 EMA confluence scoring — zones aligned with trend structure score higher
📈 Comprehensive AlphaX-branded dashboard — zone inventory, market bias, nearest zones, signal status
🎨 Cohesive triple-tone color theme — Green for demand, Red for supply, Purple for flip zones
🔔 15+ alert conditions — zone detection, touches, signals by tier, and combined
⚙ Fully configurable — detection sensitivity, zone behavior, scoring weights, and all visuals
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚙ Settings Reference
Zone Detection
Consecutive Candles Required — Number of same-direction candles for impulse detection (default: 3)
Origin Candle Lookback — How far back to search for the origin candle (default: 6)
Volume Threshold Multiplier — Volume must exceed SMA × this value (default: 1.0)
Volume SMA Length — Baseline period for volume comparison (default: 50)
Zone Height (ATR Multiple) — Controls the vertical thickness of zone boxes (default: 1.5)
Max Active Zones Per Side — Cap on simultaneous supply and demand zones (default: 8)
Zone Cooldown — Minimum bars between new zones of the same type (default: 10)
Zone Behavior
Max Touches Before Weak — After this many tests, zone is visually degraded (default: 4)
Require Close to Break Zone — Prevents wick-through fake breaks (default: enabled)
Detect Flip Zones — Enable/disable polarity reversal detection (default: enabled)
Confluence
Fast EMA Period — Short-term trend reference (default: 21)
Slow EMA Period — Long-term structural reference (default: 200)
Show EMAs — Toggle EMA plot visibility
Use EMA Confluence in Scoring — Add/remove EMA from strength calculation
Signals
Show Entry Signals — Toggle entry labels
Min Zone Strength for Signal — Minimum score required (default: 40%)
Signal Cooldown — Minimum bars between signals (default: 5)
Show Proximity Warnings — Toggle approach alerts
Proximity Distance — How close price must be to trigger warning (default: 1.5 ATR)
Risk/Reward
Show Risk/Reward Projection — Toggle the dotted target line and R:R label
Dashboard
Show Dashboard — Toggle the information panel
Position — Top Left, Top Right, Bottom Left, Bottom Right
Dashboard Text Size — Tiny, Small, Normal
Colors
Bull / Demand Primary / Bright / Dim — Green family for demand zones
Bear / Supply Primary / Bright / Dim — Red family for supply zones
Flip Zone — Purple for polarity-reversed zones
Proximity Warning — Orange for approach alerts
Neutral / Neutral Light — Gray for structural elements
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔔 Alert Conditions
New Supply Zone Detected — Fires when a fresh supply zone is created
New Demand Zone Detected — Fires when a fresh demand zone is created
Supply Zone Touched — Fires when price enters a supply zone
Demand Zone Touched — Fires when price enters a demand zone
S/A/B-Tier Demand Signal — Confidence-based demand entry alerts
S/A/B-Tier Supply Signal — Confidence-based supply entry alerts
Any Demand / Supply / Zone Signal — Combined alert conditions
All alert messages include {{ticker}} and {{interval}} placeholders for clean webhook integration.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🎯 Default Settings — Optimized For
The default configuration is tuned for XAUUSD (Gold), major forex pairs, and indices on the 5-minute to 1-hour timeframes :
3 consecutive candles strikes the balance between sensitivity and reliability
Volume multiplier at 1.0× captures most institutional moves without over-filtering
Zone cooldown at 10 bars prevents cluster creation in volatile periods
Max 4 touches before weak aligns with institutional order absorption theory
EMA confluence enabled for trend-aligned zone scoring
For other instruments or timeframes, adjust:
Higher timeframes (4H, Daily) — Increase Origin Lookback to 8–10, increase Zone Height to 2.0+ ATR
Scalping (1m, 5m) — Reduce Consecutive Candles to 2, reduce Cooldown to 5–7 bars
Crypto — Increase Zone Height to 2.0–3.0 ATR (higher volatility), increase Volume Multiplier to 1.5×
Forex majors — Use defaults, optionally reduce Volume Multiplier to 0.8× for pairs with lower tick volume
Cleaner zones — Increase Consecutive Candles to 4–5, increase Volume Multiplier to 1.5×
More zones — Decrease Consecutive Candles to 2, decrease Volume Multiplier to 0.7×, increase Max Zones
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
👥 Who This Is For
🏛 Institutional/Smart Money Traders — Designed to identify where large orders originated and where unfilled orders may remain
📐 Supply & Demand Traders — Automated zone detection with strength scoring replaces manual drawing
🥇 Gold & Forex Traders — Tuned for assets with clear institutional participation patterns
🧠 Systematic Traders — The 6-factor scoring system provides a quantitative framework for zone quality assessment
📊 Breakout Traders — Flip zone detection automatically identifies broken levels as new opportunity zones
📈 Traders who value clean charts — No clutter. Zones auto-degrade and auto-remove. Only relevant levels remain.
⚠ Traders who struggle with zone selection — The tier system physically tells you which zones are worth trading and which to ignore
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📝 Notes
All zone detections are confirmed on bar close — zones do not repaint or move after creation
Zone break confirmation uses candle close by default (not wicks) to prevent fake-outs — this can be toggled off for aggressive trading
Flip zones inherit a reduced departure velocity (70% of original) to account for diminished institutional interest at reversed levels
Volume delta uses candle direction (close vs open) as a proxy for buy/sell pressure — this is an approximation, not true order flow
Dashboard updates on the last bar only for performance optimization
Maximum 500 boxes, 500 labels, and 500 lines are used — on very low timeframes with extended history, oldest drawings may be automatically removed by PulseWire's rendering limits
Overlapping zone prevention runs at creation time — if a new zone would overlap an existing one of the same type, it is not created
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
⚠ Disclaimer
This indicator is a technical analysis and visualization tool intended for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any financial instrument. All signals and zone detections are generated from historical and real-time price data using mathematical calculations — their accuracy or profitability is not guaranteed. Supply and demand zones represent areas of historical interest, not guaranteed future reaction points. Past zone behavior does not guarantee future price reactions. Always conduct your own analysis, use proper risk management, and consult a licensed financial advisor before making any trading decisions. The author accepts no responsibility for any losses incurred from the use of this indicator.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Built for traders who demand clarity, confidence, and precision from their charts. Indicator

DeltaPulse Wave [ChartPrime]🔶 OVERVIEW
DeltaPulse Wave is a high-contrast orderflow oscillator that visualizes institutional conviction and identifies market absorption through standardized Volume Delta analysis. By normalizing the net difference between aggressive buying and selling into a readable wave, this tool allows traders to spot trend exhaustion and high-probability reversals before they appear in the price action.
The indicator focuses on the relationship between price structure and volume delta, featuring automated divergence detection that connects price peaks to the underlying volume flow.
• Standardized Relative Delta Strength (RDS)
• NEW: Integrated Status Dashboard (Trend, Value, & Last Signal)
• NEW: On-Chart "Bull/Bear" Signal Triangles (force_overlay)
• Structural Divergence Detection (Price HH vs. Wave LH)
• Adjustable OB/OS Volatility Thresholds
• Price Chart & Oscillator Sync Lines
🔶 CORE CONCEPT — RELATIVE DELTA
Standard cumulative delta indicators often run off the chart or reset at arbitrary times. DeltaPulse solves this by normalizing the Delta into a fixed range (-50 to +50).
• Surge Intensity: The gradient fill expands as volume conviction increases, highlighting where "Smart Money" is most active.
• Neutral Equilibrium: The wave oscillates around a zero baseline, marking the shift between aggressive buyer and seller control.
🔶 INTEGRATED DASHBOARD
The script now features a customizable dashboard that provides real-time analytics without cluttering your workspace:
Current Wave: Tracks the exact RDS value in real-time.
Trend Status: Automatically identifies the prevailing market bias based on the zero-line crossover.
Last Divergence: Keeps a record of the most recent signal (Bullish or Bearish) for quick reference.
🔶 ADVANCED DIVERGENCES & MARKERS
The oscillator includes a sophisticated divergence engine that connects structural peaks and troughs.
On-Chart Labels: High-visibility triangles with "Bull" and "Bear" text are plotted directly on price bars (using force_overlay ), ensuring you never miss a signal while focusing on price action.
Filtering Logic: Only divergences with a minimum 5-bar gap are flagged, ensuring that only significant market shifts are identified.
Sync Lines: Solid lines are drawn on both the Price Chart and the Oscillator, making it easy to see when price is being "pushed" higher on lower volume (Absorption).
🔶 HOW TO USE
Absorption Reversals: Look for a Bearish Divergence (Red Triangle) at a major resistance zone. This signals that aggressive buying is decreasing even as price attempts to climb higher.
Trend Strength: A healthy trend should be accompanied by the wave holding above the OB Threshold (25) for bullish runs or below the OS Threshold (-25) for bearish runs. Check the Dashboard to confirm the "Bullish/Bearish" trend state.
Snap-Back Trades: When the wave reaches extreme levels (+/- 40), it signals an over-extension that often results in a mean-reversion move toward the zero baseline.
🔶 CONCLUSION
DeltaPulse Wave reveals the "hidden fuel" of every market move. By filtering out minor fluctuations and providing both an on-chart signal system and a data-rich dashboard, it provides traders with a reliable tool for identifying institutional participation and trend exhaustion.
Indicator

Vestige Liquidity Terrain [JOAT]Vestige Liquidity Terrain
Introduction
The Vestige Liquidity Terrain is an open-source liquidity analysis indicator built in Pine Script v6. It detects, scores, and tracks liquidity zones — price levels where resting stop orders and limit orders tend to cluster — using pivot-based detection, volume-weighted intensity, a multi-factor scoring system, sweep tracking, and trade planning overlays. The indicator identifies where liquidity exists, how strong each zone is, whether it has been swept, and which zones are the most probable targets for price to reach next.
Liquidity is the fuel that moves markets. Institutional traders need liquidity to fill large orders, and they often engineer price moves toward areas where stop orders are concentrated. Understanding where liquidity sits, how fresh it is, and whether it has confluence with key levels gives traders a significant edge in anticipating where price is likely to travel.
Why This Indicator Exists
Most liquidity zone indicators simply draw boxes at swing highs and lows. They treat all zones equally and provide no context about which zones matter most. This indicator goes further:
Pivot-Based Zone Detection: Uses configurable left/right pivot bars to identify swing highs and lows where resting orders accumulate. Zones are padded by a tick-based distance to account for the cluster of stops around a level.
Volume-Weighted Intensity: Each zone's creation is filtered by normalized volume. Only zones formed during meaningful volume activity are tracked, filtering out noise from thin-market pivots.
Zone Merging: When a new pivot forms within a configurable tick distance of an existing zone, the zones are merged rather than stacked. This prevents redundant zones and reflects the reality that nearby levels form a single liquidity pool.
Multi-Factor Scoring (0-100): Each zone receives a dynamic score based on touches, freshness, confluence with key levels, reaction speed, session alignment, and regime context. This score determines visual prominence and whether the zone qualifies as a trade planning target.
Sweep Tracking: When price sweeps through a zone, the event is recorded. Swept zones receive a score penalty because their liquidity has been partially consumed.
Trade Planning Targets: The nearest high-scoring zones above and below current price are highlighted as potential targets, with dashed lines extending forward and score labels.
Zone Scoring System
The scoring system is what separates this indicator from basic liquidity zone tools. Each zone's score is computed from multiple factors:
Touch Score (max 60): Each time price touches a zone without sweeping it, the zone gains 12 points. More touches mean more orders have accumulated at that level. Capped at 60 to prevent over-weighting.
Freshness (max 40): Newer zones score higher. The freshness component starts at 40 and decays by 0.8 points per bar of age. Old, stale zones that have not been tested lose relevance.
Confluence (max 40): Proximity to key institutional levels adds 10 points each. The indicator checks confluence with Prior Day High, Prior Day Low, Prior Week High, Prior Week Low, VWAP, Opening Range High, and Opening Range Low. A zone that aligns with multiple key levels is significantly more important.
Reaction Speed (max 22): The ratio of fast reactions (price bouncing within 2 bars of touching the zone) to total reactions. Zones that produce quick, sharp reactions are more likely to hold in the future.
Session Alignment: The ratio of RTH (Regular Trading Hours) touches to overnight touches modifies the score. Zones tested during high-liquidity sessions carry more weight.
Score modifiers are then applied:
Recently swept zones receive a 0.55x multiplier — their liquidity is partially consumed
Midday zones without confluence receive a 0.60x penalty — low-conviction levels
Open Drive zones with few touches receive a 0.75x penalty — too early to confirm
Power Hour zones with confluence receive a 1.10x boost — high-conviction late-session levels
Trend-aligned zones receive a 1.05x boost
Mean-reversion zones without confluence receive a 0.70x penalty
Regime Detection
The indicator includes its own regime detection engine based on VWAP slope analysis:
Trend Up: VWAP slope exceeds the threshold AND price is at or above VWAP — directional momentum is present
Trend Down: VWAP slope is below the negative threshold AND price is at or below VWAP
Mean Reversion: VWAP slope is flat (within threshold) AND price is within a configurable band of VWAP — range-bound conditions
Mixed: Conditions do not clearly fit any category
The regime state feeds into the zone scoring modifiers. In a trending regime, zones aligned with the trend direction receive a boost. In mean-reversion conditions, zones without confluence are penalized because they are less likely to produce clean reactions.
A confidence percentage is calculated for each regime classification, giving traders a sense of how clearly the market fits the detected state.
Sweep Detection and Classification
When price moves through a liquidity zone, the indicator records a sweep event:
The sweep bar and price are stored for each zone
A "SWEEP" label is placed on the chart with configurable display modes (Off, First Only, Recent Only)
Swept zones receive a significant score penalty (0.55x multiplier)
A cooldown prevents multiple sweep labels from stacking on adjacent bars
The sweep price is tracked separately from the zone price, allowing analysis of how far price extended beyond the zone
Sweeps are important because they represent liquidity being consumed. A zone that has been swept once still has some residual significance (remaining orders), but its primary liquidity pool has been tapped.
Trade Planning Overlays
The indicator identifies the nearest high-scoring zones above and below current price as potential targets:
Only zones with scores above a configurable minimum (default 60) qualify as targets
Target lines are drawn as dashed lines extending forward by a configurable number of bars
Each target line includes a label showing the zone's score percentage
This gives traders a clear view of where the nearest significant liquidity sits in each direction
Visual Design
The indicator uses a "Deep Ocean" color theme — bioluminescent aqua, deep ocean blue, coral orange, tidal cyan, kelp green, and pearl white on an abyssal dark background:
Zone Boxes: Color reflects directional expectation (continuation vs rejection blend). Opacity adapts to distance from price, age, and score — nearby fresh high-score zones are more visible, distant old low-score zones fade.
Border Width: Score-based — zones scoring 80+ get 3px borders, 50+ get 2px, others get 1px
Sweep Labels: Coral-colored "SWEEP" labels at the sweep location
Target Lines: Dashed lines in bioluminescent aqua (above) and coral (below) with score labels
Key Levels: PDH/PDL, PWH/PWL drawn as reference lines with theme-aware colors
Opening Range: ORH/ORL lines marking the first N minutes of the session
VWAP: Plotted as a reference line for regime context
HUD Dashboard
The real-time HUD displays:
Key level prices and distances: PDH, PDL, PDC, PWH, PWL, ORH, ORL
Nearest liquidity targets above and below with scores
Current regime state with confidence percentage
Time-of-day classification (Open Drive, Midday, Power Hour, RTH, Off)
Active zone count
Input Parameters
Zone Detection:
Pivot Left/Right Bars: Lookback for swing detection (default: 5/3)
Max Zones Stored: Maximum tracked zones (default: 20)
Zone Padding: Tick-based padding around pivot levels (default: 6)
Merge Distance: Tick distance for merging nearby zones (default: 10)
Volume Filter: Minimum normalized volume for zone creation (Low/Mid/High)
Zone Scoring:
Min Score to Draw: Minimum score for a zone to be visible (default: 25)
Max Visible Zones: Limit on simultaneously displayed zones (default: 10)
Reaction Window: Bars to check for reaction after touch (default: 6)
Reaction Move: Tick threshold for a valid reaction (default: 14)
Fast Reaction: Maximum bars for a "fast" reaction classification (default: 2)
Context:
VWAP Slope Length: Lookback for regime detection (default: 20)
Trend Slope Threshold: Minimum slope for trend classification
Mean-Reversion Band: Maximum distance from VWAP for MR classification
Time-of-Day periods: Open Drive, Midday, Power Hour boundaries
Trade Planning:
Min Score for Targets: Minimum zone score to qualify as a target (default: 60)
Extend Bars: How far forward target lines extend (default: 200)
How to Use This Indicator
Step 1: Identify High-Score Zones
Focus on zones with scores above 60. These have multiple touches, are relatively fresh, and have confluence with key levels. They represent the most significant liquidity pools.
Step 2: Check the Regime
In a trending regime, liquidity zones in the trend direction are more likely to be swept (taken out) as price reaches for stops. In mean-reversion conditions, zones are more likely to produce bounces.
Step 3: Use Targets for Trade Planning
The trade planning lines show you where the nearest significant liquidity sits. In a long trade, the target above is your potential take-profit area. The target below is where your stop might be hunted.
Step 4: Watch for Sweeps
When a zone is swept, its liquidity has been consumed. This often precedes a reversal as the institutional objective (filling orders) has been achieved. A sweep at a high-score zone with confluence is a particularly strong reversal signal.
Step 5: Monitor Zone Lifecycle
Zones are born, tested, and eventually swept or aged out. Fresh zones with rising touch counts are gaining significance. Old zones with no recent touches are losing relevance. The scoring system handles this automatically.
Best Practices
Liquidity analysis works best on instruments with reliable volume data and sufficient market depth
Higher-timeframe zones (1H, 4H) tend to be more significant than lower-timeframe zones
Zones with confluence (near PDH/PDL, PWH/PWL, VWAP) are significantly more reliable than isolated zones
Not all sweeps lead to reversals — sometimes price sweeps through and continues. Confirm with other analysis.
The regime detection helps contextualize zones but is not infallible. Use it as one input among many.
Adjust the volume filter based on your instrument. Highly liquid instruments may need "High" to filter noise. Less liquid instruments may need "Low" to detect zones at all.
The merge distance should be calibrated to your instrument's typical spread and tick size
Limitations
Pivot-based zone detection has an inherent delay equal to the right-bar lookback period
The scoring system uses heuristics, not a statistical model. Scores indicate relative importance, not probability.
Volume-based filtering requires reliable volume data. Forex volume from most brokers represents tick volume, not true exchange volume.
Zone merging can occasionally combine zones that a manual analyst would keep separate
The indicator tracks a maximum number of zones. In very active markets, older zones may be pruned before they are swept.
Sweep detection is based on price crossing through the zone boundary. It does not distinguish between genuine institutional sweeps and random price fluctuations through a level.
Time-of-day and session features are most relevant for instruments with clear session structures (equities, futures). 24-hour markets like crypto may benefit less from session-based scoring.
Technical Implementation
Built with Pine Script v6 using:
16 parallel arrays for comprehensive zone data tracking (price, type, touches, scores, reactions, etc.)
Zone merging algorithm that consolidates nearby pivots into single liquidity pools
Multi-factor scoring function with session, regime, and time-of-day modifiers
Distance-based and age-based visual fading for clean chart presentation
Score-based border width for visual hierarchy
Directional expectation coloring (continuation vs rejection blend)
VWAP slope-based regime detection with confidence calculation
Trade planning line management with score-filtered target identification
Sweep tracking with cooldown and configurable display modes
Alert conditions for sweeps, regime changes, and high-score zone creation
Originality Statement
This indicator is original in its comprehensive liquidity zone lifecycle management. While pivot-based zone detection exists in other scripts, this indicator is justified because:
The multi-factor scoring system (touches, freshness, confluence, reaction speed, session alignment, regime modifiers) provides a quantified assessment of zone significance not available in basic zone indicators
Zone merging prevents the visual clutter of overlapping zones at similar price levels
Sweep tracking with score penalties creates a dynamic zone lifecycle — zones are born, tested, scored, swept, and aged out
Regime-aware scoring modifiers adjust zone significance based on current market conditions
Time-of-day integration (Open Drive, Midday, Power Hour) reflects the reality that liquidity behavior changes throughout the trading session
Trade planning overlays with score-filtered targets provide actionable forward-looking information
The Deep Ocean theme provides intuitive visual hierarchy where zone importance is immediately apparent from color intensity and border width
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. Liquidity zone analysis identifies areas of probable order concentration based on historical price behavior — it does not predict future price movement. Zones can be swept without reversing, and high-score zones can fail. Past liquidity patterns do not guarantee future behavior. Always use proper risk management and never risk more than you can afford to lose. The author is not responsible for any losses incurred from using this indicator.
-Made by officialjackofalltrades
Indicator

Indicator

Volume Dispersion Field [JOAT]Volume Dispersion Field
Introduction
The Volume Dispersion Field is an open-source non-overlay indicator that provides a comprehensive volume analysis suite combining relative volume classification, buy/sell delta tracking, volume dispersion measurement, climax detection, volume profile calculation, smart money activity analysis, and anomaly detection. Rather than showing a simple volume histogram, this indicator dissects volume into multiple analytical layers that reveal who is participating, how aggressively, and whether the activity is normal or anomalous.
Built with Pine Script v6, the indicator uses custom types for volume state, delta state, dispersion bins, profile data, smart money state, and volume pulse tracking.
Why This Indicator Exists
Standard volume indicators show a single bar per candle. This tells you how much volume occurred but not who was buying or selling, whether the volume is unusual, or how volume is distributed across the price range. This indicator addresses those gaps by providing:
Seven-tier volume classification: Categorizes each bar from Extreme Low to Extreme High relative to the moving average, giving immediate context about whether current activity is normal or exceptional
Delta analysis: Estimates buying and selling volume using candle structure, then calculates smoothed delta and cumulative delta to show the net direction of volume pressure
Volume dispersion: Measures how volume is distributed between the upper and lower halves of the recent price range, revealing whether volume is concentrated at highs (distribution) or lows (accumulation)
Climax detection: Identifies volume spikes that exceed a configurable threshold, often marking exhaustion points or the start of major moves
Smart money analysis: Tracks institutional-sized volume activity and classifies the market phase as Accumulation, Markup, Distribution, or Markdown
Anomaly detection: Uses Z-score analysis to flag statistically unusual volume events that may indicate institutional intervention
Core Components Explained
1. Volume Classification System
Every bar is classified into one of seven categories based on its ratio to the volume moving average:
volMA = ta.sma(volume, volMaLength)
volRatio = volume / volMA
Extreme High (>= 3.0x): Institutional-level activity, potential climax
High (>= 2.0x): Significant above-average interest
Above Average (>= 1.0x): Healthy participation
Average (>= 0.5x): Normal market conditions
Below Average (>= 0.25x): Reduced interest
Low (< 0.25x): Thin liquidity, potential for slippage
Extreme Low: Minimal activity
Each category is color-coded with a distinct color from the Quantum Volume palette, making it instantly visible which bars carry institutional weight and which are retail noise. The high and low volume multiplier thresholds are fully configurable.
2. Delta Analysis
The delta engine estimates buying and selling volume by analyzing candle structure. For a bullish candle (close > open), buying volume is estimated as the proportion of the candle range from low to close, multiplied by total volume:
if close > open
buyVol := volume * (close - low) / (high - low + 0.0001)
sellVol := volume - buyVol
else if close < open
sellVol := volume * (high - close) / (high - low + 0.0001)
buyVol := volume - sellVol
The raw delta (buyVol - sellVol) is smoothed with an EMA and also accumulated over a configurable period to produce cumulative delta. Rising cumulative delta with rising price confirms bullish conviction. Falling cumulative delta with rising price warns of hidden distribution.
The indicator also detects delta divergences — when price moves in one direction but delta moves in the opposite direction over a 10-bar window. These divergences are marked with cross symbols on the chart.
The Volume Dispersion Field panel showing color-coded volume bars, delta histogram, cumulative delta line, and smart money accumulation/distribution arrows with the dashboard displaying all metrics
3. Volume Dispersion Measurement
Dispersion quantifies how volume is distributed between the upper and lower halves of the recent price range. Over the dispersion lookback period (default 50 bars), the indicator sums volume for bars that closed in the upper half versus the lower half:
Positive dispersion (> 20): Volume is concentrated in the upper range — bullish bias, potential distribution if extended
Negative dispersion (< -20): Volume is concentrated in the lower range — bearish bias, potential accumulation if extended
Near zero: Volume is balanced across the range — no clear directional bias
Dispersion is plotted as a filled area chart, providing a visual representation of where the volume weight sits within the price range.
4. Volume Profile and POC
The indicator calculates a simplified volume profile by dividing the recent price range into configurable bins (default 10) and summing volume in each bin. From this profile, it derives:
Point of Control (POC): The price level with the highest volume — acts as a magnet for price
Value Area High (VAH): Upper boundary of the 70% volume concentration zone
Value Area Low (VAL): Lower boundary of the 70% volume concentration zone
The profile type is classified as Normal (balanced), Imbalanced (narrow value area, directional), or Ranged (wide value area, consolidation).
5. Smart Money and Anomaly Detection
The smart money engine analyzes volume distribution across the price range over a 50-bar window. If significantly more volume occurs in the lower 30% of the range while price is below its 50-period SMA, the indicator classifies the phase as Accumulation. If more volume occurs in the upper 30% while price is above the SMA, it classifies as Distribution.
Anomaly detection uses Z-score analysis:
volState.zScore := (volume - volMA) / (volStdDev + 0.0001)
volState.isAnomaly := math.abs(volState.zScore) > anomalyThreshold
Volume events with Z-scores exceeding the threshold (default 3.0 standard deviations) are flagged as anomalies and marked with diamond symbols. These statistically rare events often indicate institutional intervention or major news-driven activity.
6. Market Phase Classification
The indicator classifies the current market phase based on the combination of price direction and volume trend:
Markup: Price rising + volume rising — healthy uptrend
Distribution: Price rising + volume falling — potential top forming
Accumulation: Price falling + volume rising — smart money buying the dip
Markdown: Price falling + volume falling — healthy downtrend
Visual Elements
Volume Histogram: Color-coded bars by classification tier
Volume MA Line: 20-period moving average of volume
High/Low Volume Bands: Reference bands at the high and low multiplier levels with fill
Delta Histogram: Smoothed buy/sell delta with gradient coloring
Cumulative Delta Line: Running sum of delta over configurable period
Dispersion Area: Filled area showing volume distribution bias
Climax Markers: Triangle markers for buy and sell climax events
Anomaly Markers: Diamond markers for statistically unusual volume
Smart Money Arrows: Accumulation (up arrow) and Distribution (down arrow) signals
Volume Pulse: Circle markers when volume exceeds the pulse threshold
Heatmap Background: Subtle background coloring based on volume intensity
Dashboard: 14-row metrics table showing volume category, anomaly status, phase, delta direction, dispersion, and more
Close-up of the dashboard showing volume classification as "HIGH", phase as "Markup", delta as "BULLISH" with "BUY SIDE" flow, and an anomaly detection reading
Input Parameters
Volume Analysis:
Volume MA Length (default 20)
High Volume Multiplier (default 2.0) and Low Volume Multiplier (default 0.5)
Delta Analysis:
Delta Smoothing (default 3)
Cumulative Delta Length (default 20)
Dispersion Settings:
Dispersion Lookback (default 50) and Dispersion Bins (default 10)
Climax Detection:
Climax Threshold (default 2.5) and Climax Lookback (default 50)
Advanced Volume:
Smart Money Concepts, Institutional Activity, Volume Anomalies toggles
Anomaly Threshold (default 3.0 std dev)
Volume Pulse toggle and Pulse Threshold (default 1.5)
Visual Settings:
Volume Profile, Dashboard, Glow Effects, Heatmap toggles
Profile Width and Color Scheme (Quantum, Classic, Professional, Neon)
How to Use This Indicator
Step 1: Monitor the volume classification. Extreme High and High bars deserve attention — they indicate institutional participation. Consecutive high-volume bars in one direction confirm conviction.
Step 2: Check the delta direction. Bullish delta with rising price confirms the move. Bearish delta with rising price (divergence) warns of potential reversal.
Step 3: Watch for climax events. A buy climax (extreme volume + bullish candle) at a resistance level may signal exhaustion. A sell climax at support may signal capitulation.
Step 4: Monitor the market phase. Accumulation phases often precede significant upward moves. Distribution phases often precede declines.
Step 5: Pay attention to anomaly markers. These statistically rare volume events often mark turning points or the start of major institutional campaigns.
Step 6: Use dispersion to understand volume positioning. Positive dispersion (volume at highs) during an uptrend is healthy. Positive dispersion during a downtrend suggests distribution.
Indicator Limitations
Delta estimation uses candle structure as a proxy for actual order flow. It is an approximation, not true Level 2 data.
Volume analysis works best on instruments with reliable, consistent volume data. Forex spot volume from brokers is tick volume, not true exchange volume.
Anomaly detection assumes volume follows a roughly normal distribution. During earnings seasons or major events, multiple "anomalies" may fire in succession.
The volume profile is a simplified calculation using close prices, not a tick-by-tick profile. It provides a useful approximation but not exchange-grade precision.
Smart money phase classification is based on volume distribution patterns, not on actual institutional order data.
Climax detection identifies extreme volume events but does not predict the direction of the subsequent move.
Originality Statement
This indicator is original in its comprehensive, multi-layer approach to volume analysis. While individual volume tools exist, this indicator is justified because:
It combines seven distinct volume analysis methodologies (classification, delta, dispersion, profile, climax, smart money, anomaly) into a unified system
Z-score-based anomaly detection provides a statistical framework for identifying unusual volume that simple threshold methods miss
Market phase classification (Accumulation/Markup/Distribution/Markdown) adds a Wyckoff-inspired context layer to raw volume data
Volume dispersion measurement quantifies the spatial distribution of volume across the price range, a metric not available in standard volume indicators
The delta divergence detection system identifies hidden disagreements between price and volume pressure
The comprehensive dashboard presents 14 metrics simultaneously for holistic volume analysis
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. Volume analysis is a tool for understanding market participation, not a crystal ball for predicting future price movement. Always use proper risk management. The author is not responsible for any losses incurred from using this indicator.
-Made with passion by officialjackofalltrades
Indicator

Institutional Footprint Divergence Engine🔹 Introduction
This indicator, the Institutional Footprint Divergence Engine, attempts to identify moments where price action and genuine order flow diverge — a condition that historically precedes reversals driven by smart money absorption and distribution. The core idea is this: if price makes a new swing high but the underlying buy-sell delta is contracting, the market is printing a higher high on less aggressive buying pressure, suggesting the move is being distributed into rather than genuinely accumulated. The inverse is equally meaningful at lows.
Unlike traditional divergence indicators that use derivative oscillators like RSI or MACD as the proxy for momentum, this script uses volume delta — the direct arithmetic difference between buying and selling volume at the bar level — sourced natively from PulseWire's newly released request.footprint() function where a Premium or Ultimate subscription is active. On standard charts, the indicator falls back to a tick-estimated delta approximation. The distinction matters, and I'll cover precisely why throughout this description.
Every detected divergence is assigned a composite quality score from 0 to 100, computed across five weighted dimensions that assess the structural strength, volume context, cumulative delta alignment, and volatility regime at the moment of detection. Only divergences that clear a user-defined score threshold are displayed — filtering the noise that plagues most divergence tools.
🔹 The Premise — Why Delta Divergence Reveals Institutional Behavior
🔸 What volume delta actually measures
Every transaction in a liquid market has a buyer and a seller. Volume delta measures the net directional aggression of those transactions: it is the sum of volume that traded at the ask (aggressive buying) minus the volume that traded at the bid (aggressive selling) within a single bar. A positive delta bar means buyers were more aggressive. A negative delta bar means sellers were more aggressive.
This is categorically different from price direction. A bar can close higher while posting a negative delta — meaning price moved up, but sellers were the more aggressive counterparty throughout the move. This is the fingerprint of absorption: a large participant or group of participants quietly selling into rising price, absorbing aggressive buy orders without allowing the market to fall. They want retail to push price higher. They're using that momentum as liquidity to distribute their position.
Delta divergence is the systematic detection of this condition across swing structures.
🔸 The mechanics of absorption at swing highs
Assume price has been in an uptrend and just made a swing high at $4,200 with a delta of +850 contracts — strong buyer aggression confirming the high. Price retraces, then pushes up again to $4,215, printing a higher high. But this time, the delta is only +210. Price went higher. The aggressive buying volume did not.
What does this tell you? The move to $4,215 required proportionally far less buyer aggression than the move to $4,200. Two possibilities explain this: either sellers are absorbing the buying (distribution), or organic buying interest is fading and the move is increasingly resting on passive limit sell orders being consumed by declining buy-side momentum. Either way, the structural message is identical — the higher high is not supported by the order flow that created it, and the probability of continuation has deteriorated meaningfully.
This is the ICT and Smart Money Concepts concept of distribution rendered in order flow terms rather than price structure terms alone.
🔸 The symmetric argument at swing lows
At swing lows, the bullish divergence condition is: price makes a lower low, but the negative delta at that low is less negative than the prior swing low. Less aggressive selling at a lower price. This is absorption at the demand side — large buyers accumulating into weakness, absorbing retail sell orders without allowing price to collapse further. The lower low prints because they let it — they need the price to be there to fill their orders. But the delta tells you that sellers were unable to drive the same aggression they managed at the prior low.
Harris (2003), in his foundational text on market microstructure, describes this phenomenon as informed traders systematically positioning against the uninformed flow — using the uninformed participants' aggression as liquidity.
Cont, Stoikov & Talreja (2010), in their research on limit order book dynamics, demonstrate empirically that large passive participants consistently exploit periods of high aggressive flow imbalance to establish positions at favorable prices.
Delta divergence is not a leading indicator in the traditional sense. It is a coincident indicator of order flow context that becomes meaningful when paired with a confirmed swing structure.
🔸 Why native footprint data changes the calculus
Prior to January 2026, Pine Script had no access to true intrabar volume distribution. Every "delta" calculation in PulseWire scripts was an estimate — typically assigning the bar's total volume directionally based on close position within the bar's range, or using up/down tick counting approximations. These methods are reasonable proxies but they introduce systematic errors: a bar that closes at its midpoint with heavy two-way activity looks identical to a quiet, directionless bar.
PulseWire's request.footprint() function changes this entirely. It exposes the actual buy and sell volume recorded at each price level (row) within the bar — the genuine transaction-level data that footprint chart platforms like Sierra Chart and Bookmap have historically required separate subscriptions and data feeds to access. The delta returned by fp.delta() is not an estimate. It is the arithmetic difference between actual ask-side and bid-side transactions aggregated across the bar.
This is the first time this data has been natively programmable in Pine Script, and IFDE is built specifically around it.
🔹 How It Works
🔸 Footprint Data and the Delta Fallback
On a Premium or Ultimate PulseWire account with a compatible symbol, request.footprint() returns a footprint object for each bar. IFDE calls fp.buy_volume() and fp.sell_volume() to get true directional volume, and fp.delta() for the bar's net delta. It also iterates every price row via fp.rows() and evaluates row.has_buy_imbalance() and row.has_sell_imbalance() — flagging bars where a disproportionate volume cluster exists at a specific price level, which often marks the precise price where institutional absorption occurred.
When footprint data is unavailable (standard account or non-supported symbol), the indicator falls back to a tick-estimated delta: up-close bars assign 100% of volume to the buy side; down-close bars assign 100% to the sell side; inside bars distribute proportionally based on close position within the range. This fallback is clearly flagged in the status label as ⚠️ ESTIMATED. The divergence logic functions identically in both modes — only the precision of the underlying delta changes.
The Ticks Per Footprint Row input controls the price granularity of the footprint: smaller values create more rows with finer resolution, larger values consolidate into fewer, broader rows. For index futures like ES and NQ, 4–10 ticks per row is typically appropriate. For crypto, you may need to experiment depending on the instrument's tick size.
🔸 Swing Pivot Detection
The indicator uses Pine's native ta.pivothigh() and ta.pivotlow() functions to identify confirmed swing highs and lows. The Swing Pivot Length input defines the lookback and lookahead symmetry of the pivot — a value of 10 means a bar must be the highest high within 10 bars on both sides to qualify as a pivot. Higher values find more significant structural swings but introduce more lag. Lower values are more responsive but noisier.
Critically, delta is sampled at the confirmed pivot bar using ta.valuewhen() — not at the current bar. This eliminates the most common repainting failure mode in divergence indicators: using the current bar's momentum reading to classify a past pivot. The delta value associated with each pivot is locked in the moment the pivot is confirmed.
🔸 Divergence Logic
Each time a new pivot high is confirmed, IFDE compares it against the previous confirmed pivot high. If the current price is higher but the current delta is lower, a bearish divergence is registered. The same comparison runs at pivot lows for bullish divergence, where current price lower and current delta less negative triggers the signal.
The Divergence Lookback setting controls the maximum bar distance between the two pivots being compared. Setting this too wide increases the chance of detecting structurally irrelevant comparisons — swings separated by 150 bars on a 5-minute chart may have no meaningful relationship. Setting it too tight misses legitimate multi-leg divergences. 40–60 bars is a reasonable starting point for most timeframes.
🔸 The ML Quality Score (0–100)
This is the engine's core differentiating feature. Every detected divergence is not displayed by default — it must first pass a composite quality score threshold. The score is calculated across five weighted dimensions:
Delta Magnitude is the most heavily weighted dimension by default (30%). It measures how extreme the opposing delta pressure is, normalised against the rolling maximum delta magnitude over the lookback window. A divergence where the delta is merely slightly less positive scores lower than one where the delta has completely reversed sign.
Volume Confirmation (25%) assesses whether total bar volume at the divergence pivot is above the 14-bar average. Low-volume divergences are structurally weaker — the absorption signal requires meaningful participation to be credible.
CVD Alignment (20%) checks whether the Cumulative Volume Delta — the running sum of all bar-level deltas, mean-reverted against its own moving average — is trending in the direction that supports the divergence. A bullish divergence at a price low carries far more weight when CVD has been quietly rising even as price made new lows.
Price Structure (15%) scores the magnitude of the price swing itself, relative to the current ATR. A divergence across a 0.5 ATR swing scores lower than one across a 2.5 ATR swing. Trivially small swings produce trivially meaningful divergence signals.
Regime Bonus (10%) applies a bonus or penalty based on the current volatility regime, described in detail below.
The weights are fully user-configurable in the 🤖 ML Score Weights input group. Shifting weight toward CVD Alignment, for example, will make the score more conservative and context-dependent. Shifting weight toward Delta Magnitude makes it more responsive to extreme single-bar order flow events. The scores are normalised internally so they always sum to 100 regardless of how you distribute the weights.
Only divergences scoring above the Min Quality Score threshold are displayed. The default of 55 is intentionally permissive to begin with. As you develop familiarity with the indicator on your instrument and timeframe, raising this to 65 or 70 will progressively filter toward only the highest-conviction setups.
🔸 Adaptive Regime Detection
The indicator compares the current 14-period ATR against its own simple moving average over the Regime Detection Period to classify the current volatility environment into three states: HIGH VOLATILITY, NORMAL, and LOW VOLATILITY.
In high volatility regimes, the score threshold is automatically scaled up by 20% — making it harder for a divergence to pass. This is because high-volatility environments produce frequent large delta swings that generate divergence signals with greater frequency but lower predictive value. The regime is tightening the filter precisely when noise is highest.
In low volatility regimes, the threshold is scaled down by 15%. Quiet, low-volatility markets are where institutional accumulation and distribution most commonly occurs under the radar — smaller delta contrasts carry more informational weight when total market activity is compressed.
The current regime and adjusted score floor are displayed in the status label in the top-left corner of the pane. A subtle background colour (green tint for low vol, red tint for high vol) is painted on the price chart to give continuous regime context at a glance.
🔸 The Pane Display
The indicator runs in its own pane below the price chart, containing three visual elements:
The delta histogram plots the smoothed EMA of bar-level delta as coloured columns — cyan for positive (net buying) and red for negative (net selling). The colour intensity scales with the magnitude of the delta relative to the recent maximum, so visually dominant bars correspond to the highest-conviction order flow readings.
The CVD deviation line in yellow shows the cumulative volume delta minus its moving average baseline. This is more useful than raw CVD for divergence context because it removes the secular trend in cumulative flow and focuses on relative shifts — making it easy to spot when CVD is rising or falling against price.
The zero line serves as the delta neutrality reference. Bars crossing from negative to positive delta, or vice versa, in the context of a divergence signal are particularly significant.
On the price chart, divergence lines connect the two pivot points being compared, with opacity scaling to score strength — higher-scoring divergences are rendered more vividly. Labels mark each divergence with its star rating (★ for score 55–69, ★★ for 70–84, ★★★ for 85–100) and the actual score value, along with whether live footprint data or tick estimation is in use.
🔹 Settings Reference
Swing Pivot Length — Controls pivot sensitivity. Lower = more signals, higher = more structural significance. Recommended: 8–15.
Divergence Lookback — Maximum bars between the two pivots being compared. Recommended: 30–75.
Min Quality Score — Score threshold below which divergences are hidden. Start at 55, tune upward as you calibrate to your instrument.
Ticks Per Footprint Row — Footprint granularity. Only relevant with live FP data. Tighter rows = more precision, more computation.
Delta Smoothing Period — EMA period applied to raw delta before divergence comparison. Smoothing reduces false triggers from single noisy bars. Recommended: 2–5.
CVD Baseline Length — Period of the SMA used to mean-revert the cumulative delta. Shorter = more responsive CVD; longer = smoother trend.
Alert Min Score — Score threshold for alert conditions. Set higher than the display threshold if you want alerts only for the strongest signals.
🔹 Closing Remarks
Delta divergence is one of the few conditions in technical analysis that has a genuinely defensible mechanical explanation rooted in market microstructure — it is not a pattern-matching heuristic but a direct observation of the imbalance between aggressive buying and selling pressure across a swing structure. The availability of native footprint data in Pine Script for the first time makes it possible to build this kind of tool without the estimations and approximations that have historically compromised order flow analysis within PulseWire.
That said, this indicator is a probabilistic model, not a signal generator. A score of 90 does not mean the trade works. It means the order flow context at that divergence was unusually well-structured relative to the five dimensions measured. Markets can and do continue trending through well-formed divergences, particularly in strongly trending regimes where institutional participants are not distributing but rather re-accumulating on every pullback.
The most effective use of IFDE is as a confluence filter — a condition that must be present alongside your existing structural, session, or macro framework before you engage a level. A bearish divergence at a weekly resistance level, in a high-volatility regime, scoring 82, with live footprint data showing 7 sell imbalance clusters, is a meaningfully different proposition than a 56-scoring divergence on estimated delta at a randomly selected intraday high.
Use the score. Respect the regime. Verify the data source. The rest is your edge.
🔹 References
Market Microstructure & Order Flow
Harris, L. (2003). Trading and Exchanges: Market Microstructure for Practitioners. Oxford University Press.
Cont, R., Stoikov, S., & Talreja, R. (2010). A stochastic model for order book dynamics. Operations Research, 58(3), 549–563.
Volume and Delta Analysis
Easley, D., & O'Hara, M. (1992). Time and the process of security price adjustment. Journal of Finance, 47(2), 577–605.
Easley, D., Hvidkjaer, S., & O'Hara, M. (2002). Is information risk a determinant of asset returns? Journal of Finance, 57(5), 2185–2221.
Institutional Order Flow & Smart Money
Chordia, T., Roll, R., & Subrahmanyam, A. (2002). Order imbalance, liquidity, and market returns. Journal of Financial Economics, 65(1), 111–130.
Grinblatt, M., & Keloharju, M. (2000). The investment behavior and performance of various investor types. Journal of Financial Economics, 55(1), 43–67. Indicator

kNN Market Architecture [LuxAlgo]The kNN Market Architecture indicator is a professional-grade market structure framework that utilizes a k-nearest neighbors (kNN) machine learning classifier to validate price pivots across multiple time horizons. By integrating a dynamic detection engine, cumulative volume delta analysis, and a range-based volume profile, this tool provides a multi-layered hierarchical view of price action to identify high-probability reversal and breakout zones.
🔶 USAGE
The indicator identifies and classifies market structure into three distinct layers: Short-Term (ST), Medium-Term (MT), and Long-Term (LT). Unlike traditional pivot indicators that rely on static lookbacks, each point must pass a kNN similarity test based on relative volatility and volume features to be validated and plotted.
🔹 Multi-Scale Bias Analysis
Users can define which structural layer (ST, MT, or LT) dictates the overall market bias. When price is trading above the most recent validated high of the selected term, the candles and dashboard will reflect a bullish bias. Conversely, trading below the recent validated low indicates a bearish bias. This allows for seamless "top-down" analysis within a single chart view.
🔹 The Delta Tank
When a structural level is active (not yet breached), a "Delta Tank" label appears at the price line. This tool tracks the cumulative volume and delta (buying vs. selling pressure) since the level was formed.
A green icon with a high fill percentage indicates aggressive buying defending a support level or attacking resistance.
A red icon suggests selling pressure is mounting, potentially signaling an upcoming Break of Structure (BOS).
The percentage value represents the delta-to-total-volume ratio, providing a metric for the "exhaustion" or "strength" of a specific level.
🔹 Anchor Volume Profile
The indicator includes a dynamic Volume Profile that anchors itself specifically to the current active structural range. This profile calculates volume distribution between the most recent validated High and Low of your chosen Bias Source, allowing you to see exactly where the most "fair value" was traded within the current trading range.
🔶 ADVANTAGES OVER TRADITIONAL METHODS
The kNN Market Architecture offers several significant improvements over standard market structure indicators:
Noise Filtering via Machine Learning: Traditional pivot indicators plot every mathematical high/low within a window. The kNN classifier filters these by comparing the "signature" (volatility and volume) of the current point against historical successful pivots. If a pivot lacks the necessary confidence, it is ignored, leading to much cleaner charts.
Volatility-Adjusted Detection: Most indicators use a fixed lookback (e.g., 10 bars). This script uses a dynamic engine that expands during high volatility and contracts during low volatility, ensuring the structure remains relevant regardless of market speed.
Contextual Volume Data: While standard indicators only show price, this tool layers Volume Delta and Volume Profiles directly onto the structure points, providing the "why" behind price movements.
🔶 DETAILS
🔹 Auto-Adjust Sensitivity
The core of the detection engine is its ability to adapt to changing market conditions. When "Auto-Adjust Sensitivity" is enabled, the script calculates a volatility ratio by comparing the current ATR to its long-term average. During periods of high volatility, the engine automatically expands the detection window. This ensures that the indicator requires more significant price movement to confirm a new structure point, preventing "false positives" during erratic price swings. In low-volatility environments, the window contracts, making the engine more sensitive to subtle structural shifts.
🔹 kNN Validation Engine
For every potential price pivot, the engine analyzes features such as Relative ATR and Relative Volume. It compares these features against a historical database of previous pivots. If the current point does not meet the "Confidence Threshold" (the average score of its k-nearest neighbors), it is discarded.
🔶 SETTINGS
🔹 Dynamic Engine
Structure Sensitivity: Controls the base lookback for pivot detection.
Auto-Adjust Sensitivity: Enables volatility-based scaling of the detection engine.
🔹 kNN Classifier
k-Nearest Neighbors: The number of historical neighbors to compare against the current pivot.
Confidence Threshold: The minimum similarity score required to validate a structure point.
🔹 Visual Hierarchy
ST/MT/LT Toggles: Enables or disables the visibility of Short, Medium, and Long-term structures.
Bias Source: Choose which term (Auto, LT, MT, ST) governs candle coloring and the Volume Profile.
Color Candles by Bias: Toggles the gradient candle coloring based on the current range position.
🔹 Volume Profile
Show Volume Profile: Toggles the structural range-based profile.
Profile Rows: Adjusts the vertical granularity (price bins) of the profile.
Profile Width (%): Controls the horizontal scale of the profile.
Indicator

Fair Value Gap Profile + Rolling POC [BigBeluga]🔵 OVERVIEW
FVG Profile builds a price-level profile based on detected Fair Value Gaps (FVGs) over a fixed lookback period.
Instead of measuring traded volume alone, this tool aggregates bullish and bearish FVG occurrences into horizontal bins, allowing traders to see where price inefficiencies are most concentrated.
Each profile level represents how many bullish and bearish FVGs formed near that price zone, along with their relative strength, imbalance, and delta volume.
🔵 CONCEPTS
FVG Detection —
• Bullish FVG: when the high two bars back is below the current low.
• Bearish FVG: when the low two bars back is above the current high.
Price Binning — The full price range of the lookback period is divided into fixed bins.
FVG Aggregation — Each detected FVG is mapped to its nearest price bin and counted.
Directional Separation — Bullish and bearish FVGs are stored separately inside each bin.
🔵 FEATURES
Bull / Bear FVG Profile —
• Green segments represent bullish FVG counts.
• Orange segments represent bearish FVG counts.
• Each bin visually shows how many FVGs occurred at that level.
Strength Percentage —
• Each bin displays a % value based on total FVG count.
• The strongest bin is normalized to 100%.
Delta Volume —
• Calculates the difference between bullish and bearish FVG volume per bin.
• Positive delta = bullish dominance.
• Negative delta = bearish dominance.
Heatmap Mode —
• Colors profile levels by relative strength.
• Color direction is driven by delta volume (bullish vs bearish).
Live FVG Visualization — Optionally plots individual bullish and bearish FVG boxes on the chart.
Profile Background — A background frame highlights the full analyzed price range.
🔵 Rolling POC Logic
Unlike a static profile, the Rolling POC moves with price.
It continuously calculates the "peak imbalance level" for the last X bars, providing a moving average of where the market's most significant gaps are forming.
🔵 Moving Average Integration
The indicator features a customizable Moving Average (SMA, EMA, WMA, VWMA, etc.).
This MA helps identify if the price is currently trending toward or away from high-density FVG zones.
An "Auto" length feature is included that scales the MA based on the selected lookback period for optimal smoothing.
🔵 HOW TO USE
Identify FVG Clusters — Strong profile levels highlight prices where inefficiencies repeatedly formed.
Directional Bias — Compare bullish vs bearish segments to determine dominance at each level.
Delta Confirmation — Use delta volume to confirm whether bullish or bearish FVGs control the zone.
Reaction Zones — High-strength bins often act as areas of interest for price reactions.
Heatmap Context — Enable heatmap to quickly spot dominant imbalance zones across the range.
🔵 CONCLUSION
FVG Profile transforms Fair Value Gaps into a structured price-level profile, revealing where inefficiencies cluster and which side dominates those zones.
By combining FVG count, directional balance, delta volume, and strength normalization, it provides a powerful way to analyze imbalance behavior beyond traditional volume profiles. Indicator

Indicator

Absorption SignalsAbsorption Signals by QuantShok (JacobS369)
This script detects absorption candles — bars where aggressive selling is absorbed by buyers (bullish) or aggressive buying is absorbed by sellers (bearish). It uses PulseWire's built-in volume delta to measure the net buying/selling pressure within each bar, then flags bars where the delta diverges from the price action on abnormally high volume. Each signal is scored on a 1–5 star confidence system so you can filter for only the highest-quality setups.
The core logic: a bullish absorption fires when the bar closes green (or flat) despite net negative delta on a volume spike — meaning sellers pushed hard but buyers absorbed it all and held price up. A bearish absorption is the mirror — the bar closes red despite net positive delta on a volume spike, meaning buyers pushed but sellers absorbed the pressure and drove price down.
Default settings are optimized for NQ (Nasdaq 100 Futures).
Settings Breakdown
Absorption Settings — "Volume Lookback Period" (default 20) is the number of bars on your current chart timeframe used to calculate average volume and standard deviation for the z-score. On a 5-minute chart, that's the last 20 five-minute bars. "Volume Z-Score Threshold" (default 1.5) sets how many standard deviations above average the current bar's volume needs to be to qualify as a spike — raise it to only catch bigger volume anomalies, lower it for more signals. "Minimum Wick Size %" is the input for wick filtering though the confidence system handles wick scoring internally at the 40% level. "Delta Timeframe" (default 1 minute) controls the resolution used to estimate volume delta — this is independent of your chart timeframe and pulls 1-minute data to approximate buy vs sell volume within each bar.
Confidence Settings — "Minimum Stars to Display" (default 2) filters out low-confidence signals so only setups meeting your threshold appear on the chart. The confidence scoring works by starting at 1 star for any valid absorption signal, then adding stars for: volume z-score above 2.0 (+1), volume z-score above 3.0 (+1), delta z-score above 2.0 (+1), significant wick size above 40% of bar range (+1), and multi-bar confirmation (+1), capped at 5. "Require Multi-Bar Confirmation" checks whether consecutive bars show absorption at the same price level. "Multi-Bar Tolerance" controls how close those consecutive bars need to be (as a percentage of ATR) to count as confirming each other.
Visuals — Toggle bubbles, confidence labels, and the dashboard independently. Bubble size scales with confidence (tiny for 1 star up to huge for 5 stars), and color intensity increases with higher confidence. The dashboard in the top right shows live volume z-score, delta z-score, net delta, current absorption signal, and multi-bar confirmation status. Hovering over any label shows a detailed tooltip with all the underlying stats for that signal.
Adapting to Other Instruments
The main settings to consider adjusting are the volume lookback period (shorter for faster-moving instruments, longer for steadier ones), the z-score threshold (lower it for instruments with less volatile volume patterns, raise it for noisier ones), and the multi-bar tolerance (widen it for instruments with larger ATR). The delta timeframe can stay at 1 minute for most instruments but you might try a higher resolution if your broker provides it.
How to Use
This is not a buy/sell signal generator — it identifies where institutional-level absorption is likely occurring. Use these signals as confluence with your existing strategy. A 4–5 star bullish absorption at a known support level or LVN is a very different setup than a 2-star signal in the middle of nowhere. The tooltip on each label gives you the full breakdown so you can evaluate the quality yourself. Indicator

Volume Delta with Fibonacci Projection [UAlgo]Volume Delta Profile with Fibonacci Projection is a structure driven profiling tool that combines swing discovery, lower timeframe volume allocation, delta analysis, Fibonacci mapping, and forward target projection inside a single chart overlay. Its purpose is not only to show where price has moved, but also to show how participation was distributed inside that move and where the next projected objective levels may sit.
The script begins by identifying a dominant recent swing inside a user defined lookback window. Once that swing is found, it becomes the structural anchor for everything else in the indicator. The swing defines the full high to low range, the Fibonacci ladder, the profile segmentation, the delta bands, and the forward projection path. This creates a unified framework where all visual components are tied to the same market structure instead of being calculated independently.
A key part of the script is its lower timeframe profiling engine. It requests intrabar data from a lower timeframe and uses that data to distribute volume into price rows and Fibonacci bands inside the active swing. This allows the indicator to estimate where buying activity and selling activity were concentrated with far more detail than a simple bar based approximation. If lower timeframe data is unavailable for a given bar, the script falls back to the chart bar itself so the profile can still be built.
The profile section shows how total activity was distributed across the swing range, while the delta section shows which Fibonacci bands leaned more bullish or bearish in terms of estimated participation. A Point of Control line can also be drawn to highlight the most active profile row. In addition, the script projects a continuation path from a chosen Fibonacci level toward target extensions such as 100 percent, 127.2 percent, and 161.8 percent of the swing.
The result is a tool that can be used for structure analysis, premium and discount mapping, participation study, and projection planning. It is especially useful for traders who want to combine profile logic and Fibonacci logic inside the same structural framework rather than treating them as separate tools.
🔹 Features
🔸 Structure Based Swing Detection
The script automatically finds a recent dominant swing inside the selected lookback period and requires a minimum separation between the major high and low. This gives the indicator a clean structural base before any profile or projection is drawn.
🔸 Auto Lower Timeframe Intrabar Analysis
The indicator can automatically choose a lower timeframe for intrabar volume analysis based on the current chart timeframe. A custom intrabar timeframe can also be used if desired.
🔸 Volume Profile Across the Swing Range
The full swing range is divided into profile rows, and lower timeframe volume is distributed into those rows according to price overlap. This builds a true participation map across the swing rather than a simple one point volume assignment.
🔸 Delta by Fibonacci Band
In addition to row based profiling, the script also groups volume into six Fibonacci bands between the swing extremes. Each band receives estimated buy and sell volume, and the script calculates directional delta for each band.
🔸 Fib POC Highlighting
A Point of Control line can be displayed at the profile row with the highest total accumulated volume, giving the user a quick view of the strongest participation level inside the swing.
🔸 Flexible Row Sizing
Profile row size can be determined automatically from ATR and tick size, or it can be defined manually through ticks per row. This makes the profile adaptable to very different instruments.
🔸 Forward Projection Path
The script draws a projection path starting from a selected retracement level and extends it toward major target levels such as 100 percent, 127.2 percent, and 161.8 percent of the swing range.
🔸 Optional Target Boxes
Target zones can be shown as compact boxes around the projected objective levels, helping the user visualize likely reaction areas rather than only exact lines.
🔸 Bull and Bear Participation Coloring
The profile and delta display use directional coloring to separate estimated buying volume from estimated selling volume. This makes the participation structure much easier to read visually.
🔸 Complete Structural Integration
The swing line, Fibonacci levels, volume profile, delta profile, Point of Control, and projection targets all come from the same underlying swing. This keeps the whole tool internally consistent.
🔹 Calculations
1) Defining the Swing Object
type Swing
int startIndex
int endIndex
float startPrice
float endPrice
float lowPrice
float highPrice
float swingRange
bool bullish
int recentOffset
int olderOffset
This object stores the full structural context of the move being analyzed.
It contains:
where the swing starts,
where it ends,
the starting price,
the ending price,
the full low and high of the move,
the total range,
the direction,
and the bar offsets used for the profiling loop.
This is important because the script does not calculate the profile on an arbitrary fixed range. It first defines a real market swing and then builds all later logic from that anchor.
2) Choosing the Lower Timeframe Automatically
autoLowerTf() =>
if timeframe.isseconds
"1S"
else if timeframe.isminutes and timeframe.multiplier == 1
"1S"
else if timeframe.isintraday
"1"
else if timeframe.isdaily
"5"
else
"60"
This function selects a lower timeframe automatically according to the current chart timeframe.
Very fast charts use one second data.
Intraday charts use one minute data.
Daily charts use five minute data.
Higher charts default to sixty minute data.
The goal is to obtain more granular intrabar structure without forcing the user to choose a lower timeframe manually every time.
3) Computing Automatic Row Size
autoTicksPerRow(int atrLen) =>
int t = int(math.round((0.2 * ta.atr(atrLen)) / syminfo.mintick))
math.max(1, t)
When row size mode is set to Auto, the script derives the profile row size from ATR and tick size.
It takes twenty percent of ATR, converts that value into ticks, then enforces a minimum of one tick.
This creates a profile row height that adapts to the instrument’s current volatility instead of staying fixed across very different market conditions.
4) Finding the Major Swing
makeSwing(int lookback, int minBars) =>
int hiOff = -ta.highestbars(high, lookback)
int loOff = -ta.lowestbars(low, lookback)
int minSep = math.min(minBars, math.max(1, lookback - 1))
bool bullish = loOff > hiOff
int startIndex = bullish ? bar_index - loOff : bar_index - hiOff
int endIndex = bullish ? bar_index - hiOff : bar_index - loOff
float startPx = bullish ? lo : hi
float endPx = bullish ? hi : lo
This function discovers the dominant swing inside the selected lookback.
First, it locates the highest bar and lowest bar inside the lookback window. Then it determines which came first in time. If the low occurred earlier and the high occurred later, the swing is bullish. If the high occurred earlier and the low occurred later, the swing is bearish.
The function also forces a minimum separation between the swing endpoints. If the raw highest and lowest points are too close together, it searches farther out to build a more meaningful move.
So the swing used by the indicator is not just the highest high and lowest low. It is a structurally filtered move with time separation and direction.
5) Fibonacci Price Calculation
method fibPrice(Swing s, float ratio) =>
s.bullish ? s.highPrice - s.swingRange * ratio : s.lowPrice + s.swingRange * ratio
This method converts a Fibonacci ratio into an actual price inside the current swing.
For bullish swings, ratios are measured downward from the swing high.
For bearish swings, ratios are measured upward from the swing low.
So the Fibonacci ladder always respects swing direction and preserves the standard premium and discount interpretation.
6) Defining the Six Internal Fibonacci Bands
method bandRatioAt(Swing s, int slot) =>
float r = 0.0
if s.bullish
switch slot
0 => r := 1.000
1 => r := 0.786
2 => r := 0.618
3 => r := 0.500
4 => r := 0.382
5 => r := 0.236
6 => r := 0.000
else
switch slot
0 => r := 0.000
1 => r := 0.236
2 => r := 0.382
3 => r := 0.500
4 => r := 0.618
5 => r := 0.786
6 => r := 1.000
r
These ratio slots define the six profiling bands used in the delta section.
The bands span the space between:
1.000 and 0.786
0.786 and 0.618
0.618 and 0.500
0.500 and 0.382
0.382 and 0.236
0.236 and 0.000
The order is reversed automatically for bearish swings so the structure remains directionally consistent.
So the delta section is not arbitrary. It measures directional participation inside familiar Fibonacci zones.
7) Mapping Prices Into Profile Rows
locateRowIndex(float lowPrice, float highPrice, float step, int rows, float price) =>
float clampedPrice = math.max(lowPrice, math.min(highPrice, price))
int idx = int(math.floor((clampedPrice - lowPrice) / step))
math.max(0, math.min(rows - 1, idx))
This helper function converts any price into its corresponding profile row.
The price is first clamped inside the swing boundaries. Then the script measures how far above the swing low the price sits and divides that by the row step size.
This gives the row index where the price belongs. That mapping is necessary for distributing intrabar volume into the correct profile level.
8) Mapping Prices Into Fibonacci Bands
locateBandIndex(Swing s, float price) =>
float clampedPrice = math.max(s.lowPrice, math.min(s.highPrice, price))
int idx = 5
for b = 0 to 5
float p1 = s.bandPriceAt(b)
float p2 = s.bandPriceAt(b + 1)
float bandLow = math.min(p1, p2)
float bandHigh = math.max(p1, p2)
bool inside = b == 5 ? (clampedPrice >= bandLow and clampedPrice <= bandHigh) : (clampedPrice >= bandLow and clampedPrice < bandHigh)
if inside
idx := b
break
idx
This function assigns a price to one of the six Fibonacci bands.
It walks through the band boundaries one by one, checks where the price sits, and returns the matching band index.
That index is later used when a bar or an intrabar has zero height or when band overlap needs to be accumulated. So this function is the bridge between raw prices and the delta profile zones.
9) Lower Timeframe Data Request
string ltf = useCustomLtf ? customLtf : autoLowerTf()
= request.security_lower_tf(syminfo.tickerid, ltf, )
This is the intrabar engine.
The script first decides whether to use the automatic lower timeframe or the custom user defined one. Then it requests arrays of lower timeframe open, high, low, close, and volume values for each chart bar.
This means every bar inside the swing can be broken down into smaller internal bars, allowing a more detailed volume allocation than a single chart timeframe candle would allow.
10) Determining Effective Profile Row Size
int ticksPerRow = rowSizeMode == "Auto" ? autoTicksNow : manualTicksPerRow
float minRowStep = math.max(syminfo.mintick, ticksPerRow * syminfo.mintick)
float rowStep = math.max(minRowStep, swing.swingRange / rowsInput)
int rowsEff = math.max(1, int(math.ceil(swing.swingRange / rowStep)))
rowStep := swing.swingRange / rowsEff
This block finalizes the profile geometry.
It first determines the tick size per row, either from the automatic ATR based logic or from the manual input. Then it ensures the row step is not smaller than that minimum. After that, it calculates how many rows are actually needed to cover the full swing range.
Finally, it recalculates the row height so the entire swing fits perfectly into the effective row count.
So the profile is always both instrument aware and range aligned.
11) Estimating Intrabar Direction
int dir = prevDir
if ic > io
dir := 1
else if ic < io
dir := -1
else
if not na(prevClose)
if ic > prevClose
dir := 1
else if ic < prevClose
dir := -1
else
dir := prevDir
else
dir := prevDir
This block decides whether a lower timeframe bar should be treated as bullish or bearish for volume allocation.
If close is above open, the bar is treated as buying.
If close is below open, the bar is treated as selling.
If the bar is neutral, the script falls back to its relation versus the previous close. If that is also neutral, it inherits the previous direction.
This gives the script a practical directional model for classifying intrabar volume into buy side or sell side participation.
12) Distributing Intrabar Volume Into Profile Rows
for r = 0 to rowsEff - 1
float rowLow = swing.lowPrice + rowStep * r
float rowHigh = rowLow + rowStep
float overlap = math.min(ih, rowHigh) - math.max(il, rowLow)
if overlap > 0
float frac = overlap / iRange
rowBuy.addAt(r, buyV * frac)
rowSell.addAt(r, sellV * frac)
This is one of the most important calculations in the script.
For every lower timeframe bar, the script checks how much of that bar overlaps each profile row. If overlap exists, volume is distributed proportionally according to the fraction of the bar’s range that passed through that row.
So if an intrabar spends more range inside a certain row, more of its volume is assigned there.
This is much more realistic than placing the full volume into a single price row because it respects the bar’s actual vertical path through price.
13) Distributing Intrabar Volume Into Fibonacci Bands
for b = 0 to 5
float p1 = swing.bandPriceAt(b)
float p2 = swing.bandPriceAt(b + 1)
float bandLow = math.min(p1, p2)
float bandHigh = math.max(p1, p2)
float bandOverlap = math.min(ih, bandHigh) - math.max(il, bandLow)
if bandOverlap > 0
float bFrac = bandOverlap / iRange
bandBuy.addAt(b, buyV * bFrac)
bandSell.addAt(b, sellV * bFrac)
The same overlap logic is then applied to the six Fibonacci bands.
Each intrabar contributes buy volume and sell volume into the band or bands it overlaps. The contribution is proportional to the amount of overlap relative to the bar’s own range.
So the delta section is not built from row totals. It is built directly from participation inside each Fibonacci segment of the swing.
14) Fallback Logic When Lower Timeframe Arrays Are Empty
else
float bo = open
float bh = high
float bl = low
float bc = close
float bv = math.max(volume , 0)
int dir = barDirFromOffset(off)
If the lower timeframe request returns no intrabar data for a specific chart bar, the script falls back to the bar itself.
It reads the normal chart timeframe OHLCV values, determines a direction using the helper method, and then distributes that bar’s volume into rows and bands using the same overlap logic.
This is important because it makes the indicator robust. The profile can still be constructed even when granular intrabar data is unavailable.
15) Point of Control Calculation
float pocVol = 0.0
float pocPrice = na
for r = 0 to rowsEff - 1
float totalRow = rowBuy.get(r) + rowSell.get(r)
if totalRow > pocVol
pocVol := totalRow
pocPrice := swing.lowPrice + rowStep * (r + 0.5)
This block finds the Point of Control.
The script scans every profile row, calculates total row volume as buy plus sell, and keeps track of the highest one. The midpoint of that strongest row becomes the Point of Control price.
So the POC is the single most active price area inside the swing based on the constructed row profile.
16) Building the Horizontal Volume Profile
int totalWidthBars = math.max(1, int(math.round(profileWidthBars * (total / maxRowTotal))))
sellWidthBars := int(math.round(totalWidthBars * (sellVol / total)))
buyWidthBars := totalWidthBars - sellWidthBars
if sellWidthBars > 0
pushBox(boxPool, profileStartX, rowHigh, profileStartX + sellWidthBars, rowLow, color.new(bearColor, 72), color.new(bearColor, 100))
if buyWidthBars > 0
int buyLeftX = profileStartX + sellWidthBars
int buyRightX = buyLeftX + buyWidthBars
pushBox(boxPool, buyLeftX, rowHigh, buyRightX, rowLow, color.new(bullColor, 72), color.new(bullColor, 100))
This is the profile drawing engine.
Each row’s total participation is scaled relative to the strongest row. That determines how wide the full profile bar should be.
Then the script splits that width between sell volume and buy volume according to their relative shares. The selling segment is drawn first, followed by the buying segment.
So each row shows both:
how much total volume was traded there,
and how that volume split between bearish and bullish participation.
17) Delta Calculation by Fibonacci Band
float deltaV = buyV - sellV
float deltaPct = totalV > 0 ? (deltaV / totalV) * 100.0 : 0.0
color dColor = math.abs(deltaV) <= 0.0000001 ? fibColor : deltaV > 0 ? bullColor : bearColor
This block calculates directional delta inside each Fibonacci band.
Delta is simply buy volume minus sell volume.
Delta percent then normalizes that difference by total volume inside the band.
If the result is positive, the band leaned bullish.
If the result is negative, the band leaned bearish.
If the result is near zero, the band was balanced.
So the delta section tells the user not just how much activity occurred in a band, but which side dominated it.
18) Scaling the Delta Bars
maxBandAbs := math.max(maxBandAbs, math.abs(buyV - sellV))
int dWidthBars = maxBandAbs > 0 and math.abs(deltaV) > 0 ? math.max(1, int(math.round(deltaWidthBars * (math.abs(deltaV) / maxBandAbs)))) : 1
pushBox(boxPool, deltaStartX, bandHigh, deltaStartX + dWidthBars, bandLow, color.new(dColor, 76), color.new(dColor, 100))
The script first finds the maximum absolute delta among all bands. Then it uses that value as the scaling reference for the delta boxes.
A band with the strongest absolute delta receives the widest box. Smaller delta bands receive proportionally narrower boxes.
So the delta profile communicates both direction and relative strength across the Fibonacci segments of the swing.
19) Drawing the Core Fibonacci Ladder
for i = 0 to fibRatios.size() - 1
float ratio = fibRatios.get(i)
float price = swing.fibPrice(ratio)
bool keyLevel = math.abs(ratio - projBaseRatio) < 0.0001 or ratio == 0.0 or ratio == 1.0
color lc = keyLevel ? color.new(fibColor, 10) : color.new(fibColor, 68)
pushLine(linePool, swing.startIndex, price, fibEndX, price, lc, keyLevel ? line.style_dashed : line.style_dotted, 1)
This loop draws the Fibonacci levels across the swing.
Every ratio from zero to one is converted into price using the earlier swing based Fibonacci method. The selected projection base level plus the zero and one boundaries are emphasized, while the other internal levels are drawn more softly.
So the user gets a full retracement map tied directly to the chosen swing.
20) Building the Projection Path and Targets
float cPrice = swing.fibPrice(projBaseRatio)
float target1 = swing.bullish ? cPrice + swing.swingRange * 1.000 : cPrice - swing.swingRange * 1.000
float target2 = swing.bullish ? cPrice + swing.swingRange * 1.272 : cPrice - swing.swingRange * 1.272
float target3 = swing.bullish ? cPrice + swing.swingRange * 1.618 : cPrice - swing.swingRange * 1.618
pushLine(linePool, swing.endIndex, swing.endPrice, cX, cPrice, color.new(projColor, 30), line.style_dashed, 2)
pushLine(linePool, cX, cPrice, t1X, target1, color.new(projColor, 0), line.style_solid, 2)
pushLine(linePool, t1X, target1, t2X, target2, color.new(projColor, 18), line.style_solid, 2)
pushLine(linePool, t2X, target2, t3X, target3, color.new(projColor, 35), line.style_solid, 2)
This is the forward projection engine.
The chosen Fibonacci retracement level becomes point C. From that point, the script projects three forward targets based on the swing range:
100 percent,
127.2 percent,
and 161.8 percent.
For bullish swings, the targets are projected upward.
For bearish swings, the targets are projected downward.
The script then connects the swing end to point C and extends the projection path forward through each target.
So the projection section transforms the structural swing into a directional roadmap.
21) Drawing Target Boxes
float zoneHalf = math.max(swing.swingRange * 0.015, syminfo.mintick * 8)
if showTargets
pushBox(boxPool, t1X - 1, target1 + zoneHalf, t1X + 2, target1 - zoneHalf, color.new(projColor, 87), color.new(projColor, 55))
pushBox(boxPool, t2X - 1, target2 + zoneHalf, t2X + 2, target2 - zoneHalf, color.new(projColor, 89), color.new(projColor, 60))
pushBox(boxPool, t3X - 1, target3 + zoneHalf, t3X + 2, target3 - zoneHalf, color.new(projColor, 91), color.new(projColor, 68))
Instead of marking the targets as exact single prices only, the script can draw small target boxes around them.
The vertical thickness of each box is based on a fraction of the swing range, with a minimum tick based width. This helps present the targets as realistic reaction zones rather than razor thin levels.
So the projection module provides both precise target labels and visual target areas. Indicator

ZenAlgo - DojiOverview
This indicator identifies Doji candles and adds two contextual filters before creating an alert: a relative volume expansion filter and a normalized directional-shift filter. Most Doji indicators simply detect candle shape. This script instead adds contextual conditions so that alerts appear only when the Doji occurs together with increased participation and a change in short-term directional pressure.
Doji candles appear frequently on their own, so the script focuses on situations where candle balance, elevated activity, and a directional shift occur at the same time.
How the indicator works
The script begins by evaluating candle structure. It measures the full candle range, the size of the body, and the size of the upper and lower wicks relative to the entire candle. A candle is considered a Doji when the body occupies only a small portion of the range.
After identifying the base Doji structure, the candle is classified into one of several common Doji types depending on the relative size of the wicks:
Dragonfly Doji – very small upper wick and long lower wick.
Gravestone Doji – very small lower wick and long upper wick.
Long-legged Doji – both wicks are relatively long.
Standard Doji – small body without the extreme wick proportions of the other types.
A Doji indicates that price moved during the bar but finished close to the opening level, suggesting temporary balance between buyers and sellers.
Volume context (PVSRA-style comparison)
After the candle structure is detected, the script evaluates trading activity.
Current volume is compared with the average volume over a recent lookback window. If current volume exceeds that average by a configurable multiple, the candle is considered to occur during elevated participation.
This step is important because a Doji formed during low activity may simply reflect quiet trading, while a Doji formed during higher participation means more trading occurred but the candle still closed near equilibrium.
Normalized price-change proxy
The script then evaluates short-term directional behavior.
It measures the percentage change between consecutive closing prices. This series is smoothed to reduce noise and then normalized relative to recent behavior. The normalization allows the script to determine whether the current directional movement is unusually positive or negative compared with recent activity.
The script compares this normalized value with the previous bar. An alert requires the value to change sign between the two bars, which indicates that the short-term directional pressure has flipped.
Why the components are combined
Each component describes a different aspect of market behavior:
The Doji describes temporary balance inside a candle.
The volume comparison measures whether that balance occurred during elevated participation.
The directional flip indicates a shift in short-term pressure.
Basic Doji markers highlight every small-body candle. This indicator is more selective because it only highlights cases where equilibrium, participation, and directional change appear together.
Final alert logic
An alert is created when the following conditions occur simultaneously:
A Doji is present on the current candle or the previous candle.
Volume exceeds the recent average by the configured multiple when the volume filter is enabled.
The normalized directional reading flips sign between two consecutive bars.
Alerts are separated into bullish and bearish categories according to the direction of the normalized reading after the flip.
How to interpret the alerts
A bullish alert means the script detected a Doji context with elevated volume and a positive directional flip.
A bearish alert means the same conditions occurred with a negative directional flip.
The alert marks a moment where price equilibrium, increased participation, and directional change appeared together. These conditions may appear near short-term transitions, pauses, or local turning points.
How to use the indicator
This indicator is intended as a contextual chart tool rather than a standalone trading system.
Use alerts to locate Doji candles confirmed by participation and directional change.
Interpret bullish alerts as possible upward transitions and bearish alerts as possible downward transitions.
Evaluate the alert location relative to support, resistance, or recent trend structure.
Combine the alerts with other analysis tools or higher timeframe context.
Why Heikin Ashi often works well
The script can be used on any chart type, but Doji detection often becomes clearer on Heikin Ashi candles.
Heikin Ashi candles smooth short-term price fluctuations by averaging values from multiple bars. Because the indicator relies on candle body and wick proportions, this smoothing reduces small random Doji created by short-term noise and produces clearer candle structures.
Limitations
Doji candles occur frequently and do not inherently indicate reversals.
Volume filters depend on the quality and meaning of the exchange’s volume data.
The directional proxy is based on price changes rather than direct order flow.
Different markets, timeframes, and preset settings can change how often alerts appear.
The indicator highlights situations where candle equilibrium, elevated participation, and directional change appear together, but it does not determine future price direction. Indicator

TickCharts [crlmx]Volume-based candlestick chart - each candle represents a fixed dollar volume, rather than a time interval. A configurable bar statistics table shows delta, CVD, and volume breakdowns per candle. Reveals market participation pace, institutional activity, and regime shifts through candle formation speed.
Key Features
Dollar volume threshold candles (default $1M)
Tick-accurate volume via PulseWire footprint API (Premium or above)
Bar statistics table with 6 configurable rows below candles
9 data types per row: Time, Volume, Delta, Buy, Sell, Delta %, Buy %, Sell %, Session CVD
Volume progress label showing dollar amount, threshold and percentage on the live candle
Streamlined input / UI brought to you by crlmx
Trading Applications
Volume candles compress during consolidation and expand during breakouts
Fast candle succession signals high participation; slow formation signals stalling
CVD tracks cumulative order flow direction across the visible range
Delta and CVD rows show buyer/seller dominance per candle
Recommended settings: Crypto (BTC/ETH): Candle Volume: $5M-$10M Index Futures (ES/NQ): Candle Volume: $1M-$2M
Commodities (Gold): Candle Volume: $500K-$1M
Version History
v0.42 (Latest - 07 Mar 2026)
Updated LTF Volume calculation to Footprint API
Added Bar statistics table with 6 configurable rows and 9 data types
Added row customisation Indicator

Luminous Volume Delta [Pineify]Luminous Volume Delta — Volume Polarity Oscillator with Surge Detection & Momentum Cloud
The Luminous Volume Delta is a volume-based momentum oscillator that decomposes total volume into buying and selling pressure, calculates the net delta, and overlays a smoothed oscillator with signal line crossovers and intelligent volume surge detection. Unlike standard volume indicators that simply display bar-by-bar volume, this indicator estimates the directional intent behind each bar's volume by classifying it as buyer- or seller-dominated based on candlestick polarity. The result is a MACD-style oscillator built entirely on volume data, giving traders a clear, actionable view of when buying or selling pressure is genuinely shifting — and when a volume surge makes that shift especially significant.
Key Features
Intrabar volume polarity estimation that splits each bar's volume into buy volume and sell volume based on candlestick direction
Raw volume delta histogram with adaptive transparency — surge bars appear vivid while normal bars remain faded for instant visual prioritization
EMA-smoothed delta line paired with an SMA signal line for MACD-style crossover detection
Volume surge detection using a configurable threshold (default: 1.618× the 50-bar average volume) to highlight bars with unusually high market participation
Momentum Cloud fill between the smoothed delta and signal line that visually encodes whether buyers or sellers currently hold the momentum advantage
Filtered buy and sell signals that only trigger when crossovers occur in optimal territory — oversold for buys, overbought for sells
How It Works
The indicator follows a three-stage calculation pipeline that transforms raw volume into a normalized momentum oscillator:
Stage 1: Volume Polarity Classification
Each bar's total volume is classified based on the relationship between its open and close prices. Bullish bars (close > open) assign 100% of volume to buyers. Bearish bars (close < open) assign 100% to sellers. Doji bars (close = open) split volume equally between buyers and sellers, reflecting market indecision. This simple yet effective heuristic provides a practical approximation of order flow without requiring tick-level data.
Stage 2: Delta Calculation and Smoothing
The raw volume delta (buy volume minus sell volume) is calculated for each bar. A positive delta indicates net buying pressure; a negative delta indicates net selling pressure. This raw delta is then smoothed using an Exponential Moving Average (EMA) with the user-defined "Delta Smoothing Length" (default: 14 periods) to reveal the underlying trend in volume flow. A Simple Moving Average (SMA) signal line is computed over the smoothed delta using the "Signal Line Length" (default: 9 periods), creating a slower reference for crossover analysis.
Stage 3: Surge Detection
A 50-period SMA of total volume establishes the baseline average volume. When the current bar's volume exceeds this average multiplied by the surge threshold (default: 1.618, inspired by the golden ratio), the bar is flagged as a volume surge. Surge bars receive vivid histogram coloring (low transparency) while normal bars remain faded (high transparency), instantly drawing the trader's attention to moments of exceptional market participation.
Trading Ideas and Insights
Accumulation and Distribution Detection — Sustained positive raw delta (green histogram bars) indicates accumulation by buyers, while sustained negative delta (red bars) reveals distribution by sellers. The smoothed delta line confirms whether this pressure is building or fading.
Momentum Crossover Entries — When the smoothed delta crosses above the signal line, buying momentum is accelerating relative to its recent average. When it crosses below, selling momentum is taking over. These crossovers function identically to MACD signal crossovers but are driven purely by volume dynamics.
Surge-Confirmed Moves — Volume surges that coincide with a delta crossover carry significantly more weight than crossovers on normal volume. A vivid green surge bar appearing alongside a bullish crossover suggests strong institutional participation behind the move.
Divergence Analysis — When price makes new highs but the smoothed delta fails to confirm with new highs of its own, it signals weakening buying conviction — a classic bearish divergence. The inverse applies for bullish divergences at price lows.
Zero-Line Context — The zero line represents equilibrium between buying and selling pressure. Crossovers of the smoothed delta above zero confirm a shift to net buyer dominance; crossovers below zero confirm net seller dominance.
How Multiple Indicators Work Together
The Luminous Volume Delta integrates three complementary analytical techniques into a unified volume analysis system:
The volume polarity estimation provides the raw directional data, the dual moving average system (EMA + SMA) creates a momentum oscillator framework, and the surge detection layer adds a volatility filter — together forming a complete volume-momentum analysis toolkit.
The raw delta histogram gives bar-by-bar granularity, showing the immediate balance of buying versus selling pressure. However, raw data is inherently noisy, which is why the EMA-smoothed delta line is overlaid to extract the trend from the noise. The EMA was chosen over an SMA for the delta line because it front-weights recent data, keeping the oscillator responsive to sudden shifts in volume flow.
The SMA signal line intentionally uses a different averaging method (SMA rather than EMA) to create a smoother, more stable reference. This deliberate mismatch between EMA and SMA produces more meaningful crossover events — the faster EMA reacts to changes in volume pressure while the slower SMA confirms that the shift is sustained rather than transient.
The surge detection system operates independently from the oscillator but provides critical context. A crossover signal on normal volume may represent routine market fluctuation, while the same crossover accompanied by a volume surge (highlighted by vivid histogram coloring) suggests genuine conviction behind the move. The golden ratio threshold (1.618×) provides a mathematically balanced sensitivity that captures meaningful volume spikes without flagging every minor uptick.
The Momentum Cloud fill between the delta and signal lines synthesizes the relationship between these two components into a single visual element — green when the delta leads (bullish momentum advantage) and red when the signal leads (bearish momentum advantage).
Unique Aspects
Volume-native oscillator — While most oscillators are price-derived (RSI, Stochastic, MACD), this indicator builds its entire oscillator framework from volume data, providing a fundamentally different perspective on market momentum.
Adaptive transparency histogram — The dual-transparency system (15% for surges, 75% for normal bars) creates an automatic visual hierarchy that highlights the most important volume events without requiring the trader to scan for them manually.
Golden ratio surge threshold — The default 1.618× multiplier is rooted in the golden ratio, providing a naturally balanced detection sensitivity that has been observed to align well with significant volume expansion events across various markets and timeframes.
Zone-filtered signals — Buy signals require the crossover to occur in negative territory (oversold accumulation), and sell signals require it in positive territory (overbought distribution). This filtering eliminates low-conviction signals that occur in neutral mid-range territory.
Mixed MA crossover design — Using an EMA for the delta line and an SMA for the signal line is a deliberate design choice that balances responsiveness with stability, producing higher-quality crossover signals than same-type MA pairs.
How to Use
Add the Luminous Volume Delta indicator to your chart. It will appear in a separate panel below the price chart.
Observe the histogram bars for immediate volume delta context — green bars indicate net buying pressure, red bars indicate net selling pressure. Vivid (bright) bars signal a volume surge event.
Monitor the blue smoothed delta line and orange signal line for crossover signals. A bullish crossover (delta crossing above signal) in negative territory suggests accumulation is beginning. A bearish crossover in positive territory suggests distribution is starting.
Use the Momentum Cloud color to confirm the prevailing volume momentum direction — green cloud means buyers are in control, red cloud means sellers dominate.
Pay special attention when surge bars coincide with crossover signals — these high-volume crossovers carry significantly more conviction than normal-volume crossovers.
Watch for divergences between price and the smoothed delta line to identify potential trend exhaustion before it becomes visible in price action.
Combine with price action analysis, support/resistance levels, or trend-following indicators for additional confirmation before executing trades.
Customization
Delta Smoothing Length (default: 14) — Controls the EMA period applied to the raw volume delta. Increase for smoother, longer-term volume trend analysis (20-30); decrease for more responsive, shorter-term signals (7-10).
Signal Line Length (default: 9) — Controls the SMA period applied to the smoothed delta. Higher values produce fewer but more reliable crossover signals; lower values increase signal frequency at the cost of more noise.
Volume Surge Threshold (default: 1.618) — The multiplier of the 50-bar average volume that triggers surge highlighting. Increase to only flag extreme volume events (2.0-3.0); decrease for more sensitive surge detection (1.2-1.5).
Bullish / Bearish Colors — Customize the histogram and cloud fill colors to match your chart theme.
Delta Line / Signal Line Colors — Adjust the oscillator line colors for optimal visibility against your chart background.
Conclusion
The Luminous Volume Delta offers a methodologically distinct approach to momentum analysis by building its oscillator framework entirely from volume polarity data rather than price. By combining intrabar volume classification, dual moving average smoothing, and adaptive surge detection into a single cohesive system, it provides traders with insights that pure price-based indicators cannot deliver — specifically, who is in control (buyers or sellers), how strongly they are in control (surge vs. normal volume), and when that control is shifting (crossover signals filtered by momentum zone). Whether you are a day trader looking for volume-confirmed entries, a swing trader seeking accumulation and distribution patterns, or a position trader monitoring institutional participation, this indicator provides a structured, visually intuitive framework for understanding the volume dynamics that drive price movement.
Indicator

Indicator

Delta Ladder Order Flow [UAlgo]Delta Ladder Order Flow is an overlay order flow visualizer that builds a per bar delta ladder using lower timeframe candles as an intrabar proxy. For each recent bar, the script pulls the underlying lower timeframe open, high, low, close, and volume arrays, then distributes volume into discrete price buckets. Each bucket accumulates estimated buy volume and sell volume, producing a ladder that resembles a footprint style view.
The display focuses on three core outputs:
A delta heatmap ladder where each price level is colored by net delta dominance
A Point of Control highlight that marks the highest total volume level inside the bar
A stacked imbalance detector that scans diagonally across levels to identify aggressive one sided participation and optionally projects that stack forward
The system is designed with stability controls for real world chart conditions. It includes dynamic scaling to prevent excessive level counts on high range bars, object budgeting through bars to draw limits, and text filtering to reduce clutter.
🔹 Features
1) Intrabar Resolution via Lower Timeframe Data
The ladder is constructed using request.security_lower_tf. You select an Intrabar Resolution timeframe that must be lower than the chart timeframe. The script then receives arrays of LTF candles for each chart bar and uses them as a proxy for footprint style aggregation.
This approach provides a practical order flow approximation on PulseWire charts without requiring native tick level data.
2) Ladder Aggregation with Tick Size Multiplier
Price levels are aggregated using the symbol mintick multiplied by a user multiplier. Increasing the multiplier produces thicker ladder steps and fewer levels. Decreasing it produces finer granularity but increases the number of boxes drawn.
This control is critical for balancing detail versus performance across different symbols and volatility regimes.
3) Dynamic Scaling to Prevent High Range Bar Overload
A single volatile bar can contain too many price steps if the granularity is too fine. To prevent crashes, the script estimates how many steps would be required for the bar and increases the effective step size when the raw step count exceeds Max Levels per Bar.
This keeps rendering stable even during high volatility events while still maintaining a consistent ladder representation.
4) Buy, Sell, and Neutral Volume Attribution
Each LTF candle’s direction is inferred from its open and close:
Close above open is treated as buy side volume
Close below open is treated as sell side volume
Close equal open is treated as neutral and split evenly between buy and sell
Volume is then distributed across the price buckets covered by the LTF candle range so that wide candles spread their influence across multiple levels.
5) Delta Heatmap Ladder with Intensity Scaling
Each price bucket computes delta as buy volume minus sell volume and total volume as the sum of both. Ladder cells are colored positive or negative based on delta sign, and transparency is scaled by how dominant the delta is relative to the maximum total volume level inside that bar. This yields a compact heatmap where strong imbalances visually stand out.
A square root curve is applied to intensity to improve mid tone visibility without making everything fully opaque.
6) Point of Control Highlight
The ladder tracks the price level with the highest total volume and marks it as the Point of Control. When enabled, the POC row uses a dedicated border color and a stronger border width so the acceptance anchor is immediately visible.
7) Stacked Imbalance Detection and Projection
The script can detect stacked diagonal imbalances. It compares volume across adjacent price levels using a diagonal logic similar to footprint tools:
Bullish diagonal checks buy volume at a level versus sell volume at the level below
Bearish diagonal checks sell volume at a level versus buy volume at the level above
An imbalance requires the winning side to exceed the losing side by the configured Imbalance Ratio and also exceed a minimum volume threshold to filter low volume noise. When consecutive imbalanced levels reach the Stacked Levels count, the stack is marked and optionally extended forward as a zone.
Stack members also override normal heatmap coloring and are rendered more solid for emphasis.
8) Clean Visual Controls
Several options support readability:
Bars to Draw limits workload and object count
Show Delta Values can be toggled on or off
Min Delta to Show Text filters small prints
Ladder Width percent controls how wide the ladder is relative to the bar space
Text size can be adjusted for different chart zoom levels
Box outline can be hidden by default for a cleaner footprint aesthetic
🔹 Calculations
1) Intrabar data acquisition (lower timeframe arrays)
The script requests arrays of LTF OHLCV values for each chart bar using request.security_lower_tf.
ltf_open = request.security_lower_tf(syminfo.tickerid, tf_input, open)
ltf_close = request.security_lower_tf(syminfo.tickerid, tf_input, close)
ltf_high = request.security_lower_tf(syminfo.tickerid, tf_input, high)
ltf_low = request.security_lower_tf(syminfo.tickerid, tf_input, low)
ltf_vol = request.security_lower_tf(syminfo.tickerid, tf_input, volume)
These arrays contain the lower timeframe candles that make up each chart bar. Each chart bar index has its own embedded array.
2) Base tick step (bucket size control)
Bucket size starts from mintick multiplied by Tick Size Multiplier.
var float base_tick_step = syminfo.mintick * tick_size_mult
This is the baseline price increment used to build the ladder levels.
3) Last bar execution model (performance design)
The script only builds and draws ladders when barstate.islast is true. It then reconstructs the last N bars using an index offset.
if barstate.islast
int start_idx = math.max(0, bar_index - bars_to_draw + 1)
for i = start_idx to bar_index
int offset = bar_index - i
float arr_o = ltf_open
float arr_c = ltf_close
float arr_h = ltf_high
float arr_l = ltf_low
float arr_v = ltf_vol
This design dramatically reduces CPU and memory load compared to updating every bar.
4) Dynamic scaling per bar (anti crash protection)
For each bar, the script estimates how many price steps would be needed using the current bucket size. If that count exceeds Max Levels per Bar, it increases the step size only for that bar.
float bar_h = high
float bar_l = low
float bar_range = bar_h - bar_l
float raw_steps = bar_range / base_tick_step
int scaler = 1
if raw_steps > max_levels_per_bar
scaler := int(math.ceil(raw_steps / max_levels_per_bar))
float current_tick_step = base_tick_step * scaler
Result:
Calm bars use fine granularity
High range bars are automatically compressed into fewer buckets
5) LTF candle direction classification (buy, sell, neutral)
Each LTF candle is classified using its open and close. Neutral candles split volume evenly.
bool is_buy = c > o
bool is_sell = c < o
bool is_neutral = c == o
This is a heuristic proxy for aggressor side. It is not true bid ask data.
6) Align LTF candle range to bucket grid
The candle low and high are rounded to the current tick step so bucket prices align cleanly.
float low_aligned = math.round(l / current_tick_step) * current_tick_step
float high_aligned = math.round(h / current_tick_step) * current_tick_step
7) Step counting and volume per step
The script computes how many bucket levels the candle touches and divides volume equally across them.
int steps = int(math.round((high_aligned - low_aligned) / current_tick_step)) + 1
if steps > 500
steps := 500
float vol_per_step = v / steps
This means wide candles distribute volume across more ladder cells, while tight candles concentrate volume into fewer cells.
8) Writing volume into the ladder map (PriceLevel storage)
Each chart bar owns a DeltaLadder with a map of price to PriceLevel. Each PriceLevel stores buy and sell volume. Volume is added step by step.
type PriceLevel
float price
float buy_vol = 0.0
float sell_vol = 0.0
type DeltaLadder
int bar_idx
map levels
float min_price = 10000000.0
float max_price = 0.0
float max_vol_level = 0.0
float poc_price = na
float poc_vol = 0.0
The add method updates volumes and also tracks max volume and POC:
method add_volume(DeltaLadder this, float price, float vol, bool is_buy, bool is_neutral) =>
if not this.levels.contains(price)
this.levels.put(price, PriceLevel.new(price))
PriceLevel lvl = this.levels.get(price)
if is_neutral
lvl.buy_vol += vol * 0.5
lvl.sell_vol += vol * 0.5
else if is_buy
lvl.buy_vol += vol
else
lvl.sell_vol += vol
float t = lvl.total()
if t > this.max_vol_level
this.max_vol_level := t
if t > this.poc_vol
this.poc_vol := t
this.poc_price := price
The main loop calls this method for each bucket level touched by each LTF candle:
for p = 0 to steps - 1
float level_price = low_aligned + (p * current_tick_step)
ladder.add_volume(level_price, vol_per_step, is_buy, is_neutral)
9) Delta and total volume formulas
Delta and total are defined as methods on PriceLevel.
method delta(PriceLevel this) =>
this.buy_vol - this.sell_vol
method total(PriceLevel this) =>
this.buy_vol + this.sell_vol
These values drive both coloring and POC selection.
10) Stacked imbalance detection (diagonal footprint logic)
Prices are sorted so neighbor comparisons are correct. A stack_map stores whether each price belongs to a bullish or bearish stacked run.
float prices = ladder.levels.keys()
array.sort(prices)
map stack_map = map.new()
Diagonal comparisons:
Bullish diagonal compares BuyVol at level i with SellVol at level below i minus 1
Bearish diagonal compares SellVol at level i with BuyVol at level above i plus 1
Bullish check includes a zero handling rule:
if i > 0
float p_below = array.get(prices, i-1)
PriceLevel lvl_below = ladder.levels.get(p_below)
if lvl_below.sell_vol == 0
if lvl.buy_vol > imb_min_vol
direction := 1
else
if lvl.buy_vol > lvl_below.sell_vol * imb_ratio and lvl.buy_vol > imb_min_vol
direction := 1
Bearish check includes symmetric logic:
if i < array.size(prices) - 1
float p_above = array.get(prices, i+1)
PriceLevel lvl_above = ladder.levels.get(p_above)
if lvl_above.buy_vol == 0
if lvl.sell_vol > imb_min_vol
direction := -1
else
if lvl.sell_vol > lvl_above.buy_vol * imb_ratio and lvl.sell_vol > imb_min_vol
direction := -1
Runs are tracked and only accepted if the number of consecutive levels meets the stacked requirement:
if math.abs(i - run_start_idx) >= stack_count
for k = run_start_idx to i - 1
stack_map.put(array.get(prices, k), run_dir)
The script also draws a projected zone for the detected stack band:
box.new(right_time, p_top + current_tick_step/2, right_time + 1000 * 60 * 60 * 24, p_bot - current_tick_step/2,
xloc=xloc.bar_time, border_width=0, bgcolor=color.new(c_stack, 85), extend=extend.right)
11) Heatmap intensity and transparency mapping
For each price level, intensity is computed as abs(delta) relative to the maximum total volume level in the bar, then curved and mapped into transparency.
float intensity = ladder.max_vol_level > 0 ? math.abs(delta) / ladder.max_vol_level : 0
intensity := math.min(intensity, 1.0)
float curved_intensity = math.sqrt(intensity)
float transp = 97 - (curved_intensity * 57)
Stacked members force stronger visibility:
if stack_map.contains(p)
intensity := 1.0
transp := 30
12) POC marking in the drawing pass
POC is detected during volume accumulation, then used in rendering to upgrade the border style for that cell.
bool is_poc = show_poc and (p == ladder.poc_price)
color border_c = is_poc ? col_poc : col_outline
int border_w = is_poc ? 2 : 1
13) Delta text rendering filter
Text labels are optional and can be filtered by a minimum absolute delta threshold.
if show_text and math.abs(delta) >= text_threshold
string txt = str.tostring(delta, format.volume)
label.new(int((left_time + right_time)/2), p, txt,
xloc=xloc.bar_time, style=label.style_none,
textcolor=txt_col, size=text_size)
Indicator

Delta Strike: Order Flow Absorption & Momentum Confirmation**Delta Strike** is a professional-grade quantitative tool designed for traders who prioritize institutional logic over simple price action. It moves beyond traditional "buy/sell" indicators by dissecting the battle between **Passive Absorption** and **Aggressive Initiative** using underlying Order Flow data.
### 🛡️ The Core Philosophy: "Wait for the Trap, Trade the Escape"
Markets rarely reverse instantly. **Delta Strike** follows a rigorous two-step verification process to filter out noise and hunt for high-probability institutional footprints:
1. **Phase 1: Institutional Absorption (Left-Side Setup)**
The system identifies "Base Bars" where high volume and extreme Delta (passive buying/selling) occur, but price fails to continue. This indicates that a large player is absorbing the current move.
2. **Phase 2: Aggressive Strike (Right-Side Confirmation)**
We do not "catch the knife." Instead, the indicator monitors the next **N bars** for a confirmed strike. A signal is only triggered when price engulfs the base bar and is backed by a significant **Active Delta Percentage**, proving that the "absorber" has now become the "aggressor."
### 🚀 Key Technical Features
* **Dual-Cycle Volume Matrix**: Unlike standard indicators, Delta Strike analyzes volume across two lookback periods simultaneously (Short-term 20 & Long-term 50). It classifies setups into three categories:
* 🔥 **Dual-Cycle Convergence** (Maximum Strength)
* ⚡ **Short-term Spike** (Local Volatility)
* 🌊 **Macro Volume Surge** (Long-term Accumulation)
* **Active Delta Intensity Filter**: Every confirmation bar is evaluated for its "Net Win Ratio." By filtering out low-conviction, low-volume breakouts, it ensures you only follow moves with real institutional backing.
* **RSI Environment Guard**: Integrated RSI logic ensures that bottom absorption is only hunted in "Oversold" zones and top absorption in "Overbought" zones, significantly reducing whipsaws in sideways markets.
* **Validated SuperTrend (Delta-Sync)**: A modified SuperTrend algorithm that requires a "Delta Handshake." A trend flip is only considered valid if price and Delta move in the same direction, preventing "fake-outs" during low-liquidity periods.
### 📊 Clean & Actionable UI
* **Base Bar Highlight**: When a setup is confirmed, the script retroactively draws a **Yellow (Bullish)** or **Fuchsia (Bearish)** box around the original absorption bar.
* **Trace Lines**: Dashed lines connect the original institutional entry to your current entry point, providing immediate visual context for the trade's logic.
* **Momentum Rating (🐂/🐻)**:
* **3 Stars (🐂🐂🐂)**: Extreme Delta Strike (>20% Net Win).
* **2 Stars (🐂🐂)**: High Conviction Strike (>10% Net Win).
* **1 Star (🐂)**: Standard Confirmation.
### 🔔 Smart Alert System
Equipped with a fully customizable alert suite. You can set alerts for:
* **Absorption Confirmations** (Long/Short)
* **Validated SuperTrend Breakouts**
*Note: For the most accurate results, it is recommended to use "Any alert() function call" and set frequency to "Once Per Bar Close" to avoid repainting during intra-bar fluctuations.*
---
### How to use:
1. Look for the ** ** label and highlighted box.
2. Wait for the **Strike icons (🐂/🐻)** to appear within the N-bar window.
3. Combine with your existing Support/Resistance levels for optimal strike rates.
--- Indicator

Price-Point Volume Oscillator [LuxAlgo]The Price-Point Volume Oscillator indicator estimates the volume distribution at the current price level by analyzing historical bars that intersect with the current market price.
🔶 USAGE
This tool provides a unique perspective on volume by filtering historical price action to show only the volume that occurred when the price was at its current level. This helps traders identify whether the current price point has historically been a zone of high buying pressure, heavy selling, or balanced distribution.
The indicator consists of several visual components:
Buy/Sell Volume Areas: The background shows the estimated buying volume (green area) and selling volume (red area) accumulated at the current price over the lookback period.
Volume Delta Histogram: The central histogram represents the net difference (Delta) between buy and sell volume. A green histogram indicates a net positive buying bias at the current price, while a red histogram indicates a net negative selling bias.
Dashboard: A real-time table providing specific metrics, including estimated Buy/Sell totals, the net Delta, and the Delta Percentage.
Traders can use this oscillator to confirm support or resistance levels. For example, if the price approaches a previous level and the Delta Histogram shows significant buying volume at that specific price point, it may suggest strong historical demand.
🔶 DETAILS
The script operates by looping through a user-defined lookback window. For every historical bar, it checks if the current close price falls within that bar's High-Low range. If it does, the volume from that historical bar is "allocated" to the current price level.
To differentiate between buying and selling volume, the script uses a ratio based on where the historical bar closed relative to its range. If a historical bar closed near its high, a larger portion of its volume is attributed to "Buy Volume" at the current price.
🔶 SETTINGS
🔹 Settings
Lookback Window: Determines the number of historical bars the indicator analyzes to find price intersections. A larger window provides a more comprehensive historical view but requires more calculations.
🔹 Visuals
Show Dashboard: Toggles the visibility of the real-time statistics table.
Position: Controls where the dashboard is anchored on the chart (Top Right, Bottom Right, or Bottom Left).
Size: Adjusts the text and table size of the dashboard to fit different screen resolutions.
Indicator

Dynamic Delta FVG [LuxAlgo]The Dynamic Delta FVG indicator provides a comprehensive analysis of Fair Value Gaps (FVGs) by integrating intra-bar volume delta to visualize the internal buying and selling pressure within price imbalances.
🔶 USAGE
The script identifies standard Fair Value Gaps and enhances them by splitting the visual representation into two distinct segments based on volume delta. This allows traders to see exactly where institutional aggressive orders were concentrated during the formation of the gap.
Users can utilize this tool to:
Identify high-probability FVGs where the volume delta aligns with the gap direction. Determine specific price levels within a gap that acted as the primary "point of control" for buyers or sellers. Monitor real-time sentiment through a dynamic dashboard that aggregates the delta of all active imbalances. Filter out insignificant market noise using ATR and volume-based threshold settings.
🔹 Detailed Buyer/Seller Tags
Each active FVG features a dynamic tag on the right edge displaying the specific percentage of buying (B) and selling (S) volume that occurred within that price range. The tag background color shifts based on the dominant force, providing an immediate visual cue of the gap's internal strength. These tags move dynamically as the boxes expand, ensuring they always remain at the current price action edge.
🔹 Filter Overlapping
When enabled, the script will automatically remove existing active FVGs that overlap with a new discovery. This ensures only the most recent "current" imbalance is displayed in a specific price zone, preventing visual clutter and focusing on the most relevant institutional levels.
🔹 Mitigation Modes
The script supports two mitigation modes to suit different trading styles:
**Touch:** A gap is considered mitigated as soon as price enters the range. **Full Fill:** A gap remains active until price has completely traversed the entire range of the imbalance.
🔶 DETAILS
The indicator utilizes
request.security_lower_tf()
to fetch granular volume data from lower timeframes (e.g., 1-second data). This allows for a precise calculation of "Buy Volume" versus "Sell Volume". The split in the FVG box represents the ratio of these volumes. For example, if an FVG has 70% buying volume, the green segment will occupy 70% of the vertical height of the box, while the red segment occupies the remaining 30%.
🔹 Aggregate Sentiment Dashboard
The dashboard calculates market strength across all active imbalances rather than just categorizing by gap direction. This means if multiple bullish FVGs contain significant "absorbed" selling volume, the "Seller Strength" metric will accurately reflect this bearish pressure. The Net Sentiment is derived from the net difference between aggregate buyer and seller percentages across all active gaps.
🔶 SETTINGS
🔹 Detection Filters
**Min Volume Threshold:** Multiplier for the 20-period average volume. Gaps forming on volume lower than this threshold are ignored. **Min ATR Magnitude:** Sets the minimum required size of the FVG relative to the current ATR. **Mitigation Mode:** Determines whether a touch or a full fill "closes" the gap. **Filter Overlapping:** When enabled, the script deletes older active gaps that overlap with new ones.
🔹 Volume Delta Analysis
**Delta Timeframe:** The lower timeframe used for volume calculations. Required for higher precision on 1m charts.
🔹 Visuals
**Max Active Gaps:** Limits the number of boxes displayed on the chart (Default: 10). **Buyer/Seller Color:** Customizable colors for the split segments within the FVG. **Show Mitigated Gaps:** When enabled, mitigated gaps remain on the chart with a faded appearance.
🔹 Dashboard
**Show Dashboard:** Toggles the real-time sentiment and imbalance summary table. **Position/Size:** Controls the UI placement and scale of the dashboard. Indicator

Liquidation Heatmap by RumiancevLiquidation Heatmap by Rumiancev
Overview
Liquidation Heatmap is an open-source visual map of estimated liquidation zones built from activity spikes .
When the script detects an unusually large spike, it projects liquidation levels for multiple leverage tiers and aggregates them into horizontal price “bins”. Each bin accumulates weight over time and is displayed as a color gradient:
• Brighter / hotter = higher accumulated weight
• Darker / colder = lower accumulated weight
Important: This is not an exchange liquidation feed and it does not display “real liquidation prices”. It is a proxy model designed to visualize where liquidation pressure could be clustering based on abnormal market activity.
Why BTCUSDT.P is recommended
For the most consistent and “liquidation-relevant” behavior, use a perpetual futures symbol such as BTCUSDT.P .
Perpetual markets provide Open Interest , so the script can use OI Delta (change in OI) as the spike stream. OI delta typically reflects leveraged positioning changes (build-up / flushes) more directly than spot volume.
• On perpetuals → OI data is available → spikes are usually cleaner for this model
• On spot → OI is not available → the script may fall back to volume, which can be noisier
If needed, set OI Symbol Override manually (examples are shown in the input tooltip).
How it works (logic)
1) Select a spike stream
• AUTO : uses OI Delta if available, otherwise Volume
• OI : forces OI Delta
• VOL : forces Volume only
2) Detect spike events
The script measures abnormal activity using a Z-score style approach on the absolute stream:
• Spike Lookback defines the baseline window
• Sensitivity maps to a threshold (lower = more events, higher = fewer events)
• Min bars between events optionally reduces clustering on lower timeframes
3) Project liquidation prices
For each spike event, liquidation estimates are calculated for up to three leverage tiers:
• Long liquidations are projected below the reference price
• Short liquidations are projected above the reference price
4) Bin, accumulate, and colorize
Projected levels are snapped into bins using Bin Scale (ticks) .
Bin weight is accumulated and displayed as a gradient between Low density and High density .
5) Freeze on touch
When price touches a bin (wick or close, depending on settings), the bin is frozen :
• it stops updating
• it becomes dotted / high transparency
This keeps a lightweight history of zones that have been interacted with.
How to read the map
• Bins below price often represent potential long-liquidation pressure zones
• Bins above price often represent potential short-liquidation pressure zones
• Brighter bins = more accumulated spike weight → potentially more crowded zone
• Frozen dotted bins = price already touched that zone (historical interaction)
Timeframes (recommendations)
This indicator runs on any timeframe, but density/noise changes significantly.
Best balance (recommended):
• 15m / 1H / 4H — good signal-to-noise and clean structure
Higher timeframes (cleaner, fewer zones):
• 12H / 1D — fewer events, more “macro” zones
Lower timeframes (noisier by nature):
• 1m / 3m / 5m — more spikes and more bins
To reduce clutter on low TF, consider:
• increasing Sensitivity (e.g., 14–18)
• enabling Min bars between events (e.g., 10–30)
• increasing Bin Scale (ticks) (thicker bins → fewer levels)
• enabling Keep only local range bins
Inputs (what each setting does)
Source
• Source Mode : AUTO / VOL / OI
• OI Symbol Override : manual OI source if AUTO is not suitable
Event (Spike) Filter
• Spike Lookback : baseline window for mean/stdev
• Sensitivity : lower = more events, higher = fewer events
• Use high/low for touch test : wick-based touches
• Min bars between events : reduces spike clustering
Liquidation Levels (bins)
• Reference Price : base price for projections (close/hl2/etc.)
• Leverage 1/2/3 : leverage tiers (set to 0 to disable any tier)
• Bin Scale (ticks) : bin thickness (bigger = fewer bins)
• Extend (bars) : how long active bins extend
• Max active bins per side : cap for active bins
• Dispersion (%) : splits part of the weight to the opposite side
• Keep only local range bins + Local range lookback : trims bins far from recent range
Visual
• Gradient colors, frozen transparency, legend, and debug marker
Limitations / Disclaimer
This script is provided for research and educational purposes only . It is not financial advice .
The plotted zones are estimates derived from a simplified model (spike detection + leverage projections). Results depend on symbol, exchange data availability (OI), and timeframe.
Indicator

Volumetric Supply and Demand Zones [BOSWaves]Volumetric Supply and Demand Zones - Impulse-Based Zone Detection with Embedded Volume Profile Analysis
Overview
Volumetric Supply and Demand Zones is an impulse-driven zone identification system that marks significant reversal areas through swing detection and volume accumulation patterns, where zone boundaries dynamically reflect actual trading activity concentration rather than arbitrary price levels.
Instead of relying on traditional horizontal support/resistance lines or fixed pivot structures, zone placement, thickness, and volumetric composition are determined through ATR-normalized impulse detection, volume profile distribution analysis, and delta decomposition within base formation periods.
This creates adaptive supply and demand boundaries that reflect actual volume accumulation patterns rather than simple price extremes - contracting zones around high-volume concentration areas when profile shows tight distribution, expanding zones during dispersed volume activity, and incorporating positive/negative delta breakdowns to reveal whether zones formed under buying or selling pressure dominance.
Price interactions are therefore evaluated relative to volume-weighted zone structures and point-of-control levels rather than conventional naked price zones.
Conceptual Framework
Volumetric Supply and Demand Zones is founded on the principle that meaningful reversal zones emerge where significant volume accumulated during consolidation before impulse moves rather than at simple swing high/low pivot points.
Traditional supply and demand methods identify zones using price structure alone through swing detection or candlestick patterns, which often ignores the underlying volume distribution and buying/selling pressure that validates institutional accumulation or distribution. This framework replaces price-only logic with volume-weighted zone construction informed by actual trading activity concentration and delta composition.
Three core principles guide the design:
Zone boundaries should encompass base formation periods preceding impulse moves, not isolated pivot candles alone.
Volume profile distribution within zones must reveal where actual trading activity concentrated, identifying true points of control.
Delta decomposition exposes whether zones formed under buying pressure (demand accumulation) or selling pressure (supply distribution).
This shifts supply and demand analysis from naked price levels into volume-validated, delta-aware institutional footprint zones.
Theoretical Foundation
The indicator combines swing pivot detection, ATR-based impulse measurement, volume profile construction, and delta decomposition analysis.
A pivot detection system identifies local swing highs and lows using configurable left/right bar parameters. Impulse validation measures the subsequent price move magnitude relative to ATR, confirming whether the swing preceded a significant directional thrust. Zone boundaries encompass a lookback period of candles forming the base, with maximum height capped by ATR multiplier to prevent excessively large zones. Volume profile divides each zone into horizontal rows, distributing volume proportionally based on price overlap and identifying the point of control (highest volume row). Delta profile separates volume into buying versus selling components using close-open relationships, revealing net directional pressure within each profile row.
Five internal systems operate in tandem:
Swing Detection Engine : Identifies pivot highs and lows using symmetrical left/right bar confirmation for potential zone anchor points.
Impulse Validation System : Measures price movement magnitude following pivot formation, requiring ATR-multiple threshold breach to confirm zone significance.
Volume Profile Constructor : Divides zone height into configurable rows, allocates volume proportionally based on bar price range overlap with each row, identifies POC as highest-volume row.
Delta Decomposition Engine : Separates volume into buying (up-close bars) versus selling (down-close bars) components within each profile row, calculates net delta and dominant pressure direction.
Zone Merge Logic : Detects overlapping zones of same type (supply/supply or demand/demand), combines boundaries and recalculates volume/delta statistics with weighted blending.
This design allows supply and demand zones to reflect actual volume accumulation reality rather than reacting mechanically to price pivots alone.
How It Works
Volumetric Supply and Demand Zones evaluates price through a sequence of volume-aware zone construction processes:
Pivot Identification : Swing detection algorithm identifies local highs and lows using configurable left/right bar symmetry, marking potential reversal zone anchors.
Impulse Magnitude Validation : Following pivot formation, price movement measured relative to ATR over lookback period - move must exceed ATR multiplier threshold to confirm zone validity.
Base Period Boundary Definition : Zone encompasses pivot bar plus configurable lookback candles forming the consolidation base preceding impulse move.
Height Normalization : Raw zone height (high to low of base period) capped at maximum ATR multiplier to prevent zones becoming unreasonably large during extended consolidations.
Volume Profile Row Allocation : Zone divided into configurable number of horizontal rows, each bar's volume distributed proportionally based on price range overlap with row boundaries.
Point of Control Identification : Row with highest accumulated volume marked as POC, representing price level with maximum trading activity concentration within zone.
Delta Component Separation : Each bar's volume classified as buying (close > open) or selling (close < open), allocated to respective delta buckets within overlapping profile rows.
Delta Profile Construction : Net delta (buy volume minus sell volume) calculated per row, rendered as horizontal bars extending from zone right edge inward with green (positive) or red (negative) coloring.
Overlap Detection and Merging : New zones checked against existing zones of same type, overlapping zones within merge gap threshold combined with boundary expansion and volume/delta statistics aggregation.
Mitigation Detection : Price interaction monitoring using configurable method (wick or close) determines when zones violated, triggering zone deletion and cleanup of all visual elements.
Together, these elements form a continuously updating supply and demand framework anchored in volume accumulation reality and delta pressure composition.
Interpretation
Volumetric Supply and Demand Zones should be interpreted as volume-validated institutional footprint zones:
Demand Zones (Green) : Form at swing lows preceding upward impulse moves exceeding ATR threshold - represent areas where buyers accumulated positions before markup phase, volume profile shows where bids concentrated.
Supply Zones (Red) : Establish at swing highs preceding downward impulse moves exceeding ATR threshold - identify areas where sellers distributed positions before markdown phase, volume profile shows where offers concentrated.
Volume Profile Bars : Horizontal bars extending from zone left edge show relative volume distribution across price levels - longer bars indicate higher trading activity, revealing true institutional accumulation/distribution levels versus arbitrary zone edges.
Point of Control Line (White) : Horizontal line within zone marks price level with maximum volume concentration - represents the most significant institutional activity level, often acts as magnetic price level during retests.
Delta Profile Bars : Horizontal bars extending from zone right edge inward display net buying/selling pressure per price level - green bars show buy volume dominance (accumulation), red bars show sell volume dominance (distribution).
Zone Info Box : Text panel on right edge displays zone type (SUPPLY/DEMAND), status (Fresh/Tested), total volume, net delta, and touch count - provides quantitative validation of zone significance.
Fresh Status : Newly created zones not yet tested by price - highest probability reversal zones as institutional orders likely remain unfilled.
Tested Status : Zones where price returned and interacted with boundaries - touch count reveals how many times zone provided support/resistance, excessive touches suggest weakening.
Merged Zones : Wider zones with higher volume/delta values formed by combining multiple overlapping base periods - represent extended institutional accumulation/distribution areas with greater significance.
POC Brightness : Brightest (white) volume profile bar marks point of control - visual emphasis highlights the most critical price level within zone structure.
Volume distribution shape, POC placement, delta composition, and touch count outweigh simple zone boundary reactions.
Signal Logic & Visual Cues
Volumetric Supply and Demand Zones presents zone interaction insights rather than discrete directional signals:
Fresh Zone Formation : New supply or demand zone created when swing pivot followed by ATR-threshold impulse - suggests institutional footprint left behind, high-probability reversal area established.
First Retest (Fresh → Tested) : Price returning to previously untouched zone triggers status change and touch increment - historically highest-probability reaction level as unfilled orders likely remain.
POC Magnetic Behavior : Price gravitating toward white POC line during zone interaction - suggests institutional activity concentration level acting as support/resistance within broader zone.
Volume Profile Asymmetry : Profile showing volume concentrated at zone edge versus center reveals base formation character - edge concentration suggests quick accumulation before impulse, center concentration indicates prolonged consolidation.
Delta Divergence Patterns : Demand zones showing negative delta profile (red bars dominant) or supply zones showing positive delta (green bars) reveal weak zone formation - pressure composition conflicted with expected direction.
Delta Confirmation Patterns : Demand zones with strong positive delta (green bars) or supply zones with strong negative delta (red bars) validate institutional conviction - pressure aligned with expected reversal direction.
Excessive Touch Degradation : Touch count exceeding 3-4 interactions suggests zone weakening - repeated tests consume institutional orders, reducing reversal probability.
Mitigation Events : Price closing beyond zone boundaries (or wicking through, based on settings) triggers zone deletion - invalidation confirms institutional levels failed, trend continuation likely.
The primary value lies in volume-validated zone structure and delta composition analysis rather than simple boundary touches.
Strategy Integration
Volumetric Supply and Demand Zones fits within institutional footprint and order flow-aware trading approaches:
Fresh Zone Reversal Entries : Enter counter-trend positions at first retest of fresh zones with strong delta confirmation - unfilled institutional orders provide high-probability reaction levels.
POC-Precise Limit Orders : Place entries at POC line rather than zone edges - point of control represents maximum volume concentration, offering tighter stop placement and better risk/reward.
Delta-Filtered Zone Selection : Prioritize demand zones showing positive net delta and supply zones showing negative net delta-aligned pressure composition validates institutional conviction.
Volume Profile Distribution Analysis : Favor zones with tight volume concentration (profile bars clustered) over dispersed distribution - concentrated profiles suggest decisive institutional accumulation/distribution.
Merge-Enhanced Conviction : Treat merged zones with higher volume/delta totals as stronger reversal candidates - combined statistics represent extended institutional activity periods.
Touch Count Degradation Filtering : Reduce position sizing or avoid zones with 3+ touches - excessive interaction depletes institutional orders, weakening reversal probability.
Trend Continuation via Mitigation : Enter breakout positions when price closes beyond supply zones (uptrend) or demand zones (downtrend) - mitigation confirms trend strength overwhelming institutional levels.
Multi-Timeframe Zone Confluence : Apply higher-timeframe zones for macro structure, use lower-timeframe volume profile to identify precise entry levels within larger zones.
Technical Implementation Details
Core Engine : Pivot detection with symmetrical left/right confirmation, ATR-normalized impulse validation
Zone Construction : Base period lookback with ATR-capped height normalization and time-based extension
Volume Profile System : Proportional volume allocation across configurable rows with overlap percentage calculation
Delta Engine : Close-open relationship classification separating buy/sell volume with net delta calculation per row
POC Identification : Maximum volume row detection with visual emphasis rendering
Merge Logic : Overlap detection with gap threshold, boundary expansion, and weighted statistic aggregation
Visualization : Multi-element rendering (zone boxes, profile bars, delta bars, POC lines, info panels) with proportional sizing
Performance Profile : Custom type system for zone/profile/delta management, efficient array-based storage with configurable zone limits
Optimal Application Parameters
Timeframe Guidance:
1 - 5 min : Micro-structure supply/demand for scalping with tight ATR multipliers and reduced lookback
15 - 60 min : Intraday institutional footprint zones with balanced profile row count and merge sensitivity
4H - Daily : Swing-level accumulation/distribution areas with extended lookback periods and wider merge gaps
Weekly - Monthly : Macro institutional zones with maximum profile detail and extended zone persistence
Suggested Baseline Configuration:
Swing Length : 8
Impulse Size (ATR) : 1.2
Base Lookback Candles : 3
ATR Length : 14
Maximum Zone Height (ATR) : 4.0
Maximum Zones : 10
Extend Zones (bars) : 60
Merge Overlapping Zones : Enabled
Merge Gap (ATR) : 0.3
Mitigation Type : Wick
Profile Rows : 10
Profile Width (%) : 0.5
Show POC Line : Enabled
Show Delta Profile : Enabled
Delta Profile Width (%) : 0.35
Show Zone Info Box : Enabled
These suggested parameters should be used as a baseline; their effectiveness depends on the asset's volatility profile, volume characteristics, and preferred zone sensitivity, so fine-tuning is expected for optimal performance.
Parameter Calibration Notes
Use the following adjustments to refine behavior without altering the core logic:
Too many zones cluttering chart : Increase Swing Length (10 - 12) to demand stronger pivots, or increase Impulse Size multiplier (1.5 - 2.0) to require larger moves for zone validation.
Missing significant reversal levels : Decrease Swing Length (5-6) for earlier pivot detection, or reduce Impulse Size (0.8 - 1.0) to capture smaller but valid base formations.
Zones too large/tall : Reduce Maximum Zone Height ATR multiplier (2.5 - 3.0) to cap vertical size, or decrease Base Lookback Candles (1 - 2) for tighter base periods.
Zones too small to be useful : Increase Base Lookback Candles (4 - 6) to encompass longer consolidation periods, or raise Maximum Zone Height (5.0 - 7.0) for taller zones.
Profile bars too granular : Decrease Profile Rows (6 - 8) for coarser distribution showing major volume clusters only.
Profile lacking detail : Increase Profile Rows (15 - 20) for finer resolution revealing subtle volume distribution nuances.
Zones merging too aggressively : Decrease Merge Gap ATR multiplier (0.1 - 0.2) to require tighter overlap for merge qualification, or disable merging entirely.
Related zones not combining : Increase Merge Gap (0.5 - 0.8) to allow merging of zones with larger separation distances.
Zones invalidating prematurely : Switch Mitigation Type from "Wick" to "Close" to require closing violation rather than intrabar penetration.
Zones persisting too long after breach : Switch Mitigation Type from "Close" to "Wick" for faster invalidation on initial penetration.
Profile bars invisible : Increase Profile Width percentage (0.6 - 0.8) for longer bars, improving visibility on cluttered charts.
Delta profile obscuring volume profile : Reduce Delta Profile Width (0.2 - 0.3) to prevent overlap, or disable delta display temporarily.
Adjustments should be incremental and evaluated across multiple session types rather than isolated market conditions.
Performance Characteristics
High Effectiveness:
Range-bound and mean-reverting markets where institutional zones provide reliable turning points
Instruments with consistent volume characteristics where profile distribution reveals true accumulation/distribution
Swing trading approaches targeting zone-to-zone reactions with defined risk parameters
Reversal strategies seeking volume-validated entry levels rather than blind counter-trend positions
Markets where delta proxy correlates well with actual order flow (trending volume instruments)
Position trading benefiting from macro supply/demand structure with embedded volume context
Reduced Effectiveness:
Extremely low volume environments where profile distribution becomes unreliable and sparse
News-driven or gapped markets where zones form/invalidate without normal volume accumulation patterns
Highly trending markets where zones consistently mitigate without providing reversal opportunities
Instruments with erratic volume patterns making delta decomposition and profile interpretation misleading
Very high-frequency timeframes (seconds) where base formation periods too short for meaningful volume accumulation
Integration Guidelines
Confluence : Combine with BOSWaves structure, market profile, or traditional technical analysis for zone validation within broader context
Volume Profile Respect : Trust POC levels and high-volume profile bars over arbitrary zone edges for entry/exit precision
Delta Confirmation Priority : Favor zones where delta composition aligns with expected direction - positive delta in demand, negative delta in supply
Fresh Zone Preference : Prioritize first retests of untouched zones over repeatedly tested areas with high touch counts
Merge Recognition : Treat merged zones with elevated volume/delta statistics as higher-conviction institutional footprint areas
Touch Count Filtering : Reduce position sizing or avoid zones after 3+ touches as institutional order depletion reduces effectiveness
Mitigation Discipline : Exit zone-based positions decisively when price closes beyond boundaries, respecting invalidation signals
Multi-Timeframe Structure : Apply higher-timeframe zones for swing structure, use lower-timeframe profiles for tactical entry refinement
Disclaimer
Volumetric Supply and Demand Zones is a professional-grade supply/demand zone and volume profile analysis tool. It uses volume-based delta proxy to estimate directional pressure but does not access true order book data or institutional trade information. Results depend on market conditions, volume reliability, ATR characteristics, parameter selection, and disciplined execution. Volume profile and delta calculations represent approximations based on close-open relationships and price overlap formulas, not actual bid/ask transactions. BOSWaves recommends deploying this indicator within a broader analytical framework that incorporates price structure, order flow context, and comprehensive risk management. Indicator

Aggregated Open interest + Volume DeltaAggregated Open Interest from Binance + Bybit with adaptive threshold detection, delta-based
positioning classification, and noise-killing bar coloring.
Most OI indicators show you raw data. This one filters out the noise and highlights only what matters
— significant OI events that move the market.
How It Works
The indicator aggregates Open Interest OHLC data from 4 sources:
- Binance USDT & USD perpetuals
- Bybit USDT & USD perpetuals
It then applies an adaptive SMA-based threshold to detect statistically significant OI changes. Only
bars that exceed the threshold get colored — everything else is dimmed to dark grey. This is the
signature feature: at a glance, you see only the bars that matter.
The Core Logic: Delta + OI Positioning
Most OI indicators classify bars using candle color (bullish/bearish close). This is wrong.
A candle can close bearish after a liquidity sweep above a high — but the actual volume delta is
positive (shorts buying to cover their stops). Candle color lies. Delta tells the truth.
The key insight: OI increasing = new fuel (positions that can be squeezed). OI decreasing = exits (no
new fuel, just unwinding).
Features
Display Modes
- OI Candles — OHLC candlestick chart of total aggregated OI
- OI Delta — Bar chart showing per-bar OI change (close - open, intra-bar)
Threshold-Based Bar Coloring
- Normal candles dimmed to dark grey — cuts through noise instantly
- 4-color fuel mode: bright green (Agg Longs), bright red (Agg Shorts), muted red (Rekt Longs), muted
green (Rekt Shorts)
- Simple 2-color mode also available (green = OI up, red = OI down)
- All colors fully configurable
Order Flow Detection
- Smart labels on each significant bar (AGG LONGS, AGG SHORTS, REKT LONGS, REKT SHORTS)
- Liquidation cascade detection — highlights when 2+ consecutive bars show large OI decrease (margin
cascade)
- Absorption detection — large OI increase with a small candle body signals institutional accumulation
Screener Table
- Bottom-right table showing dollar values over a configurable lookback (default 200 bars):
- Rekt Longs / Rekt Shorts
- Aggressive Longs / Aggressive Shorts
- Total aggregated OI
8 Alert Conditions
- Large OI Increase / Decrease
- Rekt Longs / Rekt Shorts
- Aggressive Longs / Aggressive Shorts
- Liquidation Cascade
- Absorption
Settings
- Threshold Multiplier (default 5.0) — higher = fewer events, lower = more sensitive
- SMA Lookback (default 300) — adaptive threshold window
- Data Sources — toggle each exchange on/off independently
- Dim Normal Bars — the signature grey-out effect (on by default)
- 4-Color Fuel Mode — positioning-aware coloring (on by default)
- OI EMA — optional moving average overlay on OI candles
Why Delta + OI > Candle Color + OI
Example: Price sweeps above a swing high (SFP), then reverses and closes bearish. Standard indicators
see "bearish candle + OI decrease" and label it "Rekt Longs." But the volume delta on that bar is
positive — shorts were buying to cover their stops above the high. The correct label is Rekt Shorts.
This indicator gets it right because it uses delta, not candle color.
Usage Tips
- Works on any crypto perpetual chart — dynamically builds symbols from syminfo.basecurrency
- Best on 5m, 15m, 1H, 4H timeframes
- Start with default settings (multiplier 5, lookback 300) then adjust to your timeframe
- Lower multiplier = more signals, higher = only the biggest events
- Combine with supply/demand zones for confluence — significant OI events at key levels are the
highest-probability setups
Created by: AghaInvst Indicator

Indicator
