Indicator

Delta Void Profile [BigBeluga]Delta Void Profile is an advanced order flow and market structure framework engineered to reveal the "negative space" in price action. By contrasting traditional volume accumulation with a unique Inverse Liquidity Void map, this indicator identifies where the market is most anchored and where it is most fragile.
While standard profiles show where the crowd has transacted, the Delta Void Profile simultaneously highlights where the market *failed* to trade, marking the "liquidity vacuums" that often dictate explosive price movements.
🔵 THE DUAL-ENGINE FRAMEWORK
The Normal Profile (Right Side): This is your primary volume distribution. It visualizes the total relative volume transacted at each price bin within the lookback period, providing a clear view of high-interest zones.
The Inverse "Void" Profile (Left Side): This profile measures the "gap" between the maximum volume peak and the current bin. Longer bars on the left signify Volume Voids —areas where price moved too quickly for significant liquidity to build.
Intraday Delta Breakdown: Within the normal profile, the script calculates a granular Buy/Sell Delta . Each bin features a central divider and percentage labels, showing exactly which side of the market dominated that specific price node.
🔵 CORE ARCHITECTURE
Liquidity Vacuum Identification: The indicator automatically highlights the "Deepest Gap"—the price area with the least historical transacted volume relative to the peak. These zones act as magnets or "slip-zones" where price is likely to expand rapidly without resistance.
HVN & Gap Pivot Detection: Depending on your strategy, the tool automatically plots dashed structural lines at either High Volume Nodes (HVN) —representing fair value and heavy support/resistance—or at Volume Gaps —representing liquidity pockets.
Dynamic Gradient Resolution: The profile uses a color-gradient system based on volume density. Brighter, more saturated bins represent institutional interest, while faded bins represent retail noise or transitional zones.
🔵 FEATURES
High-Definition Bins: Customizable vertical resolution (Bin Count) allows you to transition from a macro structural view to a high-definition "micro-scalping" look at order flow.
Delta Efficiency Labels: Real-time percentage labels on the right-hand profile give you an immediate breakdown of supply and demand percentages for every price level.
Void Strength Labels: The inverse profile calculates and prints the "Gap Percentage," explicitly labeling areas where liquidity is significantly missing.
UI Scaling: Fully adjustable global text and label sizes ensure the profile remains readable on any screen resolution or chart layout.
🔵 STRATEGIC APPLICATION
Trading the HVN (High Volume Nodes): Use HVN levels as anchors for your stop-loss or as high-probability entry points. These are prices where the market has historically agreed on "Value".
Exploiting the Voids: When price enters a high-percentage "Gap" zone on the left profile, expect increased volatility. Because there is no "friction" from historical orders, price often "teleports" through these voids until it reaches the next high-volume cluster.
Delta Confirmation: Use the Buy/Sell percentage labels to confirm breakouts. If price is breaking an HVN resistance and the delta shows high Buy dominance, the probability of a successful breakout increases significantly.
Mean Reversion Targets: Voids often act as targets for mean reversion. If price is overextended, look for the nearest "Volume Gap" pivot as a natural magnet for a relief rally or pullback.
Delta Void Profile transforms your chart into a map of institutional activity and structural weakness. By identifying the voids in the market, you can stop trading into the "heavy" areas and start targeting the "light" areas where the real price expansion occurs. Indicator

Indicator

[Thies] 0DTE SPY+ES Volume, VIX1D, Volume Delta0DTE Tape Read: Combining SPY + ES Volume, VIX1D, and Volume Delta for Same-Day Options Trading
Why I Built This
If you trade 0DTE options on SP:SPX or AMEX:SPY SPY, you already know raw SPY volume alone gives you an incomplete picture. The real flow lives across multiple instruments:
SPY captures retail and ETF arbitrage
ES futures lead price discovery and show institutional hedging
VIX1D tells you the implied vol regime for the day you're actually trading
This indicator combines all three into a single pane so you can read the tape the way it actually trades, not the way a single-symbol volume bar suggests.
What the Indicator Shows
SPY Volume (blue columns)
Retail flow, ETF arb, and dealer hedging on the cash side.
ES Volume (orange columns)
Institutional flow and the leading instrument for S&P price discovery. ES trades nearly 24 hours, so it shows you where the real money is positioned before the cash open and through the close.
Combined Volume Line (purple) with Moving Average
Total flow across both instruments. The MA gives you a baseline to spot real surges versus noise.
Volume Delta Histogram (green/red)
A signed-volume proxy using close vs open on each bar. Green means net buying pressure, red means net selling. Smoothed with an EMA to filter single-bar noise.
VIX1D Overlay (yellow)
The 1-day VIX. This is the single most important context metric for 0DTE that most traders ignore. It tells you what implied vol is pricing for today specifically, not the 30-day VIX which is mostly irrelevant for same-day expiry.
A dashboard in the top-right shows live values for each metric.
Why This Beats Single-Symbol Volume
Three reasons SPY volume alone falls short for 0DTE:
SPX dominates institutional 0DTE flow. Big players use SPX for cash settlement and 60/40 tax treatment. ES futures are the closest free proxy for that flow.
Overnight and pre-market context. ES tells you the setup before SPY even opens.
Dealer hedging happens in futures. When 0DTE gamma forces hedging, it shows up in ES first.
VIX1D rounds it out because 0DTE pricing is driven by 1-day implied vol, not the headline VIX number on financial TV.
How to Trade With It
Setup
Timeframe: 1m or 5m on SPY or ES
Active hours: 9:30 to 10:30 and 14:00 to 16:00 ET
Skip the lunch chop window from roughly 11:30 to 13:30
The Core Read
Bullish alignment: Green delta histogram rising + combined volume above MA + VIX1D stable or falling. Trade calls or call spreads.
Bearish alignment: Red delta histogram falling + combined volume above MA + VIX1D rising. Trade puts or put spreads.
Stand down: Delta near zero + volume below MA. Theta will eat you. No trade.
High-Probability Windows
Opening Drive (9:30 to 10:00)
A first-15-minute volume spike with delta in one direction signals a trend day. Enter on the first pullback to the combined volume MA. If VIX1D is above 18, widen your stop and cut your size.
Reversal Window (10:00 to 10:30)
Watch for delta to flip against the opening move on rising volume. This is statistically the best risk/reward window of the day. Reversal setups here have a real edge if the histogram confirms.
Fed/News Pivot (14:00)
On Fed days or scheduled releases, look for the volume surge plus clear delta direction and follow it. If VIX1D spikes and delta flips, fade the initial knee-jerk move.
MOC Ramp (15:00 to 16:00)
0DTE gamma is at its peak. Sustained delta in one direction tends to accelerate into the close. Exit by 15:45 unless you're actively scalping into the bell.
Strike Selection by VIX1D
VIX1D below 12: ATM or one strike OTM. Expect small moves, take quick profits.
VIX1D 12 to 18: Two to three strikes OTM. Normal-range day.
VIX1D above 20: Five-plus strikes OTM. Fat tails are likely, premiums are rich, sizing should drop.
Risk Rules
Risk 1 to 2% of account per trade. 0DTE goes to zero faster than you can react.
Stop out if delta flips against you or price breaks the combined volume MA.
Target 50 to 100% on premium. Don't get greedy on same-day expiry.
No new positions after 15:45.
Three losers in a row, you're done for the day. Walk away.
Quick Decision Tree
Is combined volume above its MA? If no, no trade.
Is delta strong and aligned with price? If yes, trade with trend.
Is delta flipping opposite to price on rising volume? If yes, reversal setup.
Is delta flat? No trade.
What This Indicator Is Not
It's not a signal generator. It's a confirmation and context tool. The edge comes from using it to say no to 80% of setups you would have taken on raw volume alone.
Combine it with your own price action read, key levels, and gamma exposure data for full context.
Known Limitations
The delta calculation uses close vs open as a sign proxy. True signed volume requires tick data Pine Script can't access. The proxy is directionally useful but not exact.
ES1! is the continuous front-month contract. Roll dynamics can create small discontinuities on roll dates.
VIX1D only goes back to mid-2023, so backtests on older data won't include it.
Inputs You Can Customize
Symbols for SPY, ES, and VIX1D
(defaults to AMEX:SPY, CME_MINI:ES1!, CBOE:VIX1D)
Toggle each plot on/off
Moving average length for combined volume
Smoothing length for the volume delta histogram
Final Thoughts
0DTE is a game of probabilities, timing, and discipline.
Most retail traders blow up because they trade size based on raw price action without understanding the flow underneath or the vol regime they're inside of.
This indicator forces you to look at all three at once:
Where the money is
Which direction it's going
How much movement the market is pricing in
Use it as a filter, not a crystal ball.
The best trades will scream at you when every layer aligns. Everything else is noise.
If you found this useful, hit boost, drop a comment with how you're using it, and follow for more tools focused on real-world execution. Indicator

Indicator

Institutional Displacement & Volume Delta [Bigbeluga]🔵 OVERVIEW
Institutional Displacement & Volume Delta is an advanced price action tool designed to identify high-conviction market moves, often referred to as "Displacement." It filters out market noise by highlighting candles that exhibit both significant price expansion and institutional-level volume.
By utilizing lower timeframe (LTF) data, the indicator deconstructs each displacement candle to reveal the internal "Buy vs. Sell" volume balance, allowing traders to see the true intent behind aggressive market shifts.
🔵 CONCEPT
Institutional Displacement — Identifies "Power Candles" that have a large body relative to their wicks, signaling a one-sided move by major market participants.
Volume Spike Filtering — Only qualifies a move as a "Shift" if the volume significantly exceeds a user-defined moving average.
Intrabar Volume Deconstruction — Uses a secondary, lower timeframe (e.g., 1m) to calculate exactly how much of a candle's total volume was dedicated to buying versus selling.
Internal Volume Blocks — Visually splits the body of displacement candles into color-coded sections (Buy Block and Sell Block) based on the internal delta ratio.
Market State Muting — Optionally mutes the color of "choppy" or low-volume bars to keep the focus purely on high-probability institutional activity.
🔵 HOW IT WORKS (IN-DEPTH)
1️⃣ Qualification of Displacement
The script first evaluates the "Body-to-Range" ratio. A candle must be mostly "body" (minimal wicks) to prove that the price didn't face significant rejection.
It then checks the Volume Multiplier. The volume must be X times higher than the 20-period average to confirm institutional "heavy lifting."
If both conditions are met, the bar is labeled a "Bullish Shift" or "Bearish Shift."
2️⃣ Lower Timeframe (LTF) Volume Analysis
Standard candles only show total volume. This indicator uses request.security_lower_tf to peak inside the bar.
It sums up every 1-minute (or user-defined) sub-candle to categorize volume as "Buy" or "Sell" based on the sub-candle's closing direction.
This calculation provides the Delta —the net difference between aggressive buyers and sellers.
3️⃣ Visual Representation
The main candle body is hollowed out, and a "Volume Block" is inserted inside.
The split point of the inner block represents the ratio of Buy vs. Sell volume. If a Bullish Displacement bar has a large Red inner block at the top, it may signal that sellers were heavily defending that area despite the bullish close.
Floating labels provide immediate access to the exact Volume and Delta figures.
🔵 KEY FEATURES
Precise Shift Identification: Combines price expansion (Displacement) with volume spikes.
Internal Delta Blocks: Unique visual deconstruction of candle volume ratios.
Institutional Dashboard: Displays real-time data for the most recent shift, including total volume, delta, and a session shift counter.
Muted Chop Mode: Grey-scales non-significant candles to highlight the "Path of Least Resistance."
Error Handling: Built-in notification if the user selects an LTF timeframe that is mathematically incompatible with the current chart.
🔵 DASHBOARD METRICS
Last Shift: Indicates the direction (Bullish/Bearish) of the most recent displacement.
Shift Vol: The total volume transacted during the most recent high-conviction move.
Shift Δ: The net delta of the last shift, showing the dominant aggressive party.
Shift Count: A running tally of Bullish vs. Bearish shifts since the chart was loaded.
🔵 HOW TO USE
Identifying Ignition: A Displacement bar appearing at a support or resistance level often marks the start of a new trend (Trend Ignition).
Spotting Traps: Look for "Bullish Shifts" where the Sell Block makes up a large portion of the candle body. This indicates heavy absorption by sellers and may lead to a failed breakout.
Confluence with Delta: Use the Dashboard's "Shift Δ" to confirm that the displacement move is backed by strong net buying/selling rather than just high-volume churn.
Exit Timing: If price enters a consolidation zone and the "Shift Count" starts alternating rapidly between Bullish and Bearish, it indicates institutional indecision.
🔵 CONCLUSION
Institutional Displacement & Volume Delta provides a specialized lens into market momentum. By focusing on displacement and the internal mechanics of volume, it helps traders align themselves with the "smart money" and avoid the low-probability volatility of retail-driven noise. Indicator

Cumulative Volume DeltaCumDelta — Cumulative Volume Delta with Session Reset
A clean cumulative volume delta (CVD) indicator that visualizes the running balance of buying vs. selling aggression using lower-timeframe up/down volume. Designed for intraday traders who want to read order flow alongside price.
What it does
Each bar's delta is calculated by pulling lower-timeframe volume data and classifying it as buying or selling pressure based on whether each sub-bar closed up or down. These per-bar deltas are then cumulated into a running total that resets on your chosen schedule (day, session, week, month, year, or N bars back).
The cumulative delta is rendered as candles — each candle's open chains from the previous close, and the body shows whether net flow on that bar was positive or negative. A histogram below shows the raw per-bar delta for quick reference.
How to read it
Rising green candles — sustained buying pressure
Falling red candles — sustained selling pressure
Divergence vs. price — price makes a new high but CVD doesn't (or vice versa) often precedes reversals
Reset bars (optional yellow highlight) — fresh session start, useful for marking where the cumulation restarts
Settings
Reset Period — Day, Session (RTH-aware), Week, Month, Year, or Bars Back
Lower Timeframe — auto-selects based on chart TF, or set manually for finer/coarser resolution
Doji Handling — choose how to attribute volume when a bar closes flat (Split 50/50, Up, Down, or Skip)
Display toggles — bar delta histogram, cumulative candles, reset markers Indicator

CVD MTF Dashboard with InsightsThe hardest part about Cumulative Volume Delta isn’t finding a CVD indicator.
It’s actually understanding what the data is trying to say before price punishes you for misunderstanding it.
Most traders who first encounter CVD quickly realize the same thing:
The raw data is powerful…
But interpreting it in real time is difficult.
Especially across multiple timeframes.
Especially during transitions, traps, divergences, and session rotations.
That’s where this dashboard separates itself from typical CVD tools.
Instead of simply plotting delta and forcing the user to “figure it out,” this system acts more like a real-time market interpreter — translating complex participation behavior into structured, readable context that traders can immediately act on.
At its core, the dashboard combines:
Multi-timeframe CVD flow analysis
Buyer vs seller participation modeling
Momentum acceleration detection
ADX regime filtering
Divergence recognition
Trend freshness analysis
Context-aware market insights
But the real innovation is not any single component.
It’s the way the information is organized into a decision-support framework that dramatically lowers the learning curve of CVD interpretation while still remaining advanced enough for experienced traders.
The dashboard doesn’t just tell you:
“Buyers are active.”
It tells you things like:
Whether participation is expanding or fading
Whether momentum is accelerating or slowing
Whether lower timeframes are leading higher timeframes
Whether the move is fresh or becoming exhausted
Whether divergence warns against chasing
Whether conditions favor continuation, patience, or caution
That is an enormous difference.
Most CVD tools leave inexperienced traders staring at squiggly lines trying to guess what matters.
This dashboard transforms that complexity into readable market structure.
The INSIGHTS engine is arguably the standout feature.
Rather than forcing traders to manually interpret conflicting signals, the system synthesizes
multiple layers of market behavior into plain-English contextual guidance such as:
“Strong bullish participation. CVD supports long continuation setups.”
“Bear trend active, but freshness is fading. Avoid chasing lows.”
“Participation is weak and rotational. Patience favored.”
“Divergence active. Watch for traps, failed continuation, or reversal pressure.”
This is where the indicator begins to feel less like a traditional study and more like a professional-grade market intelligence panel.
Another standout feature is the emphasis on freshness.
Many indicators can identify trend direction.
Very few can communicate whether the move is still developing or already becoming stale.
By tracking the age and recency of directional participation across multiple timeframes, the dashboard helps traders avoid one of the most common retail mistakes:
entering trends after the highest-probability portion of the move has already occurred.
The visual design also deserves recognition.
Rather than cluttering the screen with overwhelming oscillator noise, the interface presents institutional-style information architecture:
Clean state classifications
Structured momentum visualization
Simplified buyer/seller participation bars
Multi-timeframe alignment summaries
Minimalistic premium styling
Readable divergence alerts
Clear regime identification
The result is an indicator that feels surprisingly approachable despite the sophistication under the hood.
For newer traders, it makes CVD understandable.
For experienced traders, it makes CVD actionable.
And that combination is rare.
In a market flooded with recycled oscillators and cosmetic overlays, this dashboard stands out because it solves a real problem:
It bridges the gap between raw order-flow complexity and practical decision-making.
This is the kind of tool that feels less like another indicator…
and more like having a professional market interpreter sitting beside you during live trading.
Indicator

Simplified Footprint
If you've tried using volume footprint charts and been daunted with information overload, then this 'Simplified Footprint' indicator could be just what you need instead.
The POC and value area are overlayed onto regular candles on the chart.
The delta is plotted as an oscillator, but the fun part, also in the oscillator pane, are the imbalances.
A buy imbalance is shown as a green bar. If it goes upwards part way, then it is partly displaced by the price. Up to the top, and the price has fully displaced the imbalance.
If the green buy imbalance bar goes downwards however, then it's absorbed by passive sell orders. Part way, partly absorbed, all the way down, then fully absorbed.
The colour of the bars are also more transparent with low volume, and more opaque, as the volume in that direction increases.
The sell imbalances are red and do the opposite. Downwards, and they are displaced by price, upwards and they are absorbed.
To clearly see what's going on, you want the buy imbalance columns narrower than the sell imbalance columns (or vice versa).
These colours are all transparent to some degree so you can still read them when they overlay, but having the columns different widths, like piano keys, really makes reading them easier.
The absorptions are also marked with an 'A' to avoid any doubt.
Using this 'Simplified Footprint' indicator allows you to visually read all this footprint data at a glance, on a regular chart.
To make it even simpler, you can just view it as; imbalance bars and delta going upwards are bullish, going downwards, bearish.
Obviously you might want to pay attention to the absorptions, as they indicate passive participants having an effect on the market that you wouldn't otherwise see, as they don't move the price.
To use this indicator, you just need to configure the number of ticks per row, at the top of the settings.
This can be set with a number of ticks per row, or with an Average True Range (ATR), and can be scalable across different timeframes as well.
Probably the easiest way to use it is to select the timeframe on the chart you want to use, then get an ATR reading for that timeframe.
Then use that ATR value in the 'Simplified Footprint' settings.
If you scale the ticks for different timeframes, just specify the timeframe for which the ATR (or ticks) are calibrated for.
You will also probably need to tweak the narrow imbalance column width, depending on how zoomed into the chart you are, to get a piano key look for clarity.
Although the 'ticks per row' can be scaled across different timeframes, the scaling is an approximation and may not always work well, especially if the chart is far removed from the reference timeframe.
Ideally try not to scale too far from the reference timeframe, and re-calibrate nearer to the chart timeframe if necessary.
If in any doubt, check the Pine logs for configuration details and information about the last confirmed bar.
The last couple of lines, where it says:
Last confirmed bar, rows per footprint: x
Use the above 'rows per footprint' as calibration, which should be between about 3 and 30 ideally, although more may still be OK.
The rows per footprint can be checked against the actual volume footprint, and should be the same if the ticks per row are the same.
However, the default value the actual volume footprint uses is 'auto', which cannot be replicated in this script due to the platform design.
So if you want the same number of rows per footprint, and see exactly the same imbalances, you need to configure the actual volume footprint with a manual row size and set the ticks per row to the same number as in this 'Simplified Footprint' indicator.
Indicator

Indicator

Volume Run RateVolume Run Rate
What it does
This indicator answers a simple question that raw volume bars can't: "At this point in the trading day, are we trading more or less than usual?"
It accumulates volume from the start of each day, expresses that running total as a percentage of the average full-day volume over a lookback window, and then compares the current reading to where the run rate typically sits at the same time of day historically. When today's pace pushes meaningfully above that historical norm (default: more than 2 standard deviations), the background highlights yellow.
Three lines are plotted:
Green stepline — today's cumulative volume so far, as a % of the average daily total over the lookback window.
Gray line — the average run rate at this same time-of-day across the lookback days.
Orange crosses — the upper threshold (historical same-time mean + N standard deviations). When the green line breaks above it, the day is participating unusually heavily for this point in the session.
Why intraday cumulative volume vs. history beats looking at volume alone
A single volume bar tells you only what happened in the last 5 minutes (or 15, or whatever your timeframe is). That's a noisy, low-context signal. Volume is naturally lumpy intraday — the open and close are always heavy, lunch is always thin — so a "big" bar at 10:00 might be completely normal, and a "small" bar at 14:30 might actually be elevated for that time slot. Eyeballing bar height tells you almost nothing about whether real interest is building.
Cumulative volume from the day's open smooths out that bar-to-bar noise and captures a more meaningful quantity: how much total participation has shown up so far today. But "a lot" or "a little" only means something when measured against a baseline. Comparing today's cumulative volume at 11:00 to the typical cumulative volume at 11:00 over the last 20 days gives you a like-for-like read on whether today is unusually busy for where we are in the session. Two standard deviations above that historical mean is statistically rare — roughly the top 2-3% of historical readings at this time slot — which is why it's a useful alert level.
How to use it
Volume tends to confirm or contradict price moves. The run rate makes that confirmation legible in real time:
Breakout validation. Price breaks a key level intraday and the run rate is already running hot above the threshold — participation is real, the move has fuel behind it. Same breakout on a depressed run rate is much more likely to fail or fade.
Trend day vs. chop day, early. If the run rate pushes through the upper threshold in the first hour or two, the day is on track for an above-average volume session, which historically correlates with directional follow-through. A run rate stuck near or below the historical average suggests a low-conviction, mean-reverting tape — fade the edges, don't chase.
News and event reaction. When something hits the tape, the question isn't "did volume go up" (it almost always does for one bar) but "is the market actually engaging with this." A run rate that gaps above the threshold and stays there says yes. A spike that immediately reverts says the market dismissed it.
Distribution and accumulation timing. Sustained elevated run rate at a price plateau, especially near prior highs or lows, suggests something larger going on than the price action alone reveals.
Avoiding low-conviction setups. If your trade thesis depends on participation but the run rate is well below average for this time of day, that's a real signal to size down or skip.
Inputs
Lookback days — how many prior days to use as the historical baseline. Default 20 (≈ one trading month).
Std Dev threshold — how many standard deviations above the historical same-time mean triggers the elevated-volume background. Default 2.0.
Exclude weekends — turn on for crypto or other 24/7 markets where weekend sessions have structurally different volume profiles than weekdays. Off by default (correct for traditional Mon-Fri markets).
Notes
Use on intraday timeframes only (anything lower than Daily). On Daily or higher, an error message is shown — the "cumulative vs. history at the same time of day" comparison only makes sense within a day.
The indicator stores every intraday bar's run rate in persistent arrays, which lets it look back further than Pine's standard 5000-bar history limit and compare apples to apples across the full lookback window.
The historical comparison uses the bar's position within the day (1st bar, 2nd bar, etc.), so it works on any intraday timeframe automatically.
Indicator

CVD Signals OverlayCumulative Volume Delta — Signals Overlay plots CVD Cross Buy and CVD Cross Sell labels directly on your price chart bars. It is the companion to the CVD Candle Pane script and must be added to the existing price chart pane (not a new pane) so that the labels appear alongside your price action rather than in the sub-pane.
Signal logic. The indicator replicates the identical CVD calculation from the Pane script, then computes a moving average of that CVD. A CVD Cross Buy label fires when the CVD crosses above its MA — indicating that net buying pressure has turned upward relative to its recent average, which often precedes or confirms bullish price moves. A CVD Cross Sell label fires when the CVD crosses below its MA, signaling that net selling pressure is accelerating.
Signal gating — no repainting. Raw CVD/MA crossovers can be noisy, especially during choppy, low-volume periods. The Min Bars Between Signals input (default 10) suppresses a new signal unless the most recent opposite cross occurred at least that many bars ago. This gating is implemented exclusively using ta.barssince, a pure series function in Pine Script v5 that carries no stored state. Because it recalculates identically on every chart render, signals are fully deterministic — they will never shift, move, or disappear when you pan, zoom, replay, or refresh the chart.
Visual elements. A teal upward label marks each CVD Cross Buy signal below the bar. A fuchsia downward label marks each CVD Cross Sell signal above the bar. An optional background flash highlights the signal bar with a translucent color for added visibility. Both label colors and the background flash can be toggled in the settings.
Alerts. Two alert conditions are built in — one for CVD Cross Buy and one for CVD Cross Sell — compatible with PulseWire's standard alert system. Indicator

Fib 1-2-3-4 Vol/Delta/ProjOverview
This indicator automates a practical Fib 1–2–3–4 workflow on the chart: fractal-style swings define point 1 and point 2, retracements mark the discount/premium zone, and negative extensions mark take-profit style targets. It is built for fast markets (e.g. MNQ / NQ) but works on any symbol the chart supports.
Purpose
The goal is to keep the chart readable while still showing:
Where the active leg is (swing line + optional zone fill)
Key retracements (defaults favor 61.8%–88.6%; extras optional)
Extension levels (e.g. −12.7% / −27.2% / −61.8% style targets — toggles available)
Stop reference beyond point 1 (optional plot + buffer in ticks)
Optional BUY / SELL markers driven by a zone reclaim rule, plus matching alerts
Fib levels are treated as framework for stops and limits; entries are a heuristic (reclaim), not a guarantee.
Structure timeframe (2-minute friendly)
Swing & fib timeframe lets you anchor pivots and fib math to a chosen TF (default 2). On a 1m chart with structure set to 2, swings come from 2m while signals still use the chart’s closes for timing. When structure TF ≠ chart, built-in volume profile / delta / projection blocks stay off so bar math stays honest.
Zeiierman-style add-ons (optional, CC BY-NC-SA)
If enabled, optional Fib volume profile, Fib-band delta, and projection segments are adapted from Zeiierman’s published concept — non-commercial use only for those portions; see script header for license note.
Main features
Fractal pivots — configurable left/right bars (Fractals-style lag).
Clean preset — fewer lines; zone fill; optional swing leg.
Entry zone — configurable deep/shallow bounds (default 78.6%–88.6% style band).
BUY / SELL — label shapes + alerts on zone reclaim (deep touch + confirmed close through shallow edge); cooldown to reduce noise.
Optional mapping — swing labels, zone edge plots, fractal marks (mostly off by default).
Compact table — optional snapshot of bias, points, stop, targets.
How to use
Set Swing & fib timeframe to Chart on a 2m chart, or keep 2 on 1m for 2m legs with 1m entries.
Tune Left / Right bars to match how “noisy” you want swings.
Turn on Show targets / Show stop when you want full framework on chart.
Create alerts from the indicator’s Alerts tab (BUY / SELL, optional zone/extensions).
Disclaimer
This tool is for education and research only. It is not financial advice. Past behavior of any heuristic does not predict future results. You are responsible for your own risk, sizing, and compliance with your jurisdiction.
If your published script has a different name or you want this shorter (PulseWire sometimes truncates), say the exact title and I’ll compress it to one tight block. Indicator

VWAP DELTA🇬🇧 ENGLISH
VWAP DELTA is a Volume Weighted Average Price that uses delta volume magnitude as its weighting factor instead of total volume. Unlike a standard VWAP — where every bar contributes proportionally to its raw volume — VWAP DELTA gives more weight to bars where buyers or sellers clearly dominated, and less weight to bars where volume was balanced between both sides. The result is a price level that better reflects where the market agreed during high-conviction moves.
HOW IT WORKS:
Delta volume is estimated from each candle's shape by splitting volume between buyers and sellers using the high-low range. Bars that close near the high have high buy delta; bars that close near the low have high sell delta. The VWAP is then computed weighting each price by the absolute value of its delta, so only directional pressure counts.
COMPONENTS:
1. Delta Volume — Estimated as: Buy Vol = Volume × (Close − Low) / (High − Low), Sell Vol = Volume × (High − Close) / (High − Low). Delta = Buy Vol − Sell Vol.
2. VWAP Delta — Formula: Sum(HLC3 × |Delta|) / Sum(|Delta|), anchored and reset at each new period (Session, Week, Month, Quarter or Year).
3. Standard Deviation Bands — Delta-weighted variance bands above and below the VWAP Delta, showing price extension during high-conviction moves. Useful as dynamic support and resistance zones.
4. Dynamic Color — The line turns teal when cumulative session delta is positive (buyers dominating the strong moves) and red when negative (sellers dominating). At a glance you know which side has been more active in the meaningful bars of the session.
USE CASES:
• Confirm the direction of "active money" — price above VWAP Delta means high-conviction moves were bullish.
• Filter false signals — balanced-volume candles barely move the indicator, reducing noise.
• Spot divergences — price rising but VWAP Delta lagging or falling signals a rally with weak buying conviction.
• Intraday bias — color tells you who dominated the strong bars of the session without reading order flow tools.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🇪🇸 ESPAÑOL
VWAP DELTA es un Precio Medio Ponderado por Volumen que usa la magnitud del volumen delta como factor de ponderación en lugar del volumen total. A diferencia del VWAP estándar — donde cada vela contribuye de forma proporcional a su volumen bruto — VWAP DELTA otorga más peso a las velas donde compradores o vendedores dominaron claramente, y menos peso a las velas donde el volumen estuvo equilibrado entre ambos lados. El resultado es un nivel de precio que refleja mejor dónde acordó el mercado durante los movimientos de alta convicción.
CÓMO FUNCIONA:
El volumen delta se estima a partir de la forma de cada vela dividiendo el volumen entre compradores y vendedores usando el rango high-low. Las velas que cierran cerca del máximo tienen alto delta comprador; las que cierran cerca del mínimo tienen alto delta vendedor. El VWAP se calcula ponderando cada precio por el valor absoluto de su delta, de modo que sólo cuenta la presión direccional.
COMPONENTES:
1. Volumen Delta — Estimado como: Vol Comprador = Volumen × (Close − Low) / (High − Low), Vol Vendedor = Volumen × (High − Close) / (High − Low). Delta = Vol Comprador − Vol Vendedor.
2. VWAP Delta — Fórmula: Sum(HLC3 × |Delta|) / Sum(|Delta|), anclado y reiniciado en cada nuevo período (Sesión, Semana, Mes, Trimestre o Año).
3. Bandas de Desviación Estándar — Bandas de varianza ponderada por delta por encima y por debajo del VWAP Delta, que muestran la extensión del precio durante movimientos de alta convicción. Útiles como zonas dinámicas de soporte y resistencia.
4. Color Dinámico — La línea se muestra en verde azulado cuando el delta neto de la sesión es positivo (compradores dominando los movimientos fuertes) y en rojo cuando es negativo (vendedores dominando). De un vistazo sabes qué lado ha sido más activo en las velas importantes de la sesión.
CASOS DE USO:
• Confirmar la dirección del "dinero activo" — precio por encima del VWAP Delta significa que los movimientos de alta convicción fueron alcistas.
• Filtrar señales falsas — las velas de volumen equilibrado apenas mueven el indicador, reduciendo el ruido.
• Detectar divergencias — precio subiendo pero VWAP Delta plano o bajando señala un rally sin convicción compradora real.
• Sesgo intradiario — el color indica quién dominó las velas importantes de la sesión sin necesidad de herramientas de order flow. Indicator

Volume Footprint LevelsVolume Footprint Levels 🐾
What it is
A support/resistance plotter that uses PulseWire's request.footprint() volume-at-price data to identify levels where aggressive volume actively defended or rejected price. Instead of drawing lines from raw highs/lows, it only marks zones where one side ( buyers or sellers ) absorbed the other and price was pushed away — the kind of levels that tend to matter on retest.
How defense is detected
For each bar, the script walks the footprint rows and looks for one-sided imbalance concentrated at the bar's wick zones:
Buy defense (support) — heavy aggressive buying at the bottom X% of the bar's range, where buy volume exceeds sell volume by the imbalance ratio, and the close has moved a configurable distance away from the lows.
Sell defense (resistance) — heavy aggressive selling at the top X% of the bar's range, where sell volume exceeds buy volume by the ratio, and the close has moved away from the highs.
Qualifying rows are aggregated into a volume-weighted average price for the level, and the level only fires if the total defending volume clears a minimum threshold. Individual rows must also clear a minimum delta to count, which filters out thin-tape noise.
Level lifecycle
Each detected level becomes a horizontal line projecting forward from the bar that created it:
Merge / replace — a new level within mergePoints of an existing one is suppressed, unless the new one has higher defending volume, in which case it replaces the weaker one in place.
Touch tracking — every bar whose wick reaches within touchTol of the level increments either the bullish (▲) or bearish (▼) touch counter depending on which side of the level the bar closed on. Counts render in the level's label.
Break confirmation — a level is only removed once price closes beyond it (plus a buffer) for breakBars consecutive bars. If price moves back inside before the count completes, the break counter resets. This stops single-wick fakeouts from killing valid levels.
Cap — total active levels are pruned oldest-first to stay under maxLevels .
Exports
The four nearest supports and four nearest resistances (sorted by proximity to close) are plotted to the price scale and data window as Sup 1–4 / Res 1–4 . When Enable JSON Alerts is on, each confirmed bar emits a structured JSON alert containing timestamp, ticker, timeframe, close, all eight ranked levels, active level count, and any new support/resistance created on that bar — designed for ingestion by an external webhook pipeline.
What you see on the chart
Green lines for support, red for resistance, each tagged with a label showing defending volume and the running ▲/▼ touch counts. Hovering a label exposes a tooltip with the level type, exact price, volume, imbalance ratio at creation, and full touch breakdown. Line style, width, colors, and label size are all configurable.
Intended use
A footprint-driven structure tool — the levels flag prices where aggressive flow has already been absorbed once, making them candidates for retest entries, target zones, or invalidation references. Best on instruments where PulseWire's footprint data is dense ( liquid futures, major FX, large-cap equities ); on thinner instruments or deep history the footprint resolution degrades, which is why maxLookback is capped. Indicator

Indicator

CVD Multi Exchange PercentileCVD Multi Exchange Percentile
Aggregated order flow across four major crypto derivatives exchanges — with historical percentile ranking to measure how extreme today's session really is.
A Cumulative Volume Delta (CVD) indicator with daily reset, divergence detection, and absorption signals, built for perpetual futures.
It combines Binance, Bybit, OKX, and Bitget into a single aggregated flow, then ranks it against its own history to give you objective context.
█ 🧩 KEY FEATURES
🔹 Multi Exchange Aggregation
Four sources (Binance, Bybit, OKX, Bitget) can be toggled independently. The aggregated delta captures cross-exchange order flow that single-source CVD cannot detect — especially during liquidations or arbitrage-driven moves.
🔹 Historical Percentile System
Each session's peak CVD is stored in a rolling buffer, separated by direction (bull vs bear). The current session is ranked against this distribution to measure how extreme the flow is compared to recent history.
🔹 Live Percentile
A real-time percentile tracks the current CVD value as the session develops — no need to wait for session close.
🔹 Swing Divergence
Detects divergences between price and CVD structure:
- Bullish: price makes lower low, CVD makes higher low
- Bearish: price makes higher high, CVD makes lower high
Filtered by percentile threshold and optional trend filter.
🔹 Volume Absorption
Highlights conditions where price and CVD move in opposite directions under high volume:
- Bullish absorption: price down, CVD up
- Bearish absorption: price up, CVD down
Requires elevated volume and percentile confirmation.
🔹 Visual Encoding
Histogram color reflects direction and momentum. Signal markers:
- Divergence bullish: dark green triangle up
- Divergence bearish: blue triangle down
- Absorption bullish: orange circle
- Absorption bearish: purple circle
Optional info table provides real-time stats.
Signal examples on TRXUSDT.P (1H) — three signal types visible:
- Orange circle (Absorption Bull): price dropping but CVD rising on high volume — buying pressure hidden under falling price
- Blue triangle (DIV- Bearish): price making higher high but CVD making lower high — selling pressure building despite rising price
- Purple circle (Absorption Bear): price rising but CVD falling on high volume — selling pressure hidden under rising price
Signal examples on ETHUSDT.P (1H) — bullish signals visible:
- Dark green triangles (DIV+ Bullish): price making lower lows but CVD making higher lows — buying pressure increasing despite falling price, signaling potential reversal
- Orange circle (Absorption Bull): same logic as above — hidden buying under selling candles
█ 🔧 HOW IT WORKS
The script fetches lower-timeframe OHLCV data from each exchange using `request.security_lower_tf()`.
Each intrabar volume is classified using a CLV-based model (close location within range) to estimate buying vs selling pressure. The resulting deltas are summed across all exchanges and accumulated into a daily CVD, resetting at the start of each new UTC session.
█ 📖 HOW TO USE
Apply the indicator to Perpetual Futures charts (.P).
The symbol is auto-detected from the chart and mapped across all supported exchanges — no manual input needed.
Suggested timeframe: 1H (default percentile lookback is 336 bars, which equals ~14 days on 1H charts).
Signals are contextual, not standalone triggers. Use them to identify:
- flow/price divergences
- potential absorption zones
- extreme participation conditions
█ ⚙️ SETTINGS
Data Sources (Perpetual Futures Only) — Enable/disable Binance, Bybit, OKX, Bitget
Settings — Intrabar precision (1/5/15/60), daily reset
Signals — Percentile lookback (default 336 bars, ~14 days on 1H), min percentile for divergence (75), swing length (8), trend filter SMA (20), absorption volume lookback (10) and multiplier (1.5), show/hide toggles for divergences, absorption, trend filter, and info table
█ 💡 WHAT MAKES THIS DIFFERENT
Most CVD indicators rely on a single exchange and lack statistical context.
This script aggregates flow across venues and ranks it using a percentile system, providing a clear measure of whether current activity is extreme or routine.
Bull and bear distributions are handled separately, avoiding distortion from mixed data.
█ ⚠️ LIMITATIONS
— Works only on perpetual futures (.P required)
— Delta is estimated from OHLCV, not tick-level order book data
— Exchange data availability may vary by symbol
— Intrabar resolution affects precision and performance
█ 📌 DISCLAIMER
This is a contextual analysis tool, not a signal generator.
It does not provide buy/sell signals and should not be used as a standalone trading system. Always apply proper risk management.
Indicator

Footprint: Cluster by Exchanges v2 [AlexKo]Footprint: Cluster by Exchanges v2
What the Indicator Does
Detects buy and sell clusters from footprint data (POC level + delta) and draws a **stacked set of colored boxes** at each cluster — one box per connected exchange. Box height is proportional to that exchange's volume relative to its own average, so you can instantly see **which exchanges participated in forming the cluster**.
How It Works
1. Cluster Detection
A cluster is confirmed on bar close when all of the following conditions pass:
| Condition | Buy Cluster | Sell Cluster |
|-----------|-------------|--------------|
| POC position | ≤ N% from candle bottom | ≥ (100−N)% from bottom |
| Delta (optional) | > 0 | < 0 |
| Min delta % | ≥ threshold | ≥ threshold |
| Min candle volume | ≥ threshold | ≥ threshold |
| Min range (ATR %) | ≥ threshold | ≥ threshold |
2. Fetching Exchange Volumes
Once a cluster is detected, volume is pulled from each enabled exchange via `request.security()`, automatically substituting the current chart ticker.
3. Visualization — Stacked Boxes
```
▲ ← label (hover → tooltip with full details)
┌──────────┐
│ OKX │ ← h = ATR × scale × (vol_okx / avg_okx)
├──────────┤
│ Bybit │ ← height reflects relative volume
├──────────┤
│ Binance │ ← bottom box = Exchange 1 in settings
● ← POC level of the cluster candle
```
Buy cluster** → stack grows **upward** from POC
Sell cluster** → stack grows **downward** from POC
- Each box is labeled with the exchange name
- Hovering the ▲/▼ marker shows the full tooltip
---
Tooltip (example)
```
▲ BUY CLUSTER
─────────────────────────
POC: 65 420.00 (18% from bottom)
Delta: +12 450 (+8.3%)
Buy: 54.2% │ Sell: 45.8%
─────────────────────────
Exchange Volume ×avg
─────────────────────────
Binance 1.2M ×2.3
Bybit 890K ×1.8
OKX 450K ×0.9
─────────────────────────
∑ Total: 2.5M
```
---
Parameters
Footprint Parameters
| Parameter | Default | Description |
|-----------|---------|-------------|
| Ticks per Row | 100 | Footprint row size in ticks |
| Value Area (%) | 70 | Value area percentage for POC calculation |
Clusters
| Parameter | Default | Description |
|-----------|---------|-------------|
| Cluster Zone (%) | 35 | POC in bottom/top N% of range = cluster. Recommended: 30–40% |
| Show Buy / Sell Clusters | true / true | Toggle each cluster type on/off |
| Accent Color: Buys / Sells | orange / blue | Color for the ▲/▼ label and frame |
Filters
| Parameter | Default | Description |
|-----------|---------|-------------|
| Confirm with Delta | true | Main filter. Buy cluster only when delta > 0 |
| Min Delta (% of Volume) | 0 | Minimum delta strength as % of volume. 0 = disabled |
| Min Candle Volume | 0 | Ignore low-activity bars. 0 = disabled |
| Min Candle Range (ATR %) | 0 | Doji filter. 0 = disabled |
Exchanges 1–5
| Parameter | Description |
|-----------|-------------|
| Enable | Toggle this exchange on/off |
| Prefix | PulseWire exchange prefix: `BINANCE`, `BYBIT`, `OKX`, `BITGET`, `KRAKEN`, `COINBASE`, `BITMEX`, etc. |
| Ticker | Empty = current chart ticker. Fill manually if the exchange uses a different format (e.g. `XBTUSD` for Kraken) |
| Name | Text shown on boxes and in the tooltip |
| Color | Box fill and border color |
Bar Visualization
| Parameter | Default | Description |
|-----------|---------|-------------|
| Normalization Mode | % of Average | How bar heights are calculated (see below) |
| SMA Period (bars) | 20 | Moving average period for normalization. Volume / SMA = relative size |
| Height Scale (× ATR) | 0.08 | Base height when volume equals average. Increase if bars look too small |
| Max Multiplier | 5.0 | Growth cap. Volume > 5×average does not increase height further |
| Fill Transparency | 25 | 0 = fully opaque, 95 = nearly invisible |
| Info Label (exchanges + volumes) | true | Show per-exchange volume label outside the candle |
| Label Text Size | small | Text size for the label: tiny / small / normal |
| Label Offset (× ATR) | 0.5 | Distance from candle high/low in ATR units. 0 = flush with candle |
Normalization Modes
| Mode | Description |
|------|-------------|
| **% of Average** | Each exchange bar is scaled against its own SMA. Height = base when volume = average; capped at Max Multiplier × base |
| **% of Total** | Bar width represents the exchange's share of combined volume across all active exchanges on that bar |
| **Absolute** | All exchanges normalized against the combined average of all active exchanges |
Limitations
Object limit:** `max_boxes_count = 500`. With 3 active exchanges you can see ~165 cluster bars; with 5 exchanges ~100. Older objects are removed automatically.
Footprint data:** requires a PulseWire subscription that includes Order Flow / Footprint access.
Box labels:** may not be visible if a box is very thin (small ATR or low scale). The hover tooltip always works.
Cluster detection** is based on the current chart's exchange only. Exchanges 1–5 provide volume breakdowns but do not affect whether a cluster is detected.
Alerts
| Alert Name | Trigger |
|------------|---------|
| Buy Cluster | Buy cluster detected on bar close |
| Sell Cluster | Sell cluster detected on bar close |
Alert message format: `{{ticker}} {{interval}} | Buy/Sell cluster by exchanges` Indicator

Volatility-Adjusted Supply & Demand Zones [Footprint]Volatility-Adjusted Supply & Demand Zones
Overview
Most supply and demand indicators draw zones based on price structure alone — a strong candle appears, a box gets painted, and every zone looks equally valid. This indicator takes a different approach: it sizes and scores every zone using ATR-based volatility, then validates each zone using real order flow data pulled from the bar's volume footprint. The result is a layer of institutional context that price-only zone detectors cannot provide.
The indicator detects displacement candles whose bodies exceed a user-defined ATR multiple, assigns each zone a composite strength score derived from body size and relative volume, and then cross-references the zone's origin bar against footprint delta — the net difference between aggressive buying and aggressive selling — to classify each zone as confirmed, weak, or mitigated. Zones where order flow agreed with the directional move are rendered at full opacity. Zones where delta contradicted the move are faded, acting as a caution signal rather than a confident level. A built-in performance heatmap tracks historical win rates and delta confirmation rates across five strength bins so you can calibrate inputs to your instrument over time.
How it works
Zone detection
On each bar the indicator computes ATR and compares the candle body size against it. If the body exceeds the displacement threshold (ATR × Displacement Multiplier), the bar is flagged as a displacement move. A pending zone is created at the candle's proximal edge and held in a queue. The zone is only confirmed after price has moved away cleanly for a user-defined number of bars without re-entering the candidate range. If price re-enters during the waiting period, the candidate is discarded.
bodySize = math.abs(close - open)
dispRatio = bodySize / atr
isStrongMove = dispRatio > displacementMult
Zone height is fixed at the time of detection: ATR × Zone Width Multiplier, measured from the proximal edge of the displacement candle inward. Demand zones extend downward from the candle high; supply zones extend upward from the candle low.
Strength score
Each zone carries a strength score calculated from the body-to-ATR ratio and the bar's relative volume (volume divided by its moving average). Multiplying these two factors rewards moves that were both large in price terms and accompanied by elevated volume.
relVol = volume / ta.sma(volume, volLengthInput)
strengthScore = dispRatio * math.sqrt(relVol)
The score is displayed on the zone label and used to bin zones into the statistics table.
Footprint delta confirmation
The indicator calls request.footprint() once per bar to obtain the volume footprint for the displacement candle. It reads the bar-level delta (net aggressive buying minus selling), and also inspects the Point of Control (POC) row for directional imbalance. A demand zone is delta-confirmed when the origin bar shows net buying (delta > 0). A supply zone is confirmed when the origin bar shows net selling (delta < 0). When delta contradicts the zone direction, the zone is rendered at the Weak Zone Transparency level as a visual warning.
Zones whose POC row has a confirming buy or sell imbalance are marked with a ⚡ symbol on their label, indicating that the most-traded price level within the bar showed a pronounced one-sided order flow skew.
Visual encoding
Full-opacity zone — footprint delta confirmed the zone direction. Treat as a standard level.
Faded zone (Weak Zone Transparency) — delta contradicted the zone direction. Approach with caution; order flow did not support the move.
Heavily faded zone (Mitigated Transparency) — price has since closed through the far edge of the zone. The level has been invalidated.
⚡ label marker — the POC row of the origin bar showed a confirming imbalance, suggesting concentrated institutional activity at the most-traded price.
Inputs
Detection
ATR Length — lookback period for ATR, which controls zone width, displacement sensitivity, and reaction targets across the entire indicator. Lower values (e.g. 7) make ATR respond faster to recent volatility, producing narrower zones on quiet bars. Higher values (e.g. 21) smooth out spikes for more consistent sizing. Default: 14.
Displacement Multiplier — minimum candle body size as a multiple of ATR required to qualify as a displacement move. Lower values (e.g. 0.5) detect more zones including smaller impulses. Higher values (e.g. 1.5–2.0) filter down to only the most explosive candles. Default: 1.0.
Volume MA Length — lookback period for the volume simple moving average used to compute relative volume. Lower values (e.g. 10) make the baseline adapt quickly so only larger surges register. Higher values (e.g. 50) treat moderate volume increases as more significant. Affects the strength score only, not zone placement. Default: 20.
Zone Width ATR Multiplier — height of each zone expressed as a multiple of ATR at detection. Lower values (e.g. 0.3) produce tight zones that require a precise re-entry. Higher values (e.g. 1.0) tolerate wider wicks before a touch is registered. Default: 0.5.
Confirmation Bars — number of bars price must hold outside the zone after the displacement candle before the zone is drawn. Lower values (e.g. 1–2) capture zones faster but allow more false starts. Higher values (e.g. 5+) require a sustained move away and reduce noise. Default: 3.
Volume Footprint
Ticks Per Footprint Row — price range of each footprint row in ticks. Smaller values (e.g. 10–25) produce more granular rows and more detailed POC detection. Larger values (e.g. 200–500) aggregate into fewer rows and run faster. Match to your instrument: for ES futures (0.25 pts/tick), 100 ticks = 25 points per row; for BTC (0.10/tick), 1000 ticks ≈ $100 per row. Default: 100.
Value Area % — percentage of total bar volume that defines the Value Area, following standard market profile convention. Raising this widens the VA; lowering it tightens it. Default: 70.
Imbalance Threshold % — how much a row's buy volume must exceed the row below's sell volume (or vice versa) to be flagged as imbalanced. At 300%, buy volume must be 3× the adjacent row's sell volume. Lower values (e.g. 150%) flag more imbalances; higher values (e.g. 500%) flag only extreme skews. Default: 300.
Show Delta on Zone — when enabled, the zone label includes the footprint delta direction (▲/▼) and size in thousands at the origin bar. Disable to show only the strength score. Default: on.
Highlight Imbalanced Zones — when enabled, zones whose origin bar POC row has a confirming directional imbalance are marked with ⚡ in the label. Disable to suppress imbalance detection entirely. Default: on.
Statistics
Show Performance Heatmap — toggles the heatmap table in the top-right corner. The table groups zones into five strength bins and shows demand win rate, supply win rate, total zone count, and delta confirmation rate per bin, colour-coded from red (low) to green (high). Default: on.
Reaction Target (ATR) — how far price must move away from a zone after touching it to count as a successful reaction, in ATR multiples. Lower values (e.g. 0.5) count small bounces as wins; higher values (e.g. 2.5–3.0) require meaningful moves. Affects statistics only — does not resize zones. Default: 1.5.
Style
Demand Color — fill and border colour for demand zones. The opacity set in the colour picker controls baseline transparency; delta-confirmed zones render at this opacity while weak zones are additionally faded. Default: green at 60% transparency.
Supply Color — fill and border colour for supply zones. The same transparency layering applies as demand zones. Default: red at 60% transparency.
Weak Zone Transparency — transparency applied to zones where footprint delta contradicts the zone direction. Higher values (closer to 100) make weak zones nearly invisible. Lower values keep them visible as a caution marker. Default: 82.
Mitigated Transparency — transparency applied after a zone is invalidated by price closing through its far edge. Higher values clean up the chart; lower values retain mitigated zones as historical context. Default: 90.
Usage notes
Before trusting any zone, check the label: a ▼ delta on a demand zone or ▲ delta on a supply zone means aggressive order flow did not support the move. Wait for additional confirmation before entering against the zone.
The ⚡ marker identifies zones where the most-traded price level within the displacement bar showed a one-sided imbalance. These levels represent potential areas of concentrated institutional activity and may produce stronger reactions than unmarked zones.
Use the performance heatmap to calibrate your displacement and volume inputs. If the highest-scoring bins (6–8, 8+) are showing low win rates for your instrument, the displacement multiplier may be too low and is capturing impulsive but unsustained moves.
The Δ Conf% column in the heatmap shows what fraction of zones in each strength bin had confirming delta. If high-strength zones show low confirmation rates on your instrument, consider whether a different timeframe or session gives more reliable footprint data.
Footprint data requires a PulseWire subscription tier that provides volume footprint access. On instruments or timeframes where footprint is unavailable, delta values display as "Δ n/a" and all zones default to confirmed status so zone detection still functions.
Ticks Per Footprint Row is the most instrument-sensitive input. Set it too small and computation overhead increases; set it too large and POC imbalance detection loses resolution. For equity index futures, 50–100 ticks per row is a reasonable starting range.
Mitigated zones (heavily faded) mark levels where price has already broken through. They are kept visible by default as historical reference but can be hidden completely by setting Mitigated Transparency to 100.
This indicator does not generate entry signals. It identifies structural levels with order flow context. Combine it with a trigger mechanism — a lower-timeframe confirmation candle, a momentum signal, or a volume surge — before committing to a trade.
Indicator

HTF Power of Three ProHTF Power of Three Pro
Overview
Power of Three (PO3) is a Smart Money Concepts framework developed by ICT / Inner Circle Trader. It models every higher-timeframe candle as a three-stage institutional campaign: Accumulation (price consolidates near the open), Manipulation (a liquidity sweep in one direction), and Distribution (expansion and close in the opposite direction). Recognising this structure on higher timeframes gives traders a narrative for where price has been and where it is likely to go within the current candle.
This indicator renders the HTF PO3 candle directly on your lower-timeframe chart as a body box with full wicks, a live countdown timer, and a projection panel to the right of price. Beyond the basic candle, it integrates real footprint delta data from `request.footprint()` to flag whether the net order flow inside each candle supports its directional move — separating candles with genuine institutional conviction from those that closed in a direction without confirming buy or sell pressure.
How It Works
The indicator requests OHLC and time data from a user-selected higher timeframe using `request.security()` with `lookahead_on` so the open is always known at the start of each HTF candle. On each lower-timeframe bar, it accumulates the running high, low, close, and footprint delta. When the HTF candle closes, the completed candle is drawn as a body box with wick lines and a delta label. A live box redraws on every tick to show the in-progress candle.
For footprint data, each lower-timeframe bar requests a `footprint` object via `request.footprint()`. The indicator sums all row deltas to obtain the bar's net delta, then classifies each bar as belonging to the lower or upper half of the current HTF range based on bar midpoint vs. HTF midpoint:
footprint fp = request.footprint(i_fpTicks, i_fpVa, i_fpImb)
float barDelta = na
float barLHD = na // lower-half delta accumulator
float barUHD = na // upper-half delta accumulator
if not na(fp)
array rows = fp.rows()
float totalD = 0.0
for row in rows
totalD += row.delta()
barDelta := totalD
htfMid = (htfH + htfL) / 2.0
barMid = (high + low) / 2.0
if barMid < htfMid
barLHD := totalD
barUHD := 0.0
else
barLHD := 0.0
barUHD := totalD
At the end of each HTF candle, the indicator tests for Volume Concentration Conviction : for a bullish candle, the indicator checks whether a configurable percentage of delta came from bars in the lower half of the range (smart money accumulating below before distributing up). For a bearish candle, it checks whether the majority of sell delta came from the upper half. Candles that pass this test receive a glow halo and a highlighted border, and their delta label is stamped with a concentration percentage badge.
Colour Coding
Body box — bullish : configurable fill (default semi-transparent green) with grey border.
Body box — bearish : configurable fill (default semi-transparent red) with black border.
Conviction highlight — bull : cyan glow halo and border (default #00e5ff) indicating buy delta concentrated in the lower half of range.
Conviction highlight — bear : amber glow halo and border (default #ff9800) indicating sell delta concentrated in the upper half of range.
Delta label — positive : lime green text showing net buy delta.
Delta label — negative : red text showing net sell delta.
Macro windows : yellow fill boxes marking 20-minute ICT macro windows around hourly pivots (EST).
Session boxes : user-defined colour fills for up to three intraday sessions.
Inputs
PO3 Settings
Timeframe — the higher timeframe whose candle the indicator models. Must be strictly above the chart timeframe; a runtime error fires otherwise. Default: 180 (3-hour).
Use NY Midnight — replaces the regular session open with the 00:00 EST candle open for Daily and Weekly timeframes, aligning with ICT's NY Midnight concept. Default: off.
HTF PO3 Appearance
Body (Bull / Bear) — fill colours for bullish and bearish HTF candle bodies. Default: semi-transparent green / red.
Border (Bull / Bear) — border colours for the body box. Default: grey / black.
Wick (Bull / Bear) — wick line colours. Default: semi-transparent grey for both.
Projection Panel
Show Projection Panel — toggles the mini-panel drawn to the right of the last bar showing the live candle alongside recent closed candles. Default: on.
Candles to Show — number of historical HTF candles to display in the panel, not counting the live candle. Range: 1–10. Default: 3.
Right Offset (Bars) — gap in bars between the last chart bar and the left edge of the panel. Increase this if labels overlap price. Default: 15.
Candle Width — width in bars of each panel candle slot. Range: 2–30. Default: 6.
Gap — spacing in bars between candle slots. Range: 1–30. Default: 10.
Show OHLC Labels — prints O/H/L/C price labels to the right of each panel candle. Default: on.
Show Delta Labels — prints the net delta below each panel candle, with a conviction badge where applicable. Default: on.
LTF Projections (Live PO3)
OHLC Price — shows O/H/L/C price labels beside the live HTF candle on the main chart. Toggle and colour configurable. Default: on, silver.
Mode — switches OHLC labels between absolute price and percentage of the current HTF range. "% Range" is useful on instruments with large nominal prices. Default: Normal.
Open Line — draws a dashed line at the HTF open price extending 50 bars to the right. Toggle, colour, and width configurable. Default: on, grey, width 1.
L/H Lines — draws dashed lines at the running HTF high and low extending to the right. Toggle, colour, and width configurable. Default: on, teal, width 1.
Label & Text Size — governs the size of all labels and table text. Options: Auto, Tiny, Small, Normal, Large, Huge. Default: Small.
LTF Projections (Previous PO3)
Show Previous PO3 — draws the prior HTF candle's open, high, low, and equilibrium (midpoint) as persistent lines across the chart. Default: on.
Prev Open Style / Colour / Width — line style, colour, and width for the previous candle's open level. Default: Dashed, orange, width 1.
Prev H/L Style / Colour / Width — line style, colour, and width for the previous candle's high and low. Default: Dashed, yellow, width 1.
Prev EQ Style / Colour / Width — line style, colour, and width for the previous candle's equilibrium (50% level). Default: Dotted, semi-transparent white, width 1.
Extend Previous Opens — projects the open price of up to 10 past HTF candles as faded dotted lines across the chart, useful for identifying historical open-price magnets. Default: off.
Dealing Range
Show Dealing Range — draws the four premium/discount quadrant levels of the live HTF candle: High, Q3 (75%), EQ (50%), Q1 (25%), Low. Default: off.
H/L Style / Colour / Width — appearance of the High and Low boundary lines. Default: Solid, white, width 1.
EQ Style / Colour / Width — appearance of the 50% equilibrium line. Default: Dashed, semi-transparent white, width 1.
Q1/Q3 Style / Colour / Width — appearance of the 25% and 75% quartile lines. Default: Dotted, semi-transparent grey, width 1.
Show Level Labels — annotates each dealing range line with its name (DR High, Q3 75%, etc.). Default: on.
Weekly Profile
Show Weekly Profile — when the HTF timeframe is set to W, draws individual daily candle body boxes inside the weekly range, coloured by day of week. Best used alongside a Weekly timeframe setting. Default: off.
Mon / Tue / Wed / Thu / Fri — fill colours for each day's body box in the weekly profile. Defaults: blue, purple, orange, teal, red (all semi-transparent).
Time & Price
Mode — selects the time-and-price overlay. Off : no overlay. Macros : draws 8 ICT 20-minute macro windows around hourly EST pivots as coloured boxes. Session : draws up to 3 user-defined intraday sessions as coloured boxes. Day of Week : groups weekdays into two PO3-style candles (Group A: Mon–N, Group B: remaining days). Default: Off.
Macro Color / Border — fill and border colours for ICT macro window boxes. Default: semi-transparent yellow fill, solid yellow border.
Session 1 / 2 / 3 — enable toggle, start time (HH:MM, 24h, exchange timezone), end time, and fill colour for each session. Sessions may cross midnight. Defaults: Session 1 08:30–12:00 blue; Session 2 12:00–16:00 green; Session 3 disabled.
Group A: Days 1–N — the number of weekdays (counting from Monday) that form Group A in Day of Week mode. Range: 1–4. For example, 4 groups Mon–Thu together; Friday becomes Group B alone. Default: 4.
Group A / Group B Colour — fill colours for the two day-of-week candle groups. Default: blue / red (semi-transparent).
Footprint Delta
HTF Delta Labels — prints net delta text below each completed HTF candle drawn on the main chart. Default: on.
Live Delta Label — prints the running net delta below the live HTF candle, updating on every tick. Default: on.
Ticks per Row — the price range of each footprint row passed to `request.footprint()`. Smaller values (e.g. 1–2) produce finer row granularity; larger values (e.g. 10+) produce coarser rows and faster execution. Match this to your instrument's typical tick structure. Default: 4.
VA Percent — the Value Area percentage passed to `request.footprint()` for POC/VA calculations. Range: 1–100. Default: 70.
Imbalance % — the ask/bid ratio threshold passed to `request.footprint()` for identifying imbalanced rows. Default: 300.
Positive / Negative Delta Colour — text colours for positive and negative delta labels. Default: lime / red.
Volume Concentration
Show Conviction Highlight — enables the glow halo and border highlight on candles where delta is concentrated in the directionally correct half of the HTF range. Disable to suppress all conviction visuals without changing other settings. Default: on.
Concentration Threshold % — the minimum percentage of total half-range delta that must come from the conviction zone to qualify a candle. At 51% any slight lean qualifies; at 80%+ only strongly concentrated candles qualify. Range: 51–100. Default: 60.
Bull Conviction / Bear Conviction Colour — glow and border colours for bullish and bearish conviction candles. Default: cyan (#00e5ff) / amber (#ff9800).
Highlight Border Width — border width of the conviction glow box and body border. Range: 1–4. Default: 2.
PO3 Info Table
Range — sets whether the range row in the info table displays as a price difference or as a tick count. Default: Price.
Position — vertical (top / middle / bottom) and horizontal (left / center / right) position of the info table. Default: middle right.
Label / Text Colour — background colour for label cells and text colour for value cells. Default: semi-transparent grey labels, white text.
Usage Notes
Set the timeframe to one step above your trading chart. On a 15-minute chart, a 3-hour or 4-hour HTF candle gives you the PO3 campaign context most traders use for intraday bias.
Use the conviction highlight to filter entries. A bullish HTF candle with a cyan glow means buy delta was concentrated in the lower range half — consistent with institutional accumulation. A candle that closes bullish without conviction may be a manipulation leg rather than a genuine distribution.
The Dealing Range levels (H, Q3, EQ, Q1, L) provide premium and discount zones for the current HTF candle. Entering long below EQ and short above EQ aligns with the PO3 distribution model.
Enable Extend Previous Opens to track historical HTF open prices as potential support and resistance. Price frequently returns to prior HTF opens before continuing.
In Macros mode, the 8 ICT windows mark the 20-minute periods where London and New York session pivots are typically formed. These are common manipulation windows within the daily PO3 cycle.
The Ticks per Row input should match your instrument's structure. For index futures (e.g. ES, NQ), 4–10 ticks per row is typical. For forex pairs with 5-digit pricing, 1–2 ticks may be more appropriate.
The indicator requires a higher timeframe than the chart. Setting the timeframe equal to or below the chart timeframe triggers a runtime error by design.
Footprint data requires a PulseWire plan that includes volume footprint access. If `request.footprint()` returns `na` consistently, check your plan level and confirm the symbol provides tick data.
Recommended Pairings
Works well alongside an order block or fair value gap indicator to confirm that PO3 manipulation legs are sweeping known liquidity zones.
Pair with a session VWAP indicator to see how the HTF open relates to volume-weighted price — divergence between the HTF open and VWAP is a common manipulation signal.
Indicator

Indicator

Cumulative Applied Force DifferentialWhat
The purpose of the model is to measure how buying and selling pressure builds up during today’s session and compare it directly to how pressure built up at the same moment in the previous session. By aligning both sessions bar‑for‑bar, the model reveals whether today’s market is applying more, less, or opposite “force” than yesterday. This gives traders a real‑time view of strength, weakness, or behavioral shifts that price alone cannot show.
How
The model calculates market pressure using cumulative delta, which is built from bid/ask proxy volume; a method that estimates whether buyers or sellers were more aggressive on each bar. Each bar’s net pressure is added to a running total, creating a live measure of how buying or selling force accumulates throughout the session. To contextualize this pressure, the script also classifies each bar into ATR‑defined zones (upper, lower, or neutral), helping identify whether pressure is building near extremes or in the middle of the range.
Every cumulative delta value is stored in a session‑indexed array, which acts like a timeline of the session: bar 1, bar 2, bar 3, and so on. When a new session begins, yesterday’s array is saved, and a fresh one starts for today. Because both arrays are indexed by bar number, the script can match today’s bar with yesterday’s bar at each timepoint. This alignment allows the model to retrieve yesterday’s cumulative delta at the exact same point in the session and compare it to today’s value. The script then computes the divergence, at each bar, the model takes today’s cumulative delta and subtracts yesterday’s cumulative delta at the same point in the session to find how much stronger or weaker today’s pressure is. This difference is the market‑microstructure equivalent of a Cumulative Applied Force Differential; a measure of whether today’s pressure is stronger, weaker, or reversing relative to the previous session. The results are displayed in a table showing today’s value, yesterday’s aligned value, and the differential, with color coding to highlight strength, weakness, or neutrality at a glance.
Why
The rationale behind the model is that cumulative delta becomes far more meaningful when compared in context rather than viewed in isolation. Markets often repeat, invert, or distort behavioral patterns across sessions, and aligning sessions by bar index exposes these patterns with precision. By measuring the differential between today’s accumulated pressure and yesterday’s at the same moment, the model highlights acceleration, fading strength, absorption, or early signs of reversal before they appear in price. In essence, it quantifies how today’s underlying “force profile” deviates from yesterday’s, giving traders an objective and early read on evolving market intent.
Indicator

Volatility Squeeze Oscillator [JOAT]Volatility Squeeze Oscillator
Introduction
Volatility does not move randomly. It compresses, coils, and then releases — and the magnitude of the release is frequently proportional to the depth and duration of the compression. This relationship between volatility contraction and subsequent expansion is one of the most durable patterns in market behavior across all asset classes and timeframes. The Volatility Squeeze Oscillator is built to quantify this relationship with precision, using a multi-layered analysis framework that goes well beyond standard squeeze detection.
At its core, the indicator uses an ATR compression ratio engine to measure the difference between a short-term and long-term ATR. When the short-term ATR is smaller than the long-term ATR, volatility is contracting — the market is coiling. When the short-term ATR expands beyond the long-term reference, the coil is releasing. This compression differential is normalized against the high-low range, making the oscillator comparable across different instruments and volatility regimes.
Three additional analytical layers are stacked on top of the compression engine. A cumulative delta proxy estimates buying versus selling pressure within each bar using range-based calculations — no Level 2 or order flow data required. A volume RSI module measures whether the current volume is elevated relative to its own history, providing a confluence filter that separates high-conviction from low-conviction squeeze releases. And a statistical deviation band system built on a 200-bar lookback marks the historically significant boundaries of the squeeze oscillator's own distribution, so traders can identify not just whether a squeeze is forming, but how extreme it is relative to its own history.
Core Concepts
1. ATR Compression Ratio Engine
The compression ratio is derived from two ATR calculations at different smoothing periods. Both use EMA smoothing rather than RMA (Wilder's method) to produce a more responsive and visually cleaner oscillator. The short-term ATR reflects current volatility conditions. The long-term ATR (calculated at double the base period) establishes the reference level representing the recent historical norm. The difference between these two — long minus short — is the squeeze value: positive when the market is contracting (short ATR below long-term baseline), negative when expanding.
trueRange = ta.tr(true)
atrShort = ta.ema(trueRange, len)
atrLong = ta.ema(atrShort, len * 2)
sqzRaw = atrLong - atrShort
hlRange = ta.highest(high, len) - ta.lowest(low, len)
sqzVal = hlRange > 0 ? sqzRaw / hlRange : 0
Normalizing by the HL range makes the oscillator dimensionless — a squeeze value of 0.3 carries the same meaning whether you are analyzing a $1 stock or a $50,000 Bitcoin contract. The signal line is an EMA of the squeeze value, used to detect the inflection point where the squeeze begins to build (sqzVal crossing above sqzSig) or release (sqzVal crossing below sqzSig).
2. Hyper-Squeeze Detection
A hyper-squeeze occurs when the squeeze value is not merely positive (compressing) but is actively rising for N consecutive bars — indicating an accelerating contraction rather than a stable one. Accelerating compression is particularly significant because it suggests market participants are increasingly reducing their activity, creating a coiled spring effect where the eventual release may be more forceful.
hyperSqz = sqzVal > 0 and ta.rising(sqzVal, hyperLen)
When a hyper-squeeze is active, a violet tint is overlaid on the oscillator background in addition to the regular delta-driven background color. The dashboard updates the hyper squeeze row to ACTIVE status. This dual visual layer makes extended compression phases immediately distinguishable from ordinary positive squeeze readings.
3. Cumulative Delta Proxy
Order flow analysis — understanding whether buyers or sellers are dominant within a given period — typically requires tick-level data or exchange-provided volume breakdown. This indicator constructs a proxy for cumulative delta using bar-level range analysis, making the information accessible without any data feed requirements.
barRange = high - low
bullPress = barRange > 0 ? (close - low) / barRange : 0.5
bearPress = barRange > 0 ? (high - close) / barRange : 0.5
deltaBar = bullPress - bearPress
deltaSma = ta.sma(deltaBar, deltaLen)
deltaPos = deltaSma > 0
A close near the high of the bar implies buyers dominated (bull pressure near 1.0). A close near the low implies sellers dominated (bear pressure near 1.0). The difference, smoothed over a configurable window, produces a normalized delta reading. When delta is positive during a squeeze, the compressed volatility is accumulating with a bullish lean. When negative, with a bearish lean. This directional information is used both in the histogram coloring (alpha derived from delta conviction) and in dashboard output.
4. Volume RSI Confluence
Volume RSI applies the standard RSI momentum formula to the volume series rather than price. This produces a normalized reading of whether current volume is elevated or depressed relative to its recent distribution. A high volume RSI (default threshold: 65) during a squeeze release indicates that the expansion is occurring on above-average participation — a meaningful distinction from low-volume releases that can quickly reverse.
volRsi = ta.rsi(volume, 14)
highVol = volRsi > volThresh
The volume RSI value and status are displayed in the dashboard. Alert conditions include a "high-volume release" alert specifically when both a squeeze release signal and elevated volume RSI occur simultaneously, providing a higher-conviction composite signal.
5. Statistical Deviation Bands
Rather than using fixed threshold lines at arbitrary values, the oscillator's own distribution is analyzed statistically using a 200-bar lookback. The mean and one and two standard deviation levels of the squeeze value over this window establish dynamically updating bands. These bands are filled with a gradient and rendered at adaptive transparency based on the current Z-score — as the oscillator approaches the 2σ band, the fill becomes more opaque, visually emphasizing extreme readings.
sqzMean = ta.sma(sqzVal, statLen)
sqzStd = ta.stdev(sqzVal, statLen)
band1Up = sqzMean + sqzStd
band2Up = sqzMean + 2 * sqzStd
band1Dn = sqzMean - sqzStd
band2Dn = sqzMean - 2 * sqzStd
zScore = sqzStd > 0 ? (sqzVal - sqzMean) / sqzStd : 0
A squeeze reading above the 2σ upper band is historically anomalous compression — significantly above what has been typical over the prior 200 bars. Such readings often precede the most explosive release moves.
6. Histogram Coloring and Background Rendering
The histogram bar colors encode two simultaneous dimensions. The base color is red when the squeeze is building (sqzVal above sqzSig) and teal when releasing (sqzVal below sqzSig). The alpha channel of each bar is modulated by the absolute value of the delta conviction — high delta conviction produces more saturated colors, while low-conviction delta (price closing near the bar midpoint) produces more transparent bars. The background color is a 93% alpha gradient driven entirely by delta: teal for bullish delta, red for bearish delta, with the hyper-squeeze violet tint layered on top when active.
Features
ATR Compression Ratio Engine: Measures the difference between short-term and long-term EMA-smoothed ATR, normalized by HL range for cross-instrument comparability.
Signal Line: EMA of the squeeze value provides the crossover reference for detecting compression buildup and release initiation.
Hyper-Squeeze Detection: Identifies accelerating compression phases where the squeeze is rising for N consecutive bars simultaneously.
Cumulative Delta Proxy: Bar-range-based buying and selling pressure estimate, smoothed and normalized, requiring no Level 2 data.
Volume RSI Confluence: RSI applied to volume series identifies above-average participation, separating high-conviction releases from low-volume ones.
Statistical Deviation Bands: 200-bar mean and sigma levels with gradient fill and adaptive transparency based on Z-score position.
Delta-Driven Alpha Histogram: Histogram color and opacity encode both squeeze direction and delta conviction simultaneously.
Layered Background Coloring: Delta-based background with hyper-squeeze overlay provides immediate pane-level context without requiring close inspection.
Signal Markers: Circle markers at oscillator bottom on squeeze cross and release cross events.
Seven-Row Dashboard: Real-time status covering state, hyper squeeze, volume RSI, delta bias, Z-score, and squeeze value.
Four Alert Conditions: Squeeze building, release detected, hyper squeeze active, and high-volume release composite signal.
Input Parameters
ATR Settings:
Base Length: Period for short-term ATR EMA and HL range lookback (default: 20)
Hyper-Squeeze Settings:
Hyper Squeeze Consecutive Bars: Number of consecutive rising bars required for hyper-squeeze (default: 3)
Delta Settings:
Delta Smoothing Window: SMA period for the delta bar average (default: 10)
Volume RSI Settings:
Volume RSI Period: RSI lookback applied to volume series (default: 14)
Volume RSI Threshold: Level above which volume is considered elevated (default: 65)
Statistical Bands Settings:
Statistical Lookback: Bar count for mean and standard deviation computation (default: 200)
Show Bands: Toggle deviation band fills (default: true)
Display Settings:
Show Background: Toggle delta and hyper-squeeze background coloring (default: true)
Show Signal Markers: Toggle circle markers at squeeze and release crosses (default: true)
Show Dashboard: Toggle the seven-row information table (default: true)
How to Use This Indicator
Step 1: Monitor the Squeeze State
The primary read from this oscillator is the current state displayed in the dashboard: SQUEEZING, RELAXING, or EXPANDING. Squeezing means the compression ratio is positive and rising — the market is actively coiling. Relaxing means the compression is positive but flattening or declining — the coil is beginning to unwind. Expanding means the oscillator has gone negative — volatility is actively expanding beyond the historical baseline. The transition from SQUEEZING to RELAXING is the early warning signal; the transition to EXPANDING is confirmation that the release has begun.
Step 2: Watch for Hyper-Squeeze Conditions
When the dashboard shows HYPER SQUEEZE: ACTIVE and the chart shows the violet tint overlay, the compression is accelerating — each bar the market is coiling tighter. These conditions historically precede more forceful releases. In hyper-squeeze conditions, position sizing on the anticipated breakout can be considered carefully, as the magnitude of the release may be larger than during ordinary squeeze exits.
Step 3: Check Delta Bias for Directional Lean
Before committing to a directional bias, check the delta row in the dashboard. Positive delta (bullish) during a squeeze indicates that even during compression, buyers have been closing bars near the upper portion of their range — a bullish accumulation signature. Negative delta (bearish) suggests the opposite. Delta bias does not guarantee direction, but it provides a useful lean when combined with the squeeze release signal.
Step 4: Require Volume RSI Confluence on Release
Not all squeeze releases produce sustained moves. Low-volume releases frequently reverse within a few bars. The "High-Volume Release" alert fires only when both a release cross and elevated volume RSI (above threshold) occur simultaneously. Waiting for this composite signal before acting on a release — rather than responding to the release cross alone — filters out a meaningful number of false expansion signals in low-participation environments.
Indicator Limitations
The ATR compression ratio measures relative volatility contraction but cannot determine the direction of the eventual breakout. This indicator identifies when a release is likely, not which way price will move. Directional analysis must come from structure, trend, or other contextual tools.
The delta proxy is a bar-level approximation of order flow. It does not access actual tick data, order book data, or trade-level information. In markets with high-frequency activity, the close-to-high/low ratio can systematically misrepresent actual buying and selling pressure.
The statistical deviation bands require 200 bars to be fully seeded. On instruments or timeframes with limited history, or immediately after loading a new chart, the bands may produce unreliable readings until sufficient data is available.
Volume RSI confluence is not applicable to instruments where volume data is unreliable, unavailable, or represents synthetic aggregation (some forex pairs, certain CFDs). In these cases, the volume RSI row should be treated as informational only.
The hyper-squeeze condition measures consecutive rising bars in the squeeze value. This makes it sensitive to the base period setting — shorter periods produce more variable squeeze values, leading to more frequent interruptions of the consecutive count.
This indicator operates entirely on the chart's native timeframe. It does not incorporate multi-timeframe squeeze data — a squeeze on a 15-minute chart may be occurring within the context of a much larger timeframe expansion that this indicator would not reflect.
Originality Statement
The Volatility Squeeze Oscillator is a purpose-built analytical instrument that combines techniques not previously assembled in this specific architecture.
The ATR compression ratio engine — using EMA-smoothed ATR at the base period versus double the base period, normalized by the HL range — is an original squeeze quantification method. It differs from the widely used Lazybear TTM Squeeze (which measures Bollinger Band width versus Keltner Channel width) by operating entirely within the ATR framework with range normalization.
The hyper-squeeze detection via ta.rising() on the already-positive squeeze value identifies accelerating compression as a distinct state separate from ordinary compression, a categorization not found in standard squeeze implementations.
The cumulative delta proxy using bar-range ratios (close minus low divided by range for bull pressure; high minus close divided by range for bear pressure), smoothed and normalized, provides order-flow-inspired information without any data dependency beyond OHLC — an original application of range analysis.
The integration of volume RSI as a confluence gate within the squeeze oscillator framework — not as a separate indicator but as an internal filter with dedicated dashboard output and composite alert conditions — is an original design choice.
The statistical deviation band system applied to the squeeze oscillator's own values (using a 200-bar SMA and StDev of the squeeze value itself) to create adaptive significance thresholds is an original meta-statistical layer not found in comparable oscillators.
Disclaimer
The Volatility Squeeze Oscillator is provided for educational and informational purposes only. It is a technical analysis tool and does not constitute financial advice. Identifying squeeze conditions does not predict the direction or magnitude of subsequent price moves with any certainty. All trading involves risk of loss. Users are solely responsible for their own trading decisions. Please consider your individual risk tolerance and consult a licensed financial professional before engaging in any trading activity.
-Made with passion by officialjackofalltrades
Indicator
