Bastion Ledger [JOAT]Bastion Ledger
Introduction
Bastion Ledger is an open-source liquidity and structure overlay designed to track active demand and supply zones through a full lifecycle model. The script builds zones from confirmed pivots and volume impulse events, then tracks how price interacts with those zones over time through active, swept, broken, retested, and archived states.
The problem Bastion Ledger solves is zone ambiguity. Many support and resistance tools simply draw a level and leave interpretation to the user. Bastion Ledger adds structure to that process by classifying how each zone was created and what has happened to it since. This makes the chart easier to read and gives the user a cleaner framework for identifying whether liquidity has held, been swept, failed, or transitioned into a retest state.
Core Concepts
1. Confirmed Pivot Structure
Zones created from pivots only appear after pivot confirmation. This introduces natural delay by design, but it prevents the script from creating forward-looking structure that disappears later.
2. Volume-Impulse Zone Creation
The script can also create zones from candles that exhibit high relative volume and efficient directional body behavior. This allows the overlay to capture not only swing structure but also displacement-origin areas.
3. Zone Lifecycle Model
Each zone progresses through a clear state model:
ACTIVE
SWEEPED
BROKEN
RETESTED
ARCHIVED
This is one of the defining features of the script. Instead of leaving historical rectangles behind with no context, the overlay tracks what has happened to each one.
4. Midpoint and Structure Rails
Every zone can include a midpoint reference and supporting structure rails to make reaction areas easier to inspect. This helps distinguish edge reactions from deeper zone acceptance.
5. Dashboard Context
The top-right dashboard summarizes active counts, nearest demand and supply distance, event state, and structure bias so the user can quickly orient themselves.
Features
Dual-source zone creation: Confirmed pivots and volume impulse zones
Stateful zone lifecycle: Tracks sweeps, breaks, retests, and archival
ATR-aware zone sizing: Zone height adapts to market conditions
Object-efficient rendering: Uses persistent objects with setter updates
Midpoint lines: Helps judge reaction depth inside each zone
Structure bias readout: Gives a quick demand-versus-supply view
Nearest-zone distance readout: Useful for contextual planning
Top-right dashboard: Medium-size summary panel
Confirmed-bar event logic: Creation and transitions are handled safely
Alertconditions: Zone create, sweep, break, retest, and structure breaks
How to Use This Indicator
Step 1: Identify the Nearest Active Zone
Use the plotted boxes and dashboard distance readouts to locate the nearest demand and supply area.
Step 2: Read the Zone State
An active zone is different from a swept or broken zone. The lifecycle state tells you whether the zone is still intact or has already lost integrity.
Step 3: Watch Retests After Breaks
Retested zones can be especially useful because they represent a transition from defended liquidity to broken structure and then a recheck of that failure.
Step 4: Combine with Regime Context
Bastion Ledger works best when combined with a separate trend or regime filter. Use it to map where reactions matter, not to replace directional context.
Indicator Limitations
Pivot-based zones confirm after the pivot completes, which is intentional non-repainting behavior
Very fast markets can move through multiple zone states in a short number of bars
Zone relevance declines over time, so older archived zones should not be treated like fresh liquidity
This script tracks structural interaction, not order flow or real exchange-level liquidity
Originality Statement
Bastion Ledger is original in its combination of pivot structure, volume-impulse zone creation, and lifecycle classification. The script is not just a rectangle drawer. Its core value lies in tracking how a zone evolves after creation and presenting that evolution in a consistent institutional overlay.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Liquidity zones are interpretive tools based on historical price and volume behavior and do not guarantee future reactions.
- Made with passion by jackofalltrades
Indicator

Volume Ledger [JOAT]JOAT Volume Ledger
Introduction
JOAT Volume Ledger is an open-source participation and volume-zone framework designed to identify where meaningful activity occurred, what type of activity it likely was, and which of those zones still matter now.
It is built around the idea that not all large volume is equal.
Some high-volume behavior represents sponsorship.
Some represents exhaustion.
Some represents churn or absorption.
Some leaves behind a meaningful footprint that the market later reacts to.
The problem the script solves is translation.
Raw volume bars alone do not explain whether heavy activity created useful levels.
They also do not organize those levels for later use.
Volume Ledger attempts to do both.
It begins with relative-volume heat and participation metrics.
It then uses confirmed pivot-based logic to create candidate zones.
Those zones are merged, ranked, extended, and reclassified as support or resistance based on how price returns to them.
Higher-timeframe carry-forward levels can also be displayed.
Core Concepts
1. Relative-Volume Heat
The script normalizes current volume against a baseline and color-grades it.
2. Delta, Churn, and Participation
A delta proxy, churn estimate, and participation line classify the quality of activity.
3. Confirmed Pivot-Zone Creation
When significant participation coincides with confirmed pivots, the script stores those prices as candidate zones.
4. Zone Merging and Ranking
Nearby zones are merged and stronger zones are prioritized.
5. Higher-Timeframe Carry-Forward Levels
Important HTF zones can be projected into the current chart.
6. Retest Logic
The script distinguishes whether an active zone is currently acting as support or resistance.
7. Overlay Box and Line Projection
Zones are projected forward into current chart space using managed boxes, lines, and labels.
8. Participation State Readout
The dashboard summarizes the dominant volume condition, active zones, and current participation quality.
Features
Relative-volume heatmap: current activity is normalized and color-graded
Delta, churn, sigma, and participation analytics: classifies the character of activity
Confirmed volume-origin zones: maps price areas linked to meaningful participation
Zone merging and ranking: reduces clutter and prioritizes stronger regions
Projected overlay boxes and lines: extends active zones into current price
Higher-timeframe ledger context: broader levels can be carried forward
Support / resistance retest logic: distinguishes how price is interacting with the zone
Bar tint and backdrop state: strong participation conditions are easy to spot
Dashboard: summarizes volume state and dominant zone structure
Input Parameters
Ledger Core:
Volume Comparison
Ledger Window
Participation Smoothing
Delta and Churn Settings
Relative Volume Thresholds
Zone Engine / Display:
Zone Extension
Merge Threshold
Zone Ranking Rules
Projected Levels
Higher-Timeframe Carry-Forward
Show Dashboard
Show Average
Show Participation Line
Show Projected Levels
Show Backdrop
Show Bar Tint
How to Use This Indicator
Step 1: Read current participation quality using the relative-volume state and participation line.
Step 2: Identify the dominant projected zones on the chart.
Step 3: Watch retests into those zones and compare them to current participation behavior.
Step 4: Compare active zones with higher-timeframe carry-forward levels.
Step 5: Use the script as confirmation beneath trend, liquidity, or retracement narratives.
Indicator Limitations
Volume proxies do not provide true exchange-level order-flow
High participation does not guarantee reversal or continuation
Very noisy markets can generate many candidate zones before merging and ranking simplify them
The script identifies footprints of activity, not certain turning points
Originality Statement
This script is original in the way it combines relative-volume heat, effort classification, pivot-zone construction, merging, ranking, higher-timeframe carry-forward, and retest-aware styling into a single participation ledger.
The purpose is not merely to show volume.
It is to preserve the most useful consequences of volume.
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not financial advice.
Volume and participation footprints do not guarantee future support or resistance.
Always use independent analysis and risk management.
Best Use Cases
Studying where strong participation likely left a usable footprint
Comparing current price retests to historical participation zones
Separating constructive activity from churn-heavy activity
Adding participation context to trend, liquidity, or retracement narratives
Interpretation Notes
Not every high-volume event deserves the same weight.
The script is most useful when strong participation aligns with structural pivots and later retests.
Higher-timeframe carry-forward levels can be especially helpful when local price is approaching an older but still meaningful participation zone.
The strongest zones are not simply the largest bars.
They are the most meaningful surviving footprints after merging, ranking, and retest context are applied.
Publication Notes
This script is intended to be published with a clean chart where the dominant projected zones and the current participation state are clearly identifiable.
The chart should not be overloaded with extra unrelated studies.
The image should make the volume-to-zone relationship understandable to a first-time viewer.
-Made with passion by jackofalltrades
Indicator

Retracement Lattice [JOAT]JOAT Retracement Lattice
Introduction
JOAT Retracement Lattice is an open-source retracement and extension framework designed to turn a confirmed swing into a live working map.
It does more than place Fibonacci levels on a chart.
The script manages swing anchors, highlights the OTE pocket, overlays confirmed higher-timeframe retracement structure, shades premium and discount halves, and evaluates response quality inside the active pocket.
The problem it solves is inconsistency.
Manual retracement drawing is useful, but it can also become subjective very quickly.
Anchors are often moved emotionally.
Higher-timeframe confluence is ignored.
The midpoint is overlooked.
The response inside the retracement is treated as equivalent even when it is not.
Retracement Lattice standardizes the active swing and continuously updates the derived structure.
That creates a cleaner framework for pullback analysis, continuation planning, and location-based decision making.
Core Concepts
1. Confirmed Swing Anchor Engine
The lattice begins with a confirmed swing.
Pivot logic and anchor-state management determine which high and low form the active range.
pivotHigh = ta.pivothigh(high, pivotLen, pivotLen)
pivotLow = ta.pivotlow(low, pivotLen, pivotLen)
2. Full Retracement Stack
The script calculates a broad set of retracement and extension levels rather than only the most common ones.
fib236 = levelAt(0.236)
fib382 = levelAt(0.382)
fib500 = levelAt(0.500)
fib618 = levelAt(0.618)
fib705 = levelAt(0.705)
fib786 = levelAt(0.786)
3. OTE Pocket Emphasis
The 0.618 to 0.786 region is emphasized as the main response pocket.
4. Higher-Timeframe Confluence
A confirmed higher-timeframe lattice is projected alongside the local one.
5. Premium and Discount Shading
The upper and lower halves of the swing are shaded relative to the midpoint.
6. Extension Objectives
The active swing also provides continuation targets beyond the range.
7. Response Qualification
The script evaluates whether price is reacting constructively inside the active pocket.
8. Chart-Edge Guidance
Labels and projected guide objects keep the live map readable near the right edge of the chart.
Features
Confirmed anchor-state engine: stable swing selection using pivot confirmation
Expanded retracement stack: 0.236, 0.382, 0.500, 0.618, 0.705, and 0.786
OTE pocket emphasis: the main response zone is highlighted
Extension objectives: continuation levels project beyond the swing
Higher-timeframe confluence: confirmed HTF lattice is shown
Premium / discount shading: auction halves are visible at a glance
Response qualification: pocket interaction is graded instead of assumed
Object-managed edge labels: the current range stays readable
Dashboard: anchor direction, confluence, and pocket state are summarized
Input Parameters
Swing Anchor:
Swing Lookback
Pivot Length
Reverse Orientation
Volume-Validated Pivots
Volume Baseline
Volume Threshold
Higher Timeframe / Display:
Show Higher Timeframe Grid
Higher Timeframe
Show Classic Retracements
Show Minor Levels
Show OTE Band
Show Extensions
Show Dashboard
Confluence Tolerance
Shade Auction
How to Use This Indicator
Step 1: Identify the active swing anchor pair.
Step 2: Check whether price is trading in premium or discount relative to the midpoint.
Step 3: Focus on the OTE pocket when the broader structure supports it.
Step 4: Compare the local lattice to the confirmed higher-timeframe lattice.
Step 5: Use the extensions to organize continuation targets after response.
Indicator Limitations
Anchors settle only after pivot confirmation, which is intentional non-repainting behavior
Strong trends can continue without deep retracement into the pocket
Confluence improves context but does not force a reaction
Retracement tools provide structure, not certainty
Originality Statement
This script is original in how it turns a retracement tool into an active framework with anchor-state management, OTE response logic, premium-discount shading, higher-timeframe confluence, and extension objectives.
The components are unified around one job:
to make pullback location more structured and less subjective.
Disclaimer
This indicator is provided for educational and informational purposes only.
It is not financial advice.
Retracement and extension levels are analytical references and do not guarantee support, resistance, or target completion.
Use risk management and independent judgment at all times.
Best Use Cases
Structuring pullback analysis after a confirmed directional swing
Comparing local retracement behavior to confirmed higher-timeframe levels
Locating the OTE pocket inside a stable swing map
Planning continuation targets with extension levels
Interpretation Notes
The midpoint is important because it quickly reveals whether price is trading in the premium or discount half of the current auction.
The OTE pocket is most useful when the broader structural narrative already supports the same directional idea.
Higher-timeframe confluence should be treated as context improvement, not as a guarantee that the level must react.
Publication Notes
This script is intended to be published with a clean chart showing the active anchor, the highlighted OTE pocket, and the higher-timeframe overlap when it exists.
The chart example should make the active swing easy to understand.
Avoid clutter from unrelated studies or excessive drawings.
-Made with passion by jackofalltrades
Indicator

Auction Structure Ledger [JOAT]Auction Structure Ledger
Introduction
Auction Structure Ledger is an open-source Pine Script v6 indicator that transforms confirmed pivot behavior into structured auction zones. Instead of treating every swing high and swing low as equally important, the script looks for clustered defended pivots, measures how much volume-confluence exists at those prices, and converts the result into support and resistance shelves that persist, update, and eventually retire as price accepts or fails them.
The problem this indicator solves is structural ambiguity. Many charts contain repeated pivot noise that does not deserve equal visual weight. A single swing high does not automatically represent meaningful supply, and a single swing low does not automatically represent meaningful demand. Auction Structure Ledger filters pivot activity through clustering logic and local volume-confluence so the chart emphasizes defended areas where auction acceptance and rejection are more likely to matter.
The script is useful for traders who think in terms of accumulation, distribution, acceptance, and failure. It does not attempt to forecast the future from one oscillator reading. It organizes the chart around defended reference zones, tracks how price behaves around them, and summarizes the current auction state in a way that can support discretionary analysis or other rule-based systems.
Because it combines pivot clustering with a volume-confluence layer, the indicator is not simply painting boxes around old highs and lows. It is trying to identify where the market repeatedly acknowledged a price region and whether that region still behaves as support or resistance.
Core Concepts
1. Pivot Confirmation And Structural Timing
The script uses `ta.pivothigh()` and `ta.pivotlow()` to confirm swing highs and lows with a symmetric lookback. This means zones are only created after the pivot is actually confirmed, which avoids the false certainty that comes from drawing structure before the right-side bars exist.
float pivotHigh = ta.pivothigh(high, pivotLength, pivotLength)
float pivotLow = ta.pivotlow(low, pivotLength, pivotLength)
This is deliberate non-repainting behavior. The structure appears later than the original pivot candle, but it appears only after the market has confirmed the swing.
2. Clustered Defense Rather Than Single-Pivot Noise
Once a pivot appears, the script scans a configurable cluster window to count how many nearby pivots formed within an ATR-based tolerance. That cluster count becomes part of the zone’s strength score.
This is what gives the ledger its auction logic. A zone becomes more meaningful when the market keeps defending the same approximate level rather than printing a one-off pivot and moving on.
3. Volume-Confluence Layer
The script builds a rolling volume distribution across the current price window and checks how much of that distribution sits at the pivot price. That reading is normalized into a confluence percentage.
In practice, this means a clustered pivot with low local volume-confluence is treated differently from a clustered pivot that sits in a high-activity price region. The first may represent weak structure. The second may represent a more meaningful auction shelf.
4. Support And Resistance Shelf Construction
When a pivot passes the cluster criteria, the script creates a zone with ATR-based width. Resistance shelves are built above price with an offered profile. Support shelves are built below price with a bid profile. Each shelf contains a body, a spine line through the midpoint, and an information label summarizing the zone.
The shelf width is not arbitrary. It scales with ATR so zones remain proportionate across different volatility conditions and instruments.
5. Acceptance And Failure Tracking
After a zone is created, the script continues monitoring it. If price trades within the zone and remains inside it, the shelf is counted as accepted. If price closes through the invalidation side of the shelf, it is counted as failed and eventually removed after a short lifecycle buffer.
That behavior matters because the market is not static. A valid shelf today can become irrelevant after repeated acceptance or a decisive failure.
Features
Cluster-confirmed auction shelves: Builds zones only when pivots cluster within an ATR-based tolerance
Support and resistance separation: Maintains bid-side and offered-side structure independently
Volume-confluence scoring: Measures how much rolling price-volume concentration supports each shelf
ATR-scaled zone width: Keeps shelf geometry adaptive to volatility instead of fixed-width boxes
Acceptance and failure tracking: Continues scoring shelves after creation as price interacts with them
Confluence ribbon: Displays whether current price is trading in a high-confluence region of the rolling ledger
Nearest distance metrics: Shows the ATR distance to the closest active support and resistance shelves
Institutional dashboard: Summarizes support count, resistance count, acceptance rate, failure rate, bias, and strongest zone
Confirmed-bar alert set: Includes bullish ledger, bearish ledger, fresh support, and fresh resistance alerts
Data-window outputs: Exposes structure counts and confluence values for additional interpretation
Visual Elements
Auction shelves: Each zone is rendered as a structured body rather than a simple line so the user can read width and tolerance clearly
Shelf spine: A dotted midpoint line marks the internal balance area of each shelf
Confluence ribbon: The ribbon around price shows whether the current location overlaps with strong rolling confluence
Responsive color logic: Support, resistance, touched, and failed states each alter the way the shelf is displayed
Compact info labels: Each zone carries its own context label so the chart remains interpretable without opening settings
Best Practices
Give more weight to shelves that combine both repeated pivot defense and strong volume-confluence
Watch how price behaves on the first return to a new shelf before assuming the level is strong
Treat accepted zones and failed zones differently because they tell very different auction stories
Use nearest support and resistance ATR distances to understand whether price is extended or structurally balanced
Combine the ledger with your own trigger logic rather than assuming shelf presence alone is a complete trade plan
Input Parameters
Structure Engine:
Pivot Length: Sets how many bars are required on each side of a pivot to confirm it
ATR Length: Controls the volatility measure used for zone sizing and tolerance logic
Shelf ATR Width: Sets the width of each auction shelf relative to ATR
Cluster Window: Defines how far back the script scans for repeated nearby pivots
Cluster ATR Tolerance: Determines how close pivots must be to count as the same structural cluster
Volume Confluence:
Volume Window: Sets the rolling price-volume study range
Volume Bins: Controls the granularity of the confluence distribution
Confluence Strength Threshold: Defines when the ribbon should represent strong price-volume overlap
Show Confluence Ribbon: Toggles the contextual ribbon around price
Display:
Show Dashboard: Enables the top-right structural summary
Color inputs: Allow independent styling for support, resistance, neutral, and panel colors
How to Use This Indicator
Step 1: Start With The Bias Row
The dashboard summarizes whether active support shelves outnumber resistance shelves, whether the market is balanced, and how strong the current ledger looks. This gives immediate context before focusing on individual zones.
Step 2: Identify The Strongest Active Shelf
Check the strongest zone reading and visually locate the shelf with the most emphasis. This is often the most useful structural reference when price approaches an auction boundary.
Step 3: Watch Acceptance Versus Failure
Acceptance means price is interacting with the zone without invalidating it. Failure means price has moved through the wrong side of the shelf. A high failure rate weakens the reliability of the current ledger.
Step 4: Use The Nearest ATR Distances
The dashboard shows the ATR distance to the nearest support and resistance shelves. That helps frame whether price is sitting directly on a structure reference or is trading between meaningful levels.
Step 5: Combine With Your Own Execution Model
Auction Structure Ledger is most useful as a context layer. It defines where defended structure exists. It does not decide entries or exits for you. Use the zones to frame reactions, continuation decisions, or risk placement inside your own process.
Indicator Limitations
Pivot-based structure is inherently delayed because the script waits for right-side confirmation before creating a shelf
A clustered pivot region can still fail immediately if broader market flow overwhelms the local auction structure
Rolling volume-confluence is context-dependent and can shift as the lookback window evolves
Zones are analytical references, not guarantees that support or resistance will hold on the next test
Originality Statement
Auction Structure Ledger is original in the way it turns clustered pivot defense and rolling volume-confluence into a persistent auction map. This is more than a standard support and resistance overlay:
It requires repeated pivot behavior before treating a level as meaningful structure
It combines cluster count and volume-confluence into a unified strength score for each shelf
It tracks acceptance and failure after creation so zones remain part of a living ledger rather than a static drawing layer
It presents the structure through a bias dashboard and confluence ribbon that helps translate zone behavior into usable chart context
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. Support and resistance shelves represent historical auction behavior, not guaranteed future turning points. Markets can accept, reject, or ignore any level without warning. Always use independent judgment and appropriate risk management.
-Made with passion by jackofalltrades
Indicator

Impulse Regime Engine [JOAT]Impulse Regime Engine
Introduction
Impulse Regime Engine is a hybrid breakout-and-trend indicator designed to detect when participation expands, when that expansion compresses into a tradeable box, and when price finally resolves that box with directional intent. It combines a volume regime engine with an RSI-projected price trend framework, creating a clean overlay built for timing impulsive releases without sacrificing directional context.
This indicator is especially useful for traders who like breakout structures but do not want to trade every range break blindly. The regime box defines the event. The projected trend framework defines the context.
Why This Indicator Exists
Participation Regime Classification: Distinguishes low-quality price movement from meaningful volume expansion
Lifecycle-Based Box Engine: Separates the setup into building, armed, and resolved states
Projected Trend Overlay: Maps RSI into price space for contextual trend direction
Strength-Based Candle Coloring: Visualizes conviction without overloading the chart
Active Risk Map: Adds optional stop and target staging after valid breaks
Core Components Explained
1. Volume Regime Engine
volRatio = shortVolMA / longVolMA
Volume is classified into Low, Normal, High, and Extreme states by comparing short-term participation to a longer-term baseline. Only elevated regimes are allowed to build a valid impulse box.
2. Regime Box Lifecycle
Building: While elevated volume persists, the box expands to contain the active burst
Armed: Once the burst cools, the box freezes and waits for release
Resolved: A confirmed close beyond the boundary triggers the breakout event and resets the cycle
The script now includes a cooldown between resolved boxes so repeated high-volume churn does not keep repainting fresh structures on every minor burst.
3. RSI Projection Framework
projected = priceLow + smoothedRsi * priceRange / 100.0
avgLine = ta.ema(projected, smoothLen)
Instead of reading RSI only as a sub-pane oscillator, the script converts RSI into projected price space. This produces a trend reference line directly on the chart.
4. Dynamic Tolerance Bands
tolerance = avgBody * toleranceMultiplier
marginUp = avgLine + tolerance
marginDn = avgLine - tolerance
Price above the upper band confirms bullish projected trend. Price below the lower band confirms bearish projected trend. This acts like a directional bias filter around the projection basis.
5. Breakout Risk Framework
When price resolves the armed box, the script can draw one stop and three profit levels using either ATR-derived or percentage-derived distance. The lines auto-expire so old trade maps do not crowd the chart.
Visual Elements
Regime Box: Semi-transparent box during build and armed phases
Projection Basis: Gold-accent projected trend line
Tolerance Bands: Bull and bear projection boundaries
Gradient Candles: Optional candle coloring by directional strength
Breakout Markers: Compact IRE triangles on confirmed release
TP/SL Lines: Optional risk staging while the active breakout remains valid
Dashboard: Volume regime, ratio, bias, box state, signal state, RSI, and strength
Input Parameters
Regime Engine:
Short / Long Volume MA
Low / Normal / High thresholds
Max build bars
Max armed bars
New box cooldown bars
Trend Projection:
RSI length and smoothing
Projection range bars
Projection EMA
Tolerance multiplier
Strength lookback
Risk Framework:
ATR period
ATR stop multiplier
TP1 / TP2 / TP3 risk-reward ratios
TP/SL maximum life
How to Use This Indicator
Step 1: Wait for elevated participation to build the impulse box.
Step 2: Let the box transition into the armed state.
Step 3: Read whether projected trend bias agrees with the likely breakout direction.
Step 4: Use confirmed breaks, not intrabar pokes, as the actual event trigger.
Step 5: Manage the trade against the active risk map or your own execution rules.
Best Practices
Use on instruments with reliable participation data
Prefer breakouts aligned with the projected trend state
Treat extreme volume bursts as high-opportunity but also high-volatility events
Use the cooldown to avoid overreacting in noisy compression cycles
Disable extra visuals if you want a cleaner execution chart
Indicator Limitations
Volume regime logic depends on the quality of the feed
Not every armed box will produce a sustained move
Projected RSI trend is a contextual guide, not a guarantee
Breakouts can fail or reverse quickly in low liquidity
Repeated tests of the same area reduce signal quality
Technical Implementation
Built in Pine Script v6 using:
Short-vs-long volume regime classification
Stateful box lifecycle logic
RSI-to-price projection
Body-based tolerance bands
Strength-gradient candle coloring
Optional ATR or percent risk mapping
Confirmed-bar breakout and trend-shift alerts
Originality Statement
This indicator is original in the way it combines regime participation, lifecycle breakout structure, and projected momentum context into one overlay. Its edge is not just detecting expansion, but framing when expansion is worth respecting.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Breakout trading involves risk, including false breaks and fast reversals. Always manage risk carefully and confirm signals with your own process.
-Made with passion by officialjackofalltrades
Indicator

Smart Money Matrix ICT + Volume Profile [Point algo]This indicator is a comprehensive institutional-grade toolkit designed to bridge the gap between Market Structure (SMC/ICT) and Volume Analysis (Volume Profile). By combining these two distinct analytical disciplines, the indicator provides a high-confluence "Matrix" view of the market, helping traders identify where high-conviction orders are resting and how price structure is reacting to them.
Core Functionality
The script is divided into three primary modules that work in synergy:
1. ICT & Smart Money Structure
This module tracks the "DNA" of market movement using high-precision pivot detection:
Market Structure Shift (MSS) & Break of Structure (BOS): Automatically identifies trend transitions and continuations.
Liquidity Sweeps: Highlights "stop hunts" where price wicks beyond previous swing points before reversing, signaling institutional absorption.
Dynamic Fair Value Gaps (FVG): Plots active FVGs and automatically removes them (mitigation) once price returns to fill the imbalance.
2. Advanced Volume Profile (VP)
While most volume profiles are static, this engine calculates volume distribution over a user-defined lookback period to find the "fairest" price levels:
Point of Control (POC): The price level with the highest traded volume, acting as a massive magnet or pivot.
Value Area (VAH/VAL): Highlights the zone where 70% (customizable) of the volume took place, distinguishing between value-driven moves and "excess" price action.
Bull/Bear Volume Split: The profile histogram is color-coded to show whether buyers or sellers were more aggressive at specific price nodes.
3. Master Intelligence Dashboard (HUD)
A real-time terminal in the corner of your chart that synthesizes all data points:
Market Bias: Real-time bullish/bearish/neutral status based on structural breaks.
Zone Positioning: Instantly tells you if price is above, below, or at value (POC).
Distance Metrics: Calculates the percentage distance to the POC for mean-reversion planning.
How to Use
High Confluence Entry: Look for a Liquidity Sweep or MSS that occurs exactly at the Value Area Low (VAL) or POC. This suggests institutions are defending a high-volume zone.
Targeting: Use the POC as a primary take-profit level during mean-reversion trades.
Imbalance Trading: Use the FVG boxes to identify "magnets" in the market. If price breaks structure (BOS) and leaves an FVG near the Value Area High, expect a retracement to that zone before the next leg.
Technical Breakdown
Pivots: Uses a customizable lookback length to detect swing points.
Volume Binning: Divides the price range into numBins to calculate volume density accurately across the lookback period.
Non-Repainting: All structural labels (MSS/BOS/Sweeps) and FVG boxes are calculated on closed bars to ensure signal integrity.
Transparency: All features, from FVG transparency to the number of Volume bins, are fully adjustable via the user settings menu.
Disclaimer: Trading involves significant risk. This tool is designed for technical analysis and educational purposes. It does not provide financial advice. Past performance of structural patterns is not indicative of future results. Indicator

Volume Displacement Engine [JOAT]Volume Displacement Engine
Introduction
Volume Displacement Engine (VDE) is an open-source volume regime oscillator that measures the ratio of short-term volume activity to long-term volume baseline, smooths it into a clean oscillator, and classifies current market activity into four distinct regimes: Low, Normal, High, and Extreme. The histogram and background tint update in real time with regime-specific coloring, reference lines mark each threshold boundary, and breakout signals fire when price closes beyond a rolling high or low during elevated volume regimes. A consolidation detection layer identifies consecutive low-volume bars as ranging periods. Trade outcomes from breakout signals are tracked for statistical win rate context, displayed in a structured dashboard.
The core problem VDE solves is the absence of context in standard volume indicators. Raw volume bars communicate size but not relevance — a large bar on a trending instrument in a high-liquidity session is very different from the same bar during off-hours. By expressing volume as a ratio to a rolling baseline and classifying it into regimes, VDE communicates whether current activity is institutionally significant (High or Extreme) or routine (Normal/Low). Price breakouts during High or Extreme volume are fundamentally different propositions than the same price moves on thin volume — VDE makes that distinction explicit and actionable.
Core Concepts
1. Volume Ratio Oscillator
The core calculation divides a short-term volume simple moving average by a long-term volume simple moving average, then applies an EMA smoothing pass to reduce bar-to-bar noise:
float rawRatio = volShort / math.max(volLong, 1.0)
float volRatio = ta.ema(rawRatio, i_smoothLen)
A ratio above 1.0 means recent volume is above the long-term average — activity is elevated. A ratio below 1.0 means recent volume is below the baseline — activity is depressed. The smoothing EMA gives the oscillator a cleaner shape while maintaining responsiveness to regime changes.
2. Four-Tier Regime Classification
Four threshold boundaries define the regime tiers. All thresholds are fully configurable:
Low: Ratio below the low threshold (default: 0.70) — below-average activity, reduced institutional participation
Normal: Ratio between low and normal ceiling (default: 0.70–1.20) — baseline activity
High: Ratio between normal ceiling and high threshold (default: 1.20–1.80) — elevated activity, potential institutional flow
Extreme: Ratio above the high threshold (default: 1.80+) — exceptional volume surge, likely significant price event
3. Breakout Signal Detection
Breakout signals are generated when price closes beyond the rolling highest high or lowest low of the configurable lookback window during a High or Extreme volume regime. This combines price displacement with volume confirmation, filtering out low-conviction breakouts that occur on thin volume:
bool bullBreak = barstate.isconfirmed and close > hh and (isHigh or isExtreme)
bool bearBreak = barstate.isconfirmed and close < ll and (isHigh or isExtreme)
4. Consolidation Detection
When multiple consecutive bars fall below the consolidation volume threshold, VDE identifies the period as a consolidation zone. The minimum bar count ensures short dips below the threshold are not misclassified as ranges. A dotted reference line marks consolidation periods in the oscillator pane, providing context for identifying compression before expansion moves.
5. Gradient Fill and Regime Tint
The oscillator histogram is colored to match the current regime. A fill between the histogram and the 1.0 baseline uses the regime color with transparency, providing a visual area representation of volume expansion or contraction. During High and Extreme regimes, a background tint activates in the oscillator pane to immediately draw attention to elevated activity periods without requiring inspection of the histogram height.
Features
Volume Ratio Oscillator: Short/long MA ratio smoothed by EMA — measures relative volume displacement from baseline
Four-Tier Regime Classification: Low, Normal, High, and Extreme regimes with independent color coding and configurable thresholds
Histogram Coloring: Bar color matches current regime — immediate visual reading of activity level
Regime Background Tint: High and Extreme volume periods highlighted with a pane background color for immediate attention
Threshold Reference Lines: Horizontal dashed lines at each regime boundary and at the 1.0 baseline for quick ratio reading
Gradient Regime Fill: Fill between oscillator and baseline communicates expansion/contraction area visually
Price Breakout Signals: Bull and bear breakout signals fire when price closes beyond rolling extremes during elevated volume regimes only
Consolidation Detection: Consecutive below-threshold volume bars identified as consolidation periods
Breakout Win Rate Tracking: Outcomes from breakout signals tracked against ATR-based TP/SL levels for statistical context
Non-Repainting: All signals gated on barstate.isconfirmed
Dashboard (Top Right): Current regime label, vol ratio value, consolidation status, and win rate breakdown for High and Extreme regime breakouts
Vol Momentum Columns: 3-bar rate-of-change of the vol ratio displayed as green/red column bars in the oscillator pane — shows whether volume activity is accelerating or decelerating relative to 3 bars prior
Rolling 20-Bar Vol Ratio Peak Reference Line: A purple reference line tracks the rolling 20-bar peak vol ratio — provides a visual ceiling for recent activity levels and highlights when the current ratio is approaching or exceeding recent extremes
Vol Ratio Delta in Dashboard: Vol ratio delta shown in real time in the dashboard with a directional arrow (▲/▼) — communicates whether volume pressure is building or fading on the current bar
CONS Label on Consolidation Start: A "CONS" label fires at the bar when a consolidation zone begins — marks the exact start of identified compression periods directly on the oscillator
Breakout Strength Labels: "BRK +X.XX" and "BRK -X.XX" labels appear at each breakout signal showing the vol ratio value at the moment of the break — communicates the institutional conviction level behind each breakout directly on the chart
Input Parameters
Volume Engine:
Short Vol Window: Short-term volume MA period (default: 10)
Long Vol Window: Long-term volume MA period (default: 40)
Ratio Smooth: EMA smoothing length for ratio (default: 3)
Low Vol Threshold: Ratio below which regime is Low (default: 0.70)
Normal Vol Ceiling: Ratio above which regime is High (default: 1.20)
High Vol Threshold: Ratio above which regime is Extreme (default: 1.80)
Consolidation:
Consolidation Window: Lookback window for consolidation range (default: 8)
Consolidation Vol Max: Maximum ratio to qualify as a consolidation bar (default: 0.80)
Min Consolidation Bars: Minimum consecutive qualifying bars to declare consolidation (default: 4)
Breakout Signal:
Breakout Lookback: Rolling high/low lookback window (default: 20)
ATR Length: Period for ATR calculation (default: 14)
ATR SL Multiplier: Stop loss distance (default: 1.5)
Reward:Risk Ratio: TP multiple (default: 3.0)
Show TP/SL Labels: Toggle label display in the oscillator pane (default: enabled)
How to Use This Indicator
Step 1: Read the Regime
Glance at the dashboard regime label and histogram color. A grey histogram (Low) indicates the market is in a quiet, low-participation period — avoid breakout strategies during these windows. A teal histogram (Normal) is baseline. An amber histogram (High) or red (Extreme) signals institutional-grade activity.
Step 2: Identify Consolidation Periods
When the dotted consolidation line is active in the oscillator pane, the market is in a low-volume compression phase. These periods typically precede expansion moves — the direction of the subsequent breakout, confirmed on volume, is a key signal.
Step 3: React to Breakout Signals
Breakout signals (triangles at the top/bottom of the oscillator pane) only fire during High or Extreme regimes. When a bull breakout label appears, price has closed above the rolling high on elevated volume — a confirmed displacement. The ATR TP/SL levels from that bar define the immediate risk/reward.
Step 4: Monitor the Ratio Trend
The oscillator line trending upward while above 1.0 indicates sustained institutional accumulation of activity — these sustained elevated periods often coincide with trending phases. A declining ratio from Extreme back toward Normal often signals activity exhaustion.
Indicator Limitations
Volume data quality varies significantly by instrument and data provider. On synthetic instruments, indices, or assets where volume reflects contract count rather than notional size, the ratio will not accurately represent true monetary volume displacement
TP/SL outcome tracking in the oscillator pane uses price data for TP/SL hit detection but displays in the volume pane — the label positions are approximate visual markers, not precise price levels on the main chart
The consolidation detector uses a fixed volume threshold. In trending markets where baseline volume rises over time, the historical consolidation threshold may not match current market conditions without recalibrating the threshold input
Breakout signals require both a price breakout and an elevated volume regime simultaneously. In markets with persistently high volume baselines (e.g., during major economic event periods), the Extreme threshold may trigger more frequently than on typical days — the thresholds may need upward adjustment on those instruments
The short/long MA window ratio is a relative measure. It compares recent volume to a historical baseline — it does not measure absolute volume in shares, contracts, or dollars
Originality Statement
VDE combines a smoothed relative volume ratio oscillator with a four-tier classification framework, consolidation detection, and volume-gated breakout signals in a unified indicator. This is original for the following reasons:
Expressing volume as a ratio of short-term to long-term moving average — rather than showing raw volume bars — normalizes the oscillator across instruments and timeframes, making the same threshold values meaningful on a liquid equity, a commodity, and a cryptocurrency without manual recalibration
The four-tier classification system with independently configurable thresholds and a gradient color scheme provides a richer regime reading than simple volume-above-average/below-average binary indicators
Volume-gated breakout detection explicitly requires the price breakout and the volume regime elevation to occur simultaneously on the same confirmed bar — preventing breakout signals from firing on thin-volume price moves that carry low institutional conviction
The consolidation detection layer adds a compression-identification capability within the volume pane, providing context for identifying low-activity ranging periods before the volume regime shifts to support a directional move
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 regime classification and breakout signals are statistical constructs — elevated volume at a price breakout does not guarantee continuation in the breakout direction. Win rate statistics are derived from historical bar data and do not predict future performance. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Segmented Pressure Bands [JOAT]Segmented Pressure Bands
Introduction
Segmented Pressure Bands (SPB) is an open-source, institutional-grade regression channel system that computes a linear best-fit line and deviation bands from scratch using manual Ordinary Least Squares (OLS) mathematics — no built-in regression functions used. The channel operates in distinct segments: it builds over a dynamic lookback window, freezes all parameters at a minimum length threshold, extrapolates forward using the frozen slope and intercept, and resets automatically when price closes beyond the outer deviation band. Gradient linefill layers between the basis and outer bands communicate channel pressure visually. A volume regime tint adjusts visual weight based on relative volume activity, and ATR-based TP/SL visualization is drawn on each breakout reset.
The core problem SPB solves is that standard regression channels repaint continuously as new bars add to the calculation window, making historical channel boundaries unreliable for reference. SPB's freeze-and-extrapolate architecture locks the regression parameters at a fixed point in time, then projects the channel forward. Price that deviates far enough from that projection triggers a segment reset — the channel is redrawn from the breakout point. This creates a clear, non-repainting record of each regression segment and the breakout that ended it.
Core Concepts
1. Manual OLS Linear Regression
The regression is computed using the standard Ordinary Least Squares normal equations applied to the source series over the active lookback window:
float denom = float(length) * sumX2 - sumX * sumX
slope := (float(length) * sumXY - sumX * sumY) / denom
intercept := (sumY - slope * sumX) / float(length)
RMSE (root mean square error) is calculated as the deviation of the source from the fitted line, providing the basis for band width. All accumulator variables (sumX, sumY, sumXY, sumX2) are computed in a per-bar loop, giving full control over the calculation window without relying on built-in functions that may change behavior across versions.
2. Channel Freeze and Extrapolation
When the lookback window reaches the minimum length threshold, the slope, intercept, and RMSE are locked into freeze variables. From that point forward, the x-coordinate passed to the regression formula is the number of bars elapsed since the freeze bar, allowing the channel to project forward without recalculating:
float xCur = -float(bar_index - freezeBar)
basis := frozenIcpt + frozenSlope * xCur
This extrapolation means the bands continue to move with the slope direction, but their relative spacing (the RMSE deviation) remains constant from the freeze point.
3. Segment Reset on Breakout
When a candle closes beyond the outer upper or lower band, the current segment is terminated. The channel redraws from the current bar using the fresh source data from that point forward. Old linefill objects are explicitly deleted before new ones are created to stay within Pine Script's object limits.
4. Gradient Linefills and Volume Regime Tint
N intermediate lines are drawn between the basis and each outer band, filled progressively with increasing transparency from the inner region to the outer edge. This creates a gradient pressure visualization — tighter fills near the basis signal equilibrium, wider fills near the outer band signal stretch. When the volume regime ratio (short-term MA / long-term MA) is elevated above the high threshold, line widths increase and fill opacity deepens to communicate high-activity conditions visually.
Features
Manual OLS Regression: Slope, intercept, and RMSE computed entirely from first principles — no built-in regression functions
Freeze and Extrapolate Architecture: Regression parameters locked at minimum length; channel projected forward along the locked slope
Automatic Segment Reset: Outer band close-beyond triggers segment restart — prior segment preserved as a historical record
RMSE Deviation Bands: Upper and lower bands placed at configurable RMSE multiples from the basis line
Gradient Linefill Layers: N intermediate lines fill the channel space with a visual pressure gradient — configurable step count
Volume Regime Tint: Relative volume ratio (short/long MA) adjusts visual weight — elevated volume deepens channel fills and thickens lines
ATR TP/SL Visualization: On each breakout reset, ATR-based take profit and stop loss boxes drawn from the breakout close
Channel Direction Color: Downward slope (bullish context — price above a declining regression) renders in teal; upward slope (bearish context) renders in rose
Non-Repainting Basis: Freeze architecture ensures historical segment boundaries do not move after they are drawn
Configurable Source: Basis line source is selectable (close, hl2, hlc3, ohlc4, etc.)
Dashboard (Top Right): Current slope, RMSE, volume regime label, band multiplier, and active segment bar count
Near-Band Warning Dots: Subtle circle markers appear on the chart when price is within 12% of either channel edge — early warning that price is approaching a band extreme before a breakout occurs
Distance-to-Nearest-Band in Dashboard: Current distance from price to the nearest band displayed as a percentage of channel width — provides a precise quantitative read of how stretched or compressed the current position is within the segment
Live Regression Slope in Dashboard: Live regression slope value shown in the dashboard — communicates the current directional angle of the frozen channel projection in real time
Breakout Win/Loss Tracking: Outcome of every breakout trade tracked against ATR-based TP/SL levels — total breakout trade count and cumulative win rate displayed in the dashboard
Expanded Dashboard (7 Rows): Dashboard expanded to 7 rows — now includes distance-to-band percentage, live slope, and breakout win rate alongside existing regime and segment data
Input Parameters
Regression Settings:
Source: Price input for regression calculation (default: close)
Lookback Length: Maximum bar window for OLS computation (default: 50)
Min Length to Freeze: Bar count at which slope/intercept are locked (default: 20)
Band Multiplier: RMSE multiple for outer band placement (default: 2.0)
Gradient Settings:
Gradient Steps: Number of intermediate fill lines between basis and outer band (default: 5)
Volume Regime:
Short Vol MA: Short-term volume moving average length (default: 10)
Long Vol MA: Long-term volume moving average length (default: 40)
High Vol Threshold: Vol ratio above which volume tint activates (default: 1.5)
ATR / Risk:
ATR Length: Period for ATR calculation (default: 14)
ATR SL Multiplier: Stop loss distance on breakout (default: 1.5)
Reward:Risk Ratio: Take profit multiple of stop distance (default: 3.0)
How to Use This Indicator
Step 1: Read the Channel Direction
A teal channel indicates a downward-sloping regression — price is above a declining trend line, suggesting bullish pressure within the distribution. A rose channel indicates an upward-sloping regression — price is below a rising channel ceiling, suggesting bearish pressure. The gradient fills communicate how far price has deviated from the basis within that segment.
Step 2: Trade Within the Channel
Price compressing toward the basis from an outer band (thin fill region narrowing) suggests mean reversion is underway. Price expanding toward the outer band (fills widening) suggests momentum continuation. The outer band itself acts as a stretch boundary — closes beyond it trigger a new segment.
Step 3: React to Breakout Resets
When a segment resets, the breakout bar is the reference point for directional bias. The ATR TP/SL boxes visualize the immediate risk/reward from that close. The new channel building from the breakout will establish the next directional context.
Step 4: Monitor Volume Context
Elevated volume regime (shown in dashboard) at a channel boundary gives more conviction to breakout or reversal signals. Low-volume channel touches carry less institutional weight.
Indicator Limitations
The OLS calculation runs a loop over the lookback window on every bar. On very long lookback lengths with high chart data density, this may increase script execution time — keep lookback below 200 for best performance
The freeze architecture means the channel projection can diverge significantly from price if the instrument trends strongly after the freeze point. Segment resets bring the channel back to current price, but wide outer bands may delay that reset on low-volatility instruments
Gradient linefills are subject to Pine Script's 50-linefill object limit. SPB manages this with explicit deletion on each segment reset. If the gradient steps setting is set very high (above 10), this limit may be approached in active markets
ATR TP/SL boxes on breakout are drawn from the breakout close. They do not adjust for gaps, overnight moves, or instrument-specific spread — manual adjustment of the ATR multiplier may be needed for highly volatile instruments
Volume regime calculation uses simple moving averages of volume. On instruments where volume data is synthetic or unavailable, the regime indicator will not reflect true market activity
Originality Statement
SPB implements a regression channel with a freeze-extrapolate-reset lifecycle that produces stable, non-repainting historical segment boundaries. This design is original for the following reasons:
Computing OLS slope, intercept, and RMSE from scratch using raw accumulator mathematics — rather than using ta.linreg() or similar built-ins — gives full control over the calculation window, source, and update behavior, and avoids implicit look-ahead that some built-in functions can introduce
The freeze-and-extrapolate architecture is distinct from standard rolling regression, where every new bar shifts the entire historical channel. Once frozen, SPB's channel parameters are immutable — historical band boundaries drawn in past segments are permanent reference levels
The gradient linefill layer system communicates statistical deviation pressure visually across the full channel width, rather than drawing only a basis and outer band with no information about the space between them
The integration of a volume regime tint directly into the regression channel visualization — adjusting visual weight based on relative volume — provides immediate context for whether current channel position is occurring during active or quiet market conditions
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. Regression channels and statistical deviation bands are mathematical constructs applied to historical data — they do not predict future price behavior. Breakout signals at band extremes do not guarantee continuation in any direction. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

Impulse Structure Zones [JOAT]Impulse Structure Zones
Introduction
Impulse Structure Zones (ISZ) is an open-source, institutional-grade zone engine that detects statistically significant price impulses using a Z-Score methodology, identifies the origin candle of each impulse as an order block, and grades each zone using a multi-factor wick rejection scoring system. Bullish and bearish zones are tracked in parallel arrays with full lifecycle management — creation, extension, mitigation detection, and rejection confirmation — all rendered as clean, non-repainting boxes on the chart with a mid-line bisecting each zone.
The core problem ISZ solves is the manual process of locating high-probability order block zones on a chart. Institutional price delivery frequently originates from specific candles where large orders were placed — the last opposing candle before a strong directional move. ISZ automates the detection of those moves, marks the origin candles, and then monitors each zone to fire a graded rejection signal when price returns to test the level. Grades A, B, and C communicate signal quality based on wick dominance, proportional wick depth, volume confirmation, and candle size relative to ATR.
Core Concepts
1. Z-Score Impulse Detection
Price change is measured bar-by-bar as a percentage move and normalized into a Z-Score against a rolling mean and standard deviation window:
float pxChg = (close - close ) / close * 100.0
float zscore = (pxChg - avgChg) / math.max(stdChg, 0.0001)
A bar qualifies as an impulse when the absolute Z-Score exceeds the user-defined threshold (default: 1.5). This isolates moves that are statistically unusual relative to recent activity — the same principle used in quantitative strategies to filter meaningful displacement from noise. All signals are gated on barstate.isconfirmed to prevent repainting.
2. Order Block Identification
When a bullish impulse is confirmed, ISZ scans back through recent bars to locate the last bearish candle (close < open) before the move. That candle's high and low become the order block zone boundaries. For bearish impulses, the last bullish candle is used. This matches the ICT definition of an order block — the final imbalance candle before institutional displacement.
3. Zone Lifecycle Management
Each zone is stored as a user-defined type (UDT) containing the box object, mid-line, price boundaries, birth bar, direction, mitigation flag, and rejection flag. Zones extend rightward on each bar until price closes beyond the zone (mitigation), at which point the box is frozen and marked as mitigated. A maximum zone count is enforced and oldest zones are trimmed to maintain chart performance.
4. A/B/C Rejection Grading
When price returns to test a live zone and a rejection candle forms, ISZ grades the signal quality using four independent scoring factors:
Wick dominance ratio: The rejection wick length divided by candle body size
Proportional wick depth: The wick as a percentage of the total candle range
Volume confirmation: Current bar volume compared to the 20-bar average
Candle size vs ATR: Whether the rejection candle is of meaningful size relative to recent volatility
A total score of 6+ = Grade A, 4-5 = Grade B, below 4 = Grade C. Grade is displayed as a label on the rejection bar.
Features
Z-Score Impulse Engine: Statistically filters price moves against a rolling mean/standard deviation window — configurable length and threshold
Automatic Order Block Detection: Last opposing candle before each confirmed impulse identified and stored as a zone
Bidirectional Zone Tracking: Bullish (demand) and bearish (supply) zones managed in separate arrays with independent colors
A/B/C Rejection Grading: Four-factor scoring system labels each zone test with a quality grade
Zone Mitigation Detection: Zones that are fully closed through are frozen and visually distinguished from active zones
Mid-Line Reference: Each zone box includes a dashed mid-line at the 50% level — institutional equilibrium reference
ATR Proximity Filter: Rejection signals only fire when price is within a configurable ATR multiple of the zone
Volume Confirmation: Optional volume filter requires above-average volume at rejection for grading
Non-Repainting: All signals gated on barstate.isconfirmed — no look-ahead bias
Zone History Limit: Oldest zones automatically removed when the maximum count is reached to maintain performance
Dashboard (Top Right): Active bull/bear zone counts, last signal grade, last impulse Z-Score, and ATR — updated on each bar
Live Z-Score Candle Gradient Coloring: Impulse candles colored teal or rose based on Z-Score strength — immediately identifies statistically significant displacement bars on the chart
ATR Band Plots Around EMA 750: Visual upper and lower extremity zones drawn as ATR-based bands around the 750-period EMA — communicates when price is at macro stretch relative to the long-term anchor
RR Trade Boxes on Rejection Signals: Auto-generated SL/TP boxes on every rejection signal — 1.5× ATR stop loss with 3:1 reward-to-risk ratio, extending forward from the signal bar
Session Win Rate Tracking: Asia, London, and NY win rates tracked independently for rejection trades — outcome recorded against each signal's ATR-based TP/SL levels
Best Session Highlight: Dashboard automatically identifies and highlights the highest win-rate session across all three windows
Expanded Dashboard (9 Rows): Dashboard expanded to 9 rows — now includes live Z-Score reading, total impulse count, and full session win rate breakdown alongside existing zone and signal data
Input Parameters
Z-Score Settings:
Z-Score Length: Rolling window for mean and standard deviation calculation (default: 20)
Z-Score Threshold: Minimum absolute Z-Score required to qualify as an impulse (default: 1.5)
Zone Settings:
Max Active Zones: Maximum number of zones tracked simultaneously per direction (default: 8)
Bull Zone Color / Bear Zone Color: Independent colors per direction
Rejection Settings:
ATR Proximity (multiplier): How close price must be to a zone to trigger rejection check (default: 0.5)
ATR Length: Period for ATR calculation (default: 14)
Require Volume Confirmation: Toggle — above-average volume required for Grade A
How to Use This Indicator
Step 1: Identify Active Zones
Active bullish zones (demand) appear below price in teal. Active bearish zones (supply) appear above price in rose. Mitigated zones are visually dimmed. Focus on zones that have not yet been tested — these are the most relevant levels for future price interaction.
Step 2: Wait for Price to Return to the Zone
ISZ does not generate entry signals on impulse creation. It monitors active zones for return tests. When price pulls back into a zone, watch for the rejection grading label to appear.
Step 3: Grade the Signal
An A-grade rejection at a fresh, unmitigated zone is the highest-quality setup. B-grade is acceptable with additional confluence. C-grade rejections at already-tested zones carry the least weight. Use the grade in combination with your own bias and higher-timeframe analysis.
Step 4: Monitor the Dashboard
The dashboard shows active zone counts, last Z-Score, last grade, and ATR. A high Z-Score at impulse creation indicates an unusually strong move — those zones tend to attract more significant future tests.
Indicator Limitations
Z-Score impulse detection requires sufficient historical bars (at least 2× the Z-Score length) to produce accurate statistics — on very short chart histories the first few zones may form under unstable conditions
Order block detection scans back a fixed number of bars (configurable). In fast-moving markets where multiple candles are the same color, the scan may place the zone further back than an analyst would manually
Rejection grading uses volume data. On instruments with synthetic or unreliable volume (e.g., some CFDs, synthetic indices), the volume scoring component will not reflect true market activity
Zones do not account for gap fills, overnight moves, or after-hours sessions — a zone that appears unmitigated on the chart may have been effectively traded through outside of regular hours depending on the instrument
The A/B/C grading is a quantitative scoring system, not a certainty measure. Grade A signals do not guarantee price continuation in the expected direction
Originality Statement
ISZ combines Z-Score statistical impulse detection with origin-candle order block identification and a multi-factor rejection grading system in a single, self-contained indicator. This combination is original for the following reasons:
The use of a Z-Score normalized against a rolling mean and standard deviation — rather than a fixed pip or percentage threshold — makes impulse detection adaptive to current market volatility. The same threshold parameter behaves consistently across instruments and timeframes without requiring manual recalibration
The A/B/C grading system applies four independent quantitative factors (wick dominance, wick proportion, volume, candle size) simultaneously to classify signal quality at the point of zone interaction — rather than simply marking every return to a zone as equal
Zone lifecycle management (create → extend → mitigate → reject → trim) is handled automatically through UDT arrays with in-place field mutation, eliminating the need for manual zone maintenance or re-drawing
The combination of impulse detection, zone creation, and rejection grading in a single engine — with a unified dashboard — removes the need to layer multiple indicators to accomplish the same workflow
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. Order block zones are historical reference levels and do not guarantee that price will react at those levels. A/B/C grades reflect quantitative scoring and do not predict future price movement. Always apply proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

FT - Volume IndicatorFT - VOLUME INDICATOR
A multi-condition volume and range analysis tool that highlights six distinct market behaviors by painting vertical background columns behind qualifying candles. Designed to help traders visually identify institutional activity, absorption zones, breakouts, and dead zones at a glance — without cluttering the chart with arrows or labels.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
WHAT MAKES IT DIFFERENT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Most volume indicators show only one dimension: "high volume" or "low volume". This indicator cross-references volume with candle range, producing six distinct contextual signals instead of one. The combination reveals the INTENT behind the volume, not just its magnitude.
For example, a candle can have abnormally high volume but a tiny range — that is classic absorption (large orders being absorbed without moving price). A different candle can have high volume AND expanded range — that is impulsive directional movement. These two behaviors look identical to a basic volume indicator but mean completely opposite things.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
THE SIX CONDITIONS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1) HIGH VOLUME
Volume exceeds the N-period SMA multiplied by a configurable factor.
Marks candles with abnormal trading activity without range context.
2) HIGH VOLUME + SMALL CANDLE (ABSORPTION)
High volume combined with a range SMALLER than the average range.
Indicates strong orders being absorbed at a level. Classic signal at
supports and resistances where institutional players defend price.
3) HIGH VOLUME + LARGE CANDLE (IMPULSE)
High volume combined with a range LARGER than the average range.
Indicates aggressive directional movement: breakouts, news reactions,
and trend initiations.
4) LOW VOLUME
Volume well below the SMA divided by a configurable factor.
Identifies periods of reduced participation and consolidation.
5) LOW VOLUME + LARGE CANDLE (WEAK MOVE)
Low volume combined with a large range.
Warning signal: price is moving without real participation. Often
precedes reversals or indicates manipulated/thin-liquidity moves.
6) LOW VOLUME + SMALL CANDLE (DEAD ZONE)
Low volume combined with a small range.
Identifies dead zones, lunch-hour consolidations, and low-liquidity
periods where trading is generally avoided.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
CALCULATION METHOD
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Volume reference: Simple Moving Average of volume over N bars (configurable per condition).
- Range reference: Simple Moving Average of (High - Low) over N bars (configurable per condition).
- High volume trigger: volume >= avgVolume × multiplier
- Low volume trigger: volume <= avgVolume ÷ divisor
- Small candle trigger: range <= avgRange × maxRangeFactor (default 0.8)
- Large candle trigger: range >= avgRange × minRangeFactor (default 3.0)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
PRIORITY LOGIC
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
When a candle satisfies multiple conditions simultaneously, the most
specific one prevails. The priority order is:
3 (High Vol + Large) > 2 (High Vol + Small) > 1 (High Vol) >
5 (Low Vol + Large) > 6 (Low Vol + Small) > 4 (Low Vol)
This prevents a breakout candle (condition 3) from being painted as just
"high volume" (condition 1), preserving the most meaningful interpretation.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
FEATURES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- Each of the 6 conditions can be independently enabled/disabled.
- Fully customizable colors for each condition.
- Adjustable parameters per condition: SMA length, multipliers,
divisors, and range thresholds — allowing fine-tuning for any asset
or timeframe.
- Time filter with configurable GMT offset: restricts painting to
a specific trading session (e.g., US session, Asian session).
- Vertical background columns instead of candle painting: keeps
candlestick colors intact for reading price action clearly while still
highlighting the volume context.
- Six independent alerts (one per condition) for real-time notifications.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE IT
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- SCALPING: Watch for absorption (condition 2) at key supports/resistances
to anticipate reversals. A small candle with large volume at a level
often signals that larger players are positioning before the move.
- BREAKOUT TRADING: Only consider breakouts confirmed by condition 3
(high volume + large range). Breakouts without volume expansion are
statistically prone to fail.
- TREND CONTINUATION: Multiple consecutive condition 3 candles in the
same direction confirm institutional alignment.
- FADE / REVERSAL: Condition 5 (low volume + large range) warns of
unsustainable moves. Combined with exhaustion signals from other tools,
it can signal reversal opportunities.
- FILTERING: Condition 6 (dead zones) helps avoid taking trades during
unproductive periods. Some traders pause strategies entirely when
condition 6 dominates the recent price action.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
RECOMMENDED CONFIGURATION
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Default values are calibrated for active intraday assets (NQ futures,
BTC, major forex pairs on 1m-15m timeframes). For less volatile assets
or higher timeframes, consider:
- Lowering the HIGH VOLUME multipliers (3 → 2).
- Increasing SMA lengths for smoother references.
- Adjusting range thresholds based on ATR of the specific asset.
All parameters are fully configurable to adapt to any asset and timeframe.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
NOTES
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
- This indicator is a context/confluence tool, not a standalone trading
system. It identifies market behaviors but does not generate
buy/sell signals on its own.
- Works best when combined with structural analysis (support/resistance,
trendlines, or tools like VWAP and EMAs).
- Volume data quality depends on the data provider — some brokers
report volume differently (tick volume vs. real volume). Indicator

Vortex Volume Spectrum [JOAT]Vortex Volume Spectrum
Overview
Vortex Volume Spectrum is a dynamic, proportional volume profile indicator built from scratch in Pine Script v6. It analyses how traded volume distributes across price levels within any configurable lookback window, identifies the Point of Control (POC) — the price level with the highest volume concentration — and draws the Value Area (the 70% of total volume nearest the POC) as a live-updating profile rendered directly on the chart using the box drawing API. Unlike fixed-range volume profiles offered by some platforms, this engine recalculates on every bar and is fully parametric.
Why Build a Volume Profile in Pine?
Volume profile is one of the most powerful market microstructure tools available, revealing where the majority of market participants transacted. Most PulseWire users rely on the built-in session profile which cannot be customised, scripted, or combined with other logic. Vortex Volume Spectrum gives Pine authors and traders a fully transparent, open-source volume distribution engine they can understand, modify, and build upon — with the visual quality of a professional charting suite.
Distribution Engine
The profile is built with a configurable number of price bins (default 30) spanning the high-to-low range of the lookback window. For each bin, the engine calculates the proportional contribution of each historical bar's volume using an overlap method:
Each bar contributes volume proportionally to the fraction of its high-to-low range that overlaps with each bin. A bar spanning multiple bins splits its volume across all overlapping bins by the fraction of overlap — preventing the unrealistic "winner takes all" binning used by simpler implementations.
This overlap-proportional distribution produces a smooth, accurate volume histogram that closely mirrors the actual traded price distribution.
POC Detection
After computing the full distribution array, the engine scans for the bin with the highest accumulated volume. This bin's midpoint is the Point of Control — the price level where the most volume traded during the lookback window. The POC is highlighted as the brightest horizontal line in the profile.
Value Area (70%) Calculation
Starting from the POC bin, the Value Area algorithm expands outward — one bin up and one bin down in alternating steps — absorbing bins into the Value Area until their cumulative volume equals or exceeds 70% of total profile volume. The result is a price range (Value Area High and Value Area Low) that contains the bulk of institutional activity. This range is where the majority of price acceptance occurred and serves as a reference for mean-reversion and breakout trading contexts.
Live Rendering at barstate.islast
The entire profile is rebuilt from scratch on each bar's final tick using the delete-before-create pattern: all existing profile boxes are deleted before redrawing. This ensures that the profile is always current without leaving ghost boxes on the chart. Each bin is drawn as a horizontal box scaled to its volume proportion relative to the maximum bin, using a gradient colour from muted (low volume) to bright teal (near-POC), with the POC bin rendered in gold.
Profile Elements
- Volume bins: Horizontal boxes scaled by proportional volume, coloured by intensity
- POC line: Gold horizontal line at the maximum-volume price level
- Value Area High / Low lines: Teal dashed lines marking the 70% value area boundary
- Volume Delta overlay: For each bar, buy volume (close > open) and sell volume (close < open) are tracked separately and displayed as a delta bar, showing the directional pressure within the profile window
Inputs Reference
- Profile Length (100) — number of bars included in the lookback window
- Number of Bins (30) — vertical resolution of the price distribution
- Profile Width (40 bars) — horizontal width of the rendered boxes
- Show POC Line — toggles the gold POC highlight
- Show Value Area — toggles the 70% Value Area High/Low lines
- Show Volume Delta — toggles the delta bar visualisation
- Profile Offset (0) — shifts the profile left or right from the current bar
- Theme: Dark / Light / Auto
How to Use
1. Add to any chart. The profile automatically spans the last N bars (configurable lookback).
2. The POC (gold line) is the most significant reference level — price tends to be attracted back to the POC when trading away from it.
3. The Value Area High and Low act as potential support/resistance zones. Breakouts above VAH with volume expansion are bullish continuation signals; breakouts below VAL signal bearish continuation.
4. If price is trading within the Value Area, expect range behaviour with mean reversion toward the POC.
5. Volume Delta bars help identify whether the current session's participation is predominantly buying or selling within the profiled window.
Non-Repainting Design
The profile always renders at barstate.islast using only confirmed historical bar data. No forward-looking data is accessed. The POC and Value Area lines represent historical distribution within the defined lookback and do not shift on historical bars.
Limitations
- Volume profiles are most meaningful on instruments with genuine, transparent volume (equities, futures, crypto on-chain exchanges). Forex tick volume is a proxy and may produce less reliable distribution shapes.
- Increasing the number of bins significantly increases the number of box objects drawn, approaching PulseWire's per-indicator box limit on very long lookbacks.
- The profile always represents the most recent N bars — it does not anchor to specific sessions or swing levels. Session-anchored profiles require different logic.
- Very low-volume bins at the extremes are accurate but may appear invisible at small chart scales.
Disclaimer
This indicator is provided for educational and informational purposes only. Volume profile is a descriptive market microstructure tool and does not predict future price movement. Always use proper risk management in conjunction with your own analysis.
Made with passion by officialjackofalltrades
Indicator

Strata Volume Contour [JOAT]Strata Volume Contour
Introduction
Strata Volume Contour (SVC) is an open-source dynamic volume profile engine that divides a configurable lookback window into 25 equidistant price bins and accumulates the total traded volume within each bin. The result is a real-time horizontal histogram drawn to the right of the current bar, showing exactly where the market has spent the most volume over the selected period. The Point of Control (POC) — the highest-volume bin — is highlighted as the dominant fair-value level. The Value Area — the range of bins containing 70% of total volume — is shaded to mark the institutional accumulation zone.
The problem SVC solves is the inability of time-based charts to show volume distribution across price levels. Standard volume bars show how much was traded each period, but not at which prices. Volume profile reveals the price levels that attracted the most participation — these are the levels where institutional orders were concentrated, making them the most meaningful support and resistance references available. SVC brings this institutional-grade analysis directly to the chart without requiring specialized volume profile software.
Core Concepts
1. Price Range Binning
The indicator determines the highest high and lowest low across the full lookback window, then divides this range into 25 equal-width bins. Each bin represents a price zone:
float rangeHi = ta.highest(high, math.min(bar_index + 1, lookback))
float rangeLo = ta.lowest( low, math.min(bar_index + 1, lookback))
float binStep = (rangeHi - rangeLo) / BINS
A zero-range guard (binStep > 0) prevents division errors on flat or illiquid instruments. With 25 bins, the histogram provides enough granularity to identify structural features while remaining visually clean.
2. Volume Accumulation (Performance-Gated)
Volume accumulation runs exclusively on the last bar of the chart (barstate.islast). This is a critical design decision: running the O(bins x lookback) double-loop on every bar within the lookback window would create an O(bars x bins x lookback) computational cost that exceeds PulseWire's execution limits on longer charts. By gating to the last bar, the full recalculation costs O(bins x lookback) exactly once per chart update:
if barstate.islast
if binStep > 0.0
for i = 0 to BINS - 1
float binLevel = rangeLo + binStep * i
float binVol = 0.0
for k = 0 to lookback - 1
if math.abs(close - binLevel) <= binStep
binVol += nz(volume , 0.0)
array.set(volBins, i, binVol)
Each bar within the lookback is assigned to the nearest bin based on its closing price.
3. Point of Control (POC)
The POC is the bin with the highest accumulated volume. It represents the price level where the most trading activity occurred over the lookback period. Markets tend to use the POC as a magnet — price is attracted to it during consolidation and uses it as a reference when transitioning between ranges. The POC is rendered with a distinct highlight color (default orange) to make it immediately identifiable.
4. Value Area Calculation (70% Rule)
The Value Area is determined by a symmetric expansion algorithm. Starting from the POC, the algorithm expands outward one bin at a time, always adding the bin (above or below) that contributes the most volume, until the accumulated volume within the expanding range reaches 70% of total volume:
while vaVol < vaTarget and (vaLow > 0 or vaHigh < BINS - 1)
float addUp = vaHigh < BINS - 1 ? array.get(volBins, vaHigh + 1) : 0.0
float addDn = vaLow > 0 ? array.get(volBins, vaLow - 1) : 0.0
if addUp >= addDn and vaHigh < BINS - 1
vaHigh += 1
vaVol += addUp
else if vaLow > 0
vaLow -= 1
vaVol += addDn
The Value Area High (VAH) and Value Area Low (VAL) define the institutional accumulation zone. Price outside the value area represents a premium (above) or discount (below) relative to the lookback period's fair value.
5. Horizontal Histogram Visualization
Each bin is drawn as a horizontal box extending rightward from the current bar. The box width is proportional to the bin's volume relative to the POC volume — the POC spans the maximum width (50 bars right), and all other bins scale proportionally. Volume amounts are labeled on each bar.
Features
25-Bin Volume Profile Histogram: Full horizontal volume distribution rendered to the right of price with proportional bar widths and volume labels
Point of Control (POC): Highest-volume bin highlighted in a distinct color (default orange) with automatic detection each bar update
Value Area (VAH / VAL): The 70%-volume range shaded in a distinct color, with Value Area High and Low explicitly tracked and displayed in the dashboard
Gradient Bin Coloring: Each non-POC, non-VA bin is colored on a gradient from low volume (nearly transparent) to high volume (full opacity), creating a visual density map
Static Level Plots: All 25 bin levels are plotted as horizontal lines over the lookback window, providing a persistent price level grid even without the boxes visible
Price vs POC Context: The dashboard reports whether price is currently Above POC, Below POC, or At POC
8-Row Dashboard (Top Right): POC price, VA High, VA Low, price vs POC relationship, total volume, lookback period, and version
Watermark: JackOfAllTrades signature at chart center-bottom
Input Parameters
Profile Settings:
Lookback Period: Number of bars to include in the volume accumulation (default: 200, range: 50-500)
Visual Settings:
Show Volume Bins: Toggle the horizontal histogram boxes
Bin Color: Base color for the bin gradient (default: blue)
Bin Width: Border width of histogram boxes (default: 1, range: 0-5)
Highlight POC: Toggle POC highlighting
POC Color: Color for the highest-volume bin (default: orange)
Show Value Area: Toggle the 70%-volume range shading
VA High Color: Color for the Value Area High reference
VA Low Color: Color for the Value Area Low reference
Theme: Auto, Dark, or Light
How to Use This Indicator
Step 1: Identify the Point of Control
The POC is the most important level on the profile. It is the price the market spent the most time trading at — the ultimate fair-value anchor. Price below the POC is at a discount; above is at a premium. Trading setups at the POC during retest often exhibit tight risk/reward.
Step 2: Use Value Area Boundaries for Support and Resistance
The Value Area High and Low are the primary structural boundaries. Price often oscillates within the value area and struggles when attempting to leave it. A close outside the value area with high volume often signals the beginning of a new directional move.
Step 3: Adjust Lookback to Your Trading Style
Shorter lookbacks (50-100 bars) produce a profile of recent price structure, relevant for intraday traders. Longer lookbacks (300-500 bars) produce a macro structural view, relevant for swing traders. The POC and value area boundaries shift as the lookback changes.
Step 4: Watch Price Return to the POC
After price moves away from the POC, it frequently returns to it during low-volume periods. When price is far from the POC and trending, the POC can serve as a magnet target for reversion. When price is oscillating around the POC, it reflects a balanced, two-sided auction.
Indicator Limitations
The profile recalculates only on barstate.islast — it reflects the state at the last confirmed bar. During real-time market hours, the profile is not updating tick-by-tick; it updates each time a bar closes
The volume accumulation assigns each bar to a bin based on closing price, not the intrabar high-low range. This is a simplification — a professional volume profile distributes volume across all prices touched during the bar. The close-based method is computationally feasible within Pine Script's constraints
The 25-bin resolution is fixed. Very large price ranges (e.g., a lookback spanning a major crash) may produce bins too wide to be structurally meaningful. Users should adjust the lookback to keep the range within a reasonable structural period
Instruments with no volume data (some indices, spot forex) will show all zero bins and the profile will not render meaningfully
The histogram boxes are drawn to the right of the current bar. On instruments with extended right-side padding disabled, the boxes may be partially hidden off-chart
Originality Statement
SVC is original in its approach to making volume profile accessible within Pine Script's performance constraints. This indicator is published because:
The barstate.islast performance gate is the key design innovation — it collapses what would otherwise be an O(bars x bins x lookback) computation into a single O(bins x lookback) pass, making a 25-bin volume profile with 500-bar lookback feasible within PulseWire's execution limits
The 70% Value Area algorithm uses a symmetric expansion approach (always adding the larger of the next bin up or down) that correctly implements the standard Volume Profile Value Area methodology
The gradient bin coloring uses color.from_gradient() against the POC volume as the maximum reference, making the visual density map adaptive to the actual volume distribution rather than a fixed scale
The Price vs POC contextual label in the dashboard provides an immediately actionable market context read without requiring the user to visually judge their position relative to the histogram
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 profile levels are based on historical volume distribution and represent areas of past interest, not guarantees of future price behavior. The Point of Control and Value Area boundaries can and do shift significantly as the lookback window evolves. Always use proper risk management. The author is not responsible for any trading losses resulting from the use of this indicator.
-Made with passion by jackofalltrades
Indicator

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

Volumetric Structure Engine [JOAT]Volumetric Structure Engine
Introduction
The Volumetric Structure Engine is an institutional market structure tracker that fuses swing-point classification with real-time buy/sell volume delta analysis. Every confirmed swing high and swing low is measured not only by price, but by the net volume composition of the leg that produced it — revealing whether a structural move was driven by genuine institutional buying or selling, or whether it was a low-conviction, thin-volume probe. The indicator classifies market structure as HH/HL (bullish) or LH/LL (bearish), detects Break of Structure (BOS) and Change of Character (ChoCH) events on bar close, and renders each swing zone with a color gradient that reflects the underlying volume delta of that leg.
The core problem this solves: most market structure tools draw lines or arrows at swing points but say nothing about the quality of that swing. A break of structure on rising volume is categorically different from one on declining volume — the first signals institutional participation, the second suggests a liquidity grab. VSE quantifies that difference on every bar.
Core Concepts
1. Non-Repainting Swing Detection
Swings are confirmed using a lookback comparison pattern that resolves only on bar close:
float H = ta.highest(high, i_len)
float L = ta.lowest(low, i_len)
bool new_sh = high == H and high < H
bool new_sl = low == L and low > L
A swing high at bar N-1 is confirmed when bar N closes lower, meaning the prior bar's high was the highest in the lookback window. This approach never repaints because it always references the closed bar to the left.
2. Volume Delta Accumulation Per Leg
Between each confirmed swing, running buy and sell volume totals accumulate. On each bar, if close >= open the bar's volume is classified as buy-side; otherwise it is sell-side. When a new swing is detected, the accumulated totals are saved to that swing node, and the counters reset for the next leg:
if new_sh or new_sl
run_buy := 0.0
run_sell := 0.0
if close >= open
run_buy += volume
else
run_sell += volume
The delta percentage (buy minus sell divided by total volume) determines the color and transparency of each swing zone box. A leg with 80% buy delta renders as a vivid bull green; a leg with 20% buy delta renders as a vivid bear red. Neutral legs render in the neutral color.
3. BOS and ChoCH Detection
Break of Structure fires when confirmed price closes through the most recent confirmed swing extreme in the opposite direction. Change of Character fires when the first break occurs against the established trend — the earliest signal that the dominant structure may be shifting. Both signals are barstate.isconfirmed, preventing any lookahead.
4. Structure Cloud
A fill between the last confirmed swing high and swing low creates a visual structure range that updates dynamically. The cloud color matches the current trend direction and serves as an at-a-glance bias indicator for the session.
Features
Swing Zone Boxes: ATR-scaled zone boxes at every confirmed swing, colored by the net buy/sell delta of the producing leg
Volume Delta Gradient: Zone colors range from deep bull green (high buy delta) to deep bear red (high sell delta), with transparency encoding conviction
BOS Lines: Dashed horizontal lines drawn at the level where a Break of Structure closes, with text label
ChoCH Highlight: Change of Character events highlighted with a distinct yellow-amber color to distinguish them from continuation BOS signals
Structure Connection Lines: Lines connecting consecutive swing nodes, colored by the delta of each leg
Structure Cloud: Gradient fill between the last swing high and low showing current structural range
Candle Coloring: Optional candle tinting by current trend direction
9-Row Dashboard: Displays trend bias, last swing high/low price levels, structure range percentage, BOS bull/bear counts, ChoCH count, last leg delta percentage, and total swing node count
Alerts: BOS bullish, BOS bearish, ChoCH bullish, ChoCH bearish
Input Parameters
Structure Detection:
Swing Length: Lookback bars for swing high/low detection (default: 20, range: 5-200). Higher values identify fewer, stronger structural swings. Lower values are more reactive.
Show BOS Lines: Toggle BOS line rendering (default: on)
Show ChoCH: Toggle Change of Character highlighting (default: on)
Structure Cloud: Toggle the fill between swing high and low (default: on)
Visualization:
Bullish / Bearish / Neutral / ChoCH colors: Fully customizable
Zone Transparency: Control the base transparency of swing zone boxes (default: 78)
Color Candles: Optional candle tinting by structural trend (default: off)
Dashboard:
Position: Top Right, Top Left, Bottom Right, Bottom Left (default: Top Right)
How to Use This Indicator
Step 1: Read the Current Structure
The dashboard shows the current trend bias (BULLISH / BEARISH / NEUTRAL), the last confirmed swing high and low prices, and the structural range as a percentage. This gives you the directional context at a glance.
Step 2: Interpret Zone Colors
Zones colored in vivid green (high buy delta) represent legs driven by institutional buying. Zones colored in vivid red (high sell delta) represent institutional selling pressure. Faded or gray zones represent low-conviction legs — useful for identifying weak structure that is more likely to be swept.
Step 3: Trade BOS and ChoCH Events
A BOS in the direction of the existing trend is a continuation signal. A ChoCH (against the trend) is a structural shift signal and often marks the beginning of a reversal. Volume delta on the breaking leg adds conviction: a BOS on a high-buy-delta leg is more reliable than one on a low-delta leg.
Step 4: Use Swing Zones as S/R
Each swing zone box represents a price area where a structural pivot occurred. Institutional order flow often returns to these levels. High-delta zones in particular tend to act as meaningful support or resistance.
Originality Statement
This indicator is original in its combination of confirmed non-repainting swing structure with per-leg volume delta measurement. While market structure tools and volume analysis tools each exist independently, this indicator is justified because:
Volume delta is computed per structural leg — not per candle and not as a global indicator — creating a direct mapping between market structure quality and institutional participation
The swing confirmation method using the lookback comparison pattern eliminates repainting while maintaining responsiveness to genuine structural changes
Zone color encoding with delta-driven gradient creates an immediate visual hierarchy — strong zones versus weak zones — without requiring separate panels or indicators
BOS and ChoCH detection with volume delta context provides a more complete signal than either alone
Limitations
The buy/sell volume classification (close >= open = buy) is an approximation. True tick-level direction is not available in Pine Script. On very short timeframes where volume is sparse, classification may be imprecise
Swing length selection significantly affects structure quality. Too short produces noise; too long misses intermediate structure. Users should calibrate to their timeframe and instrument
BOS and ChoCH are confirmed on bar close, so they are identified one bar after the actual breakout candle closes. This is a deliberate trade-off for accuracy over speed
The indicator does not predict direction — it classifies the current structural state. A bullish structure can break down without warning
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice or a recommendation to buy or sell any instrument. All trading involves risk of loss. Past structural patterns do not guarantee future results. Always use proper risk management.
-Made with passion by jackofalltrades
Indicator

Confluence Signal Engine [JOAT]Confluence Signal Engine
Introduction
Most traders encounter a common trap: stacking multiple indicators that all claim to measure something different, yet each one is ultimately derived from the same price data. The result is not confirmation — it is correlated noise presented as agreement. The Confluence Signal Engine was built to address this directly.
This indicator assigns a composite score to the current market condition by evaluating six deliberately chosen dimensions of market behavior. Each dimension is designed to measure a fundamentally different property of price action. When multiple dimensions agree, that agreement carries more weight than any single indicator firing alone. The result is a single, normalised score between -1 and +1, accompanied by a visual confidence meter and a score breakdown table so you can see exactly what is driving the signal.
This is an overlay indicator — it plots directly on the price chart.
---
Core Concepts
The Six Scoring Dimensions
Each dimension returns one of three values: +1 (bullish contribution), -1 (bearish contribution), or 0 (neutral / insufficient data). These are summed and divided by 6.0 to produce the composite score.
D1 — EMA Alignment (Trend Direction)
Compares a fast EMA to a slow EMA. If the fast EMA is above the slow EMA, the trend dimension scores +1. If below, it scores -1. This is the structural backbone — a baseline read on which side of the trend the price currently sits.
D2 — Price Z-Score (Statistical Deviation)
Calculates how many standard deviations the current close is from a baseline EMA. A Z-score below the negative threshold suggests the price has deviated far enough below the mean to be considered statistically stretched — a potential reversion candidate, scored +1. A Z-score above the positive threshold scores -1. This dimension does not measure trend; it measures relative price position against recent statistical norms.
D3 — Volume Pressure (Demand Validation)
Uses a Volume RSI (RSI applied to volume over 8 bars, divided by 50) as a proxy for whether volume activity is elevated. When volume pressure exceeds the threshold, the candle's direction (close vs. open) determines the score: a bullish candle in high-volume conditions scores +1; a bearish candle scores -1. When volume is not elevated, this dimension returns 0, contributing nothing. This prevents volume noise on low-activity bars from polluting the signal.
D4 — RSI Momentum (Momentum Quality)
Evaluates both the current RSI value and its slope. A rising RSI above 50 scores +1 — confirming that momentum is positive and strengthening. A falling RSI below 50 scores -1. This differs from a simple RSI threshold because the slope requirement means momentum must be actively moving in the scored direction, not merely sitting above or below a level.
D5 — Structural Position (Range Placement)
Compares the current close to the midpoint of the highest high and lowest low over a configurable lookback period. Closing above the midpoint scores +1; closing below scores -1. This is a simple but useful structural context: is price holding in the upper or lower half of its recent range?
D6 — Volatility Context (Environment Quality)
Divides a fast ATR by a slow ATR to produce a volatility ratio. A low ratio (calm, contracting volatility) scores +1 — historically a more favorable environment for trend continuation. A high ratio (expanding, elevated volatility) scores -1, flagging that the current environment may be erratic. A ratio between the two thresholds is neutral. This dimension does not predict price direction; it assesses whether current conditions are conducive to acting on the other signals.
---
Composite Score and Confidence
compositeScore = (D1 + D2 + D3 + D4 + D5 + D6) / 6.0
confidence = math.abs(compositeScore) * 100
The composite score ranges from -1.0 (all six dimensions bearish) to +1.0 (all six dimensions bullish). The confidence value is simply the absolute magnitude — a score of ±1.0 represents 100% agreement across all dimensions, while a score near 0 represents disagreement or neutrality.
Signal thresholds:
Score > buy threshold (default 0.3) → bullish signal
Score < sell threshold (default -0.3) → bearish signal
Score > high-confidence threshold (default ±0.6) → high-confidence signal
Signals are gated by barstate.isconfirmed — they only fire on fully closed bars, preventing intra-bar repainting. State tracking also prevents the same directional signal from repeating consecutively without a change in direction first.
---
Visual Components
24-Cell Gradient Confidence Meter
A horizontal bar of 24 cells is displayed at the bottom of the chart. The left side is the bearish extreme, the center is neutral, and the right side is the bullish extreme. The current composite score position is highlighted within the meter, giving a continuous visual read of where the market sits in the conviction range — not just whether a signal has fired, but how strongly.
Score Breakdown Table
A table showing three columns for each dimension: dimension name, dimension number, and its current score (+1, -1, or 0). This allows you to see exactly which dimensions are contributing to the composite and which are neutral or conflicting.
Gradient Bar Coloring
Price bars are colored using a gradient that interpolates from a neutral color toward the signal color, weighted by the absolute value of the composite score. A high-confidence bull signal produces a strong green bar; a low-confidence or mixed signal produces a muted or neutral color. This keeps bar coloring proportional to actual conviction rather than using a binary flip.
---
Features
Six-dimension composite scoring system covering trend, statistics, volume, momentum, structure, and volatility
Composite score normalised to with confidence percentage
Non-repainting: all signals confirmed on bar close via barstate.isconfirmed
State-tracked signals prevent repeated same-direction firing
24-cell gradient confidence meter with continuous position display
Score breakdown table showing each dimension's individual contribution
Gradient bar coloring proportional to conviction level
Configurable thresholds for all six dimensions and signal levels
---
Input Parameters
EMA Fast / Slow (default 21 / 55) — D1 trend alignment
Z-Score Baseline EMA (default 50) — the mean used for Z-score calculation
Z-Score Window (default 50) — standard deviation lookback
Z-Score Threshold (default 1.5) — how many standard deviations trigger the score
Volume RSI Length (default 8) — RSI period applied to volume
Volume Threshold (default 1.2) — Volume RSI / 50 must exceed this to activate D3
RSI Length (default 14) — standard RSI period for D4
Structure Lookback (default 20) — bars used to define the high/low range for D5
ATR Fast / Slow (default 14 / 50) — periods for the volatility ratio in D6
Volatility Thresholds (default 0.8 / 1.5) — low and high boundaries for the ATR ratio
Buy Threshold (default 0.3) — minimum composite score to generate a long signal
Sell Threshold (default -0.3) — maximum composite score to generate a short signal
High-Confidence Threshold (default ±0.6) — score level at which a signal is classified as high-confidence
---
How to Use
Apply to any chart. The overlay paints directly on price bars.
Watch the confidence meter for the current composite score position. A score pressed toward either extreme with multiple dimensions aligned is a higher-quality read than one sitting near center.
Use the score breakdown table to understand why the composite score is what it is. If only 2 of 6 dimensions are contributing, the signal is weaker regardless of whether it crossed the threshold.
High-confidence signals (score beyond ±0.6 by default) indicate that four or more of the six dimensions are in agreement. These can be treated as stronger setups than threshold-level signals.
Combine the composite score read with your own price action, support/resistance, or higher-timeframe context before entering a trade. This indicator is a confluence tool, not a standalone entry system.
If several dimensions are conflicting (score near 0), the market is not in a clear state — no action is the appropriate response.
---
Limitations
No indicator can predict future price. The composite score reflects current market conditions based on recent historical data — not what will happen next.
Z-score and structural position dimensions are mean-reverting in nature, while EMA alignment and RSI momentum are trend-following. In strongly trending markets, D2 and D5 may produce persistent bearish readings even during a healthy uptrend, suppressing the composite score. This is by design — the indicator is more suited to environments where confluence across all dimensions is achievable.
Volume RSI (D3) is only reliable on instruments and timeframes with consistent, meaningful volume data. On synthetic instruments, indices, or very low-timeframe charts, volume data may be unreliable and D3's contribution should be weighted accordingly.
The volatility context dimension (D6) measures the environment , not direction. A low-volatility score of +1 does not mean the market is about to move up — only that conditions are historically more favorable for clean signals.
Signal state tracking prevents consecutive same-direction signals, which reduces noise but also means the indicator will not re-fire during a prolonged trending move. This is a deliberate design choice but should be understood before use.
Default thresholds were chosen for general applicability. Different asset classes, timeframes, and volatility regimes may benefit from threshold adjustment.
Past signal quality on any given instrument does not guarantee future performance.
---
Originality Statement
The core innovation of this indicator is the deliberate selection of six dimensions that measure fundamentally different market properties rather than multiple views of the same property. Standard multi-indicator approaches tend to combine RSI, MACD, and Stochastic — all of which are momentum oscillators derived from price, generating correlated signals that appear independent but are not.
This indicator separates the problem into distinct domains: trend direction (EMA alignment), statistical deviation from the mean (Z-score), demand-side pressure (Volume RSI), momentum quality and direction (RSI slope + level), structural placement within recent range (midpoint comparison), and environmental favorability (ATR ratio). Because these dimensions are largely uncorrelated with each other, genuine multi-dimension agreement represents a qualitatively different kind of confluence than stacking three oscillators. The 24-cell gradient meter goes further — it provides a continuous conviction read rather than a binary signal, treating market condition as a spectrum.
---
Disclaimer
This indicator is provided for educational and informational purposes only. It does not constitute financial advice, investment advice, or a recommendation to buy or sell any security. All trading involves risk, including the possible loss of principal. Past indicator performance does not guarantee future results. Always conduct your own research and consult a qualified financial professional before making any trading decisions.
-Made with passion by officialjackofalltrades
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

Liquidity Zone Harvester [JOAT]Liquidity Zone Harvester
Introduction
Institutional order flow leaves footprints in market structure. When a large buyer or seller places a significant order, the execution of that order creates an imbalance between supply and demand at a specific price level — and markets frequently return to these levels to test whether the original interest remains. These price areas are commonly referred to as order blocks or liquidity zones, and they form one of the core concepts in institutional and Smart Money trading methodology.
The Liquidity Zone Harvester is an automated order block detection and management system that identifies these zones using statistically validated momentum signals rather than arbitrary manual placement. Instead of drawing boxes wherever a trader's eye thinks supply or demand may exist, this indicator uses Z-score cumulative impulse detection to identify when directional momentum has reached statistically significant levels — and only then marks the most recent opposing-close candle as the source order block. Volume quality gates ensure that only high-participation impulses create zones, filtering out low-conviction moves that are less likely to represent genuine institutional activity.
What sets this indicator apart from standard order block tools is what happens after zone creation. Every active zone is tracked through a dual-mechanism aging system. The Bayesian exponential decay model progressively reduces zone visual intensity over time with a configurable half-life, providing a continuous probability signal about zone freshness. Simultaneously, a Kaplan-Meier survival analysis engine — borrowed from medical statistics — estimates the probability that a given zone will survive future price tests, based on the historical survival rates of all previously observed zones in the training window. Each zone displays both its current age and its estimated survival probability directly on the chart, turning static boxes into dynamically updated probability estimates.
Core Concepts
1. Z-Score Cumulative Impulse Detection
Zone creation is triggered only when directional momentum reaches a statistically defined threshold. The system accumulates a running streak of directional closes — when consecutive bars close higher than their open, the bull accumulator grows; when consecutive bars close lower, the bear accumulator grows. The streak resets when direction reverses. This cumulative streak is then normalized against its own rolling mean and standard deviation, producing a Z-score that measures how unusual the current momentum streak is relative to recent history.
cumBull := close > open ? nz(cumBull ) + (close - open) : 0
cumBear := close < open ? nz(cumBear ) + (open - close) : 0
zBull = (cumBull - ta.sma(cumBull, zLen)) / ta.stdev(cumBull, zLen)
zBear = (cumBear - ta.sma(cumBear, zLen)) / ta.stdev(cumBear, zLen)
bullEvent = ta.crossover(zBull, zThresh) and barstate.isconfirmed and volOK
bearEvent = ta.crossover(zBear, zThresh) and barstate.isconfirmed and volOK
When a bullEvent fires (bull Z-score crosses the threshold with volume confirmation), the system looks backward to find the most recent down-close candle — the last bar where sellers were dominant before the impulse began. This becomes the demand zone. Similarly, a bearEvent marks the most recent up-close candle as the supply zone.
2. Volume Quality Gate
Not all Z-score impulses are created equal. An impulse that occurs on abnormally low volume represents weak conviction — possibly a thin-market price drift rather than genuine institutional momentum. The volume gate applies RSI to the volume series to normalize it against its own history. Only when volume RSI exceeds the configurable threshold is the volOK condition true, enabling zone creation.
volRsi = ta.rsi(volume, 14)
volOK = volRsi > volThresh
This filter meaningfully reduces the number of zones created during low-participation conditions such as pre-market sessions, lunch hours, or holiday-period trading — precisely the times when order block levels are least likely to represent significant institutional interest.
3. Order Block Zone Construction
When a signal event is confirmed, the most recent opposing candle is identified using ta.valuewhen(). For a bullEvent, the system finds the most recent bar where close was less than open (a down candle) — its high and low define the demand zone boundaries. For a bearEvent, it finds the most recent up candle — its high and low define the supply zone boundaries. A box object is created spanning from that historical bar to the current bar, with height defined by the candle's actual high-low range.
lastDnHigh = ta.valuewhen(close < open, high, 0)
lastDnLow = ta.valuewhen(close < open, low, 0)
lastDnBar = ta.valuewhen(close < open, bar_index, 0)
if bullEvent
newBox = box.new(lastDnBar, lastDnHigh, bar_index, lastDnLow, ...)
bullBoxes.push(newBox)
4. Overlap Prevention (f_no_overlap)
To avoid cluttering the chart with redundant zones that occupy the same price territory, an overlap check function evaluates whether a proposed new zone overlaps with any existing zone of the same type. The function iterates over all existing bull or bear boxes and compares the new zone's top and bottom against each existing box's top and bottom. A guard condition (nBull > 0) prevents the iteration from running on an empty array, which would cause an index -1 crash.
f_no_overlap(newTop, newBot, boxes) =>
noOverlap = true
if boxes.size() > 0
for i = 0 to boxes.size() - 1
b = boxes.get(i)
if newTop >= box.get_bottom(b) and newBot <= box.get_top(b)
noOverlap := false
noOverlap
5. Bayesian Exponential Decay
Each zone's visual transparency is driven by an exponential decay function that represents the diminishing probability of zone relevance over time. The half-life parameter (default: 75 bars) defines how quickly a zone fades. At age 0, the zone is fully opaque. At age 75 bars, the zone is at 50% opacity. At age 150 bars, 25% opacity. This continuous decay — rather than a binary active/expired switch — provides an analog probability signal directly encoded in the zone's visual intensity.
decayFactor = math.exp(-0.693 * age / halfLife)
zoneAlpha = math.round(decayFactor * 200)
box.set_bgcolor(b, color.new(zoneColor, 255 - zoneAlpha))
6. Kaplan-Meier Survival Analysis
The Kaplan-Meier estimator is a nonparametric statistical method originally developed to measure survival probabilities in clinical trial data. In this indicator, "survival" is defined as a liquidity zone remaining unmitigated (not breached by a closing price on two separate occasions). Each time a zone is mitigated, it is recorded as a "death event" at its current age. Zones that expire by age limit without mitigation are recorded as "censored events" — incomplete observations. The KM formula multiplies survival probabilities across all observed events up to a given age.
// For each completed event (death at age t_i with n_i at-risk zones):
S_t := S_t * (1.0 - d_i / n_i)
// Product over all event times <= query age
For each active zone, the indicator queries the KM estimate at the zone's current age and displays the result as a percentage label. A zone at age 40 showing "Age 40 | 72%" means that historically, 72% of zones survived to at least 40 bars without being mitigated — giving traders a quantitative assessment of how likely the zone is to hold on the next test.
Features
Z-Score Cumulative Impulse: Statistical momentum threshold using normalized cumulative directional streaks to gate zone creation.
Volume Quality Gate: Volume RSI filter ensures only high-participation impulses create zones.
Precise Order Block Identification: Most recent opposing candle (last down-close for bull event, last up-close for bear event) defines zone boundaries.
Overlap Prevention: f_no_overlap function checks all existing zones before creating a new one, preventing chart clutter from redundant levels.
Bayesian Exponential Decay: Zone opacity decays over time with configurable half-life, encoding freshness as a visual probability signal.
Kaplan-Meier Survival Analysis: Medical-statistics survival estimator applied to zone longevity, displayed as a percentage probability label on each active zone.
Dynamic Zone Extension: Box right edge extends to the current bar on every update, keeping zones visually connected to the present.
Mitigation Tracking: Zones that are closed through twice are flagged as mitigated and removed, with the event recorded for KM analysis.
Seven-Row Dashboard: Active demand count, active supply count, bull Z, bear Z, volume RSI, KM training size, and signal status.
Two Alert Conditions: Zone created alert and zone rejection (price tests and bounces back) alert.
Input Parameters
Z-Score Settings:
Z Lookback: Rolling window for Z-score normalization (default: 50)
Z Threshold: Sigma level required to trigger an impulse event (default: 2.0)
Volume Gate Settings:
Volume RSI Period: RSI lookback for volume normalization (default: 14)
Volume RSI Threshold: Minimum volume RSI for zone creation eligibility (default: 55)
Zone Management Settings:
Max Zone Age: Maximum bars a zone remains active before forced removal (default: 300)
Mitigation Count: Number of closes through a zone required for mitigation (default: 2)
Max Active Zones Per Side: Maximum simultaneous demand or supply zones displayed (default: 5)
Decay Settings:
Decay Half-Life: Number of bars at which zone opacity reaches 50% of initial value (default: 75)
KM Settings:
KM Training Window: Bar lookback for Kaplan-Meier training data collection (default: 500)
Show Survival Labels: Toggle KM probability labels on active zones (default: true)
Display Settings:
Show Demand Zones: Toggle demand (bull) zone boxes (default: true)
Show Supply Zones: Toggle supply (bear) zone boxes (default: true)
Show Dashboard: Toggle the seven-row information table (default: true)
How to Use This Indicator
Step 1: Understand Zone Creation Conditions
Zones are not created on every bar — they are created only when a statistically significant directional impulse (Z-score above threshold) occurs on above-average volume. This selectivity is intentional. In any given trading session, you will likely see only a few zone creation events, each backed by a genuine momentum surge that suggests institutional participation. When you see a new zone appear, note the Z-score values in the dashboard and the volume RSI reading — higher values on both indicate a stronger impulse and more confident zone placement.
Step 2: Prioritize Fresh, High-Survival Zones
Not all zones on the chart are equally relevant. A fresh zone (low age, full opacity) at a KM survival rate of 80% is a far stronger candidate for price reaction than an old zone (high age, near-transparent) at 30% survival probability. Use both the visual opacity and the KM label together: as a zone ages and fades, reduce your expectation that it will provide meaningful support or resistance. When price approaches a zone that is both visually fresh and shows high KM survival probability, the statistical expectation of reaction is at its highest.
Step 3: Watch for Zone Rejection Alerts
The zone rejection alert fires when price tests a zone (enters the box boundary) and then closes back away from it without mitigating it. This is the core trade setup: price returning to the institutional order block level, briefly penetrating it, and then reversing. The rejection alert provides a timely notification for potential entries in the direction of the original impulse that created the zone, with the zone's near boundary serving as the natural stop-loss reference.
Step 4: Monitor KM Training Size for Statistical Validity
The dashboard displays the KM training sample size — the number of completed zone events (both mitigated and aged-out) available for the survival analysis. With fewer than 10 training events, the KM estimate has high variance and should be treated as rough guidance. With 30 or more training events, the estimate becomes statistically stable. On instruments or timeframes where the indicator has run for extended periods, the KM estimates become increasingly reliable as the training dataset grows.
Indicator Limitations
The Z-score cumulative impulse and volume gate require sufficient chart history for the rolling normalization periods to be seeded. In the first Z-lookback bars of a new chart, zone creation signals may be less reliable as the mean and standard deviation are not yet fully established.
Kaplan-Meier survival estimates are only as reliable as the training dataset. On instruments or timeframes that have not accumulated many completed zone events, the survival probabilities should be treated as rough estimates rather than statistically precise values.
The mitigation definition (two closes through the zone) is a configurable approximation. In real order block theory, mitigation can be defined in several ways; this indicator's specific definition may not match every trader's conceptual framework.
Zones are based on the most recent opposing candle at the time of the impulse event. In fast markets where multiple large candles cluster closely together, the marked candle may not represent the most significant institutional order location.
This indicator requires volume data. On instruments where volume is unavailable or unreliable (some synthetic indices, certain forex pairs), the volume gate will not function as intended and should be disabled or its threshold lowered significantly.
The exponential decay model assumes a constant half-life across all market conditions. In reality, zone relevance can be regime-dependent — a zone formed during a trending market may remain relevant longer than one formed during a range, or vice versa.
Maximum active zones per side is a hard limit. If the limit is reached, new valid zone creation events will be rejected until an existing zone is mitigated or aged out.
Originality Statement
The Liquidity Zone Harvester is a genuinely original indicator that applies statistical and mathematical frameworks from outside the trading domain to a problem common in technical analysis.
The Z-score cumulative impulse detection — using consecutive close-open accumulation normalized against rolling sma/stdev — as the primary trigger for order block marking is an original signal architecture. Most order block indicators use visual pattern matching (e.g., a large candle followed by a gap) rather than statistical significance thresholds.
Applying the Kaplan-Meier survival estimator — a nonparametric method from biostatistics — to estimate the probability that a liquidity zone will survive future price tests is a novel application of medical statistics to market analysis. This provides a mathematically grounded probability estimate that no standard order block indicator offers.
The Bayesian exponential decay applied to zone visual transparency — using a configurable half-life to continuously encode zone freshness as opacity — is an original visual design that treats zone relevance as a continuously diminishing probability rather than a binary active/inactive state.
The overlap prevention function that iterates over all existing zone arrays before creating a new zone — with the index-crash guard for empty arrays — is a specific engineering solution to a concrete problem in box-based indicator design.
The volume RSI quality gate, applied specifically to filter Z-score impulse events rather than as a standalone signal, is an original confluence filter design that specifically addresses the problem of thin-market false signals in order block detection.
Disclaimer
The Liquidity Zone Harvester is provided for educational and informational purposes only. It is a technical analysis tool and does not constitute financial advice. Liquidity zones and order blocks are analytical constructs; they do not guarantee price reactions. Past zone behavior as encoded in Kaplan-Meier estimates does not predict future zone performance. 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

Adaptive Pressure Trail [JOAT]Adaptive Pressure Trail
Introduction
Adaptive Pressure Trail is an open-source overlay indicator that combines an HMA-based adaptive ratchet trail with a custom volume-weighted Money Flow Index to classify bars into bull pressure, bear pressure, and neutral states. The system uses a three-layer visual architecture — an outer volatility cloud, an inner ratchet band fill, and a core gradient pressure fill between the HMA baseline and candle mid-body — to create a clear, spatially organized picture of momentum and direction on any chart. Volatility squeeze detection identifies compression phases before potential breakouts, and high-confidence signals fire when a squeeze releases simultaneously with pressure alignment.
The core problem this indicator solves is that most trail-based systems are either too reactive (flipping constantly on noise) or too slow (missing meaningful moves). The HMA ratchet addresses this: the upper band only falls and the lower band only rises after a direction flip, preventing whipsaw while remaining responsive when momentum is genuine. Layering a volume-weighted MFI filter on top means a directional trail alone is not sufficient — volume-backed money flow must confirm the move before the indicator reports active pressure.
Core Concepts
1. HMA Adaptive Ratchet Trail
The trail baseline is computed using a Hull Moving Average, which provides low lag while remaining smooth. ATR-scaled upper and lower bands are applied around the HMA. The ratchet rule prevents band noise: the upper band can only move downward (or reset when price closes above it), and the lower band can only move upward (or reset when price closes below it). Direction flips when price closes through the active band. This creates a one-directional drift that is far more stable than a raw crossover trail:
The trail direction variable persists with var and updates each bar. Direction == 1 means the lower band is the active trail (bullish), direction == -1 means the upper band is the active trail (bearish).
2. Custom Volume-Weighted MFI
Rather than using a standard price-only momentum oscillator, the pressure engine uses a custom volume-weighted Money Flow Index. Positive flow is volume multiplied by HLC3 on bars where HLC3 increased; negative flow is volume multiplied by HLC3 on bars where HLC3 decreased. These are summed over the MFI length and converted to a 0-100 scale using the RSI formula. The result is smoothed with an HMA for responsiveness. This produces a momentum measure that is inherently volume-weighted — large-volume moves carry more influence than low-volume drift. The MFI is further smoothed to distinguish sustained pressure from transient spikes.
3. Pressure Regime Classification
Bull pressure is active when the trail direction is bullish AND the smoothed MFI is above the bull threshold. Bear pressure is active when the trail direction is bearish AND MFI is below the bear threshold. Neutral is everything else. This dual-condition structure means you need both directional commitment from the ratchet trail AND volume-backed momentum to enter a pressure state. Either condition alone is insufficient.
A rolling 50-bar history tracks what percentage of recent bars were in an active pressure state, producing a Pressure Strength percentage that indicates whether the current regime has been sustained or is a brief spike.
4. Squeeze Detection
Band width — the distance between the upper and lower ratchet bands — is compared to its own SMA. When band width drops below 72% of its recent average, the market is compressing. A squeeze start fires a golden diamond marker at the trail level. A squeeze release fires a larger circle marker. The high-confidence signal fires when a squeeze release coincides with an active pressure state, identifying the highest-probability setups where compressed volatility breaks out in a confirmed directional context.
5. Three-Layer Visual Architecture
The chart renders three nested visual layers:
Outer Cloud: The ATR envelope (cloudMult * ATR from HMA center) filled with a very transparent directional color — gives spatial context to where price is within the volatility range
Inner Band Fill: The ratchet upper and lower bands filled with medium transparency — shows the active directional channel
Core Pressure Fill: A gradient fill between the HMA baseline and the candle mid-body — transparent at the HMA, saturated at the body, colored by pressure state
The trail line itself uses three stacked plots at widths 10, 5, and 2 to create a neon glow shadow effect. Bar coloring uses color.from_gradient driven by MFI intensity, producing increasingly saturated candles as momentum builds.
Features
HMA Ratchet Trail with Triple-Layer Glow: Direction-persistent adaptive trail rendered as a neon glow (widths 10/5/2) using the bullish lime or bearish fuchsia color
Outer ATR Volatility Cloud: Wide ATR envelope filled directionally, providing spatial context at a glance
Inner Ratchet Band Fill: Gradient-filled active channel between upper and lower ratchet bands
Core Pressure Gradient: Background-to-body gradient between HMA and mid-body, colored by current pressure state
HMA Skeleton Reference: Subtle neutral line showing the raw HMA baseline beneath all fills
Volatility Squeeze Markers: Golden diamonds during compression, circle flash on breakout
High-Confidence Signal: Starred HC LONG / HC SHORT labels when squeeze releases into confirmed pressure alignment — the highest-quality setup the system produces
Volume Impulse Labels: When a strong directional candle exceeds the volume threshold, a label shows the volume ratio (e.g., 2.1x vol) at the bar
MFI Cross Markers: Small triangles on the trail when MFI crosses the 50 level, marking momentum regime shifts
TP Signals: Labeled plotshapes when MFI reaches overbought/oversold extremes in the trail direction
Pressure Strength Percentage: Rolling 50-bar % of time spent in active pressure — distinguishes sustained trends from brief spikes
Gradient Bar Coloring: color.from_gradient driven by MFI intensity — bars saturate as momentum builds and fade as it weakens
11-Row Dashboard: Pressure state, trail direction, MFI reading, pressure score, pressure strength %, volatility state, band width, trend bars, trail price, ATR
Input Parameters
Adaptive Trail:
Trail HMA Length: Period for the HMA baseline (default 21)
Trail ATR Multiplier: Width of inner ratchet bands (default 1.8)
Trail ATR Length: ATR lookback for band calculation (default 14)
Outer Cloud ATR Width: Outer envelope width multiplier (default 3.2)
Squeeze Reference Bars: SMA period for band-width baseline (default 20)
Pressure Filter:
MFI Length: Volume-weighted money flow lookback (default 14)
MFI Smoothing: HMA smoothing on raw MFI (default 7)
MFI Bull/Bear Thresholds: Activation levels for pressure states (default 62/38)
Signals:
TP Overbought/Oversold Levels: MFI levels that trigger TP signals (default 78/22)
Impulse Volume Multiplier: Volume multiple above SMA required for impulse label (default 1.3)
Visuals:
Toggles for entry signals, TP signals, glow, cloud, pressure fill, squeeze markers, and dashboard
Bull Color (default lime #a3e635), Bear Color (default fuchsia #e879f9), Neutral Color (default slate #94a3b8)
How to Use This Indicator
Primary Setup — Trend Following with Pressure Confirmation:
Look for the trail to flip direction (circle marker on trail). Wait for MFI to cross the bull or bear threshold, confirming the pressure state activates. Enter in the trail direction once the pressure fill color saturates. Trail your stop at the active trail line. Exit on a TP signal or when the pressure state deactivates.
High-Confidence Setup:
Wait for squeeze markers (golden diamonds) to appear, indicating compression. When the squeeze releases (larger circle flash) and the pressure state is simultaneously active, the HC LONG or HC SHORT label fires. These are the setups where compressed volatility breaks out with momentum behind it.
Filtering with Pressure Strength:
The dashboard Pressure Strength percentage tells you how sustained the current move has been. Values above 60% indicate a mature trend. Values below 30% indicate the pressure state is new or unstable. Adjust position sizing accordingly.
Reading Impulse Candles:
Volume impulse labels (e.g., "2.1x vol") mark bars where a strong directional move was accompanied by significantly elevated volume. These often mark the start or acceleration of a pressure phase and can serve as reference points for support/resistance.
APT dashboard showing bull pressure active, MFI at 71.2, P-Score 7.1/10, P-Strength at 64%, band width expanding after a squeeze release, and the trail at current price with ATR reference
Indicator Limitations
The ratchet trail requires a confirmed close through the active band to flip direction. On higher-timeframe charts with large candle bodies this can mean the flip is confirmed well after the actual turning point
The volume-weighted MFI requires volume data. On instruments with unreliable volume reporting (some forex pairs, synthetic indices) the pressure filter may be less meaningful than on equities or futures
Squeeze detection uses a 72% band-width threshold. In persistently low-volatility instruments this threshold may trigger too frequently; adjusting the Squeeze Reference Bars parameter can help
High-confidence signals require both a squeeze release and active pressure simultaneously. On trending markets with no compression phase, HC signals will be rare
MFI thresholds at 62/38 are defaults designed for balanced use; highly trending instruments may require raising the bull threshold and lowering the bear threshold to reduce false pressure activations
Originality Statement
This indicator is original in its combination of a ratchet-constrained HMA trail with a custom volume-weighted MFI, the three-layer nested visual system, and the squeeze-breakout confluence signal. While HMA trails and MFI oscillators exist independently, this publication is justified because:
The ratchet logic applied to HMA (rather than ATR midline or EMA) reduces lag while preventing the constant flipping common in standard trail indicators
The custom volume-weighted MFI differs from the standard MFI by using HLC3 as the price component with RSI-formula normalization, producing a smoother measure with better noise rejection
The three-layer nested fill architecture (outer cloud, inner band, core pressure gradient) provides a spatially organized visual system where the distance between layers communicates volatility context
Squeeze detection integrated with pressure confirmation for HC signals is a novel combination that identifies setups at the intersection of volatility compression and momentum alignment
The Pressure Strength rolling percentage provides a trend maturity measure not present in standard trail indicators
Disclaimer
This indicator is provided for educational and informational purposes only and does not constitute financial advice or a recommendation to buy or sell any financial instrument. Past performance of any pattern or signal does not guarantee future results. All trading involves substantial risk. Always use proper risk management and conduct your own independent analysis.
— Made with passion by officialjackofalltrades
Indicator

Vantage Protocol [JOAT]Vantage Protocol
Introduction
Vantage Protocol is an advanced open-source execution strategy that integrates regime classification, adaptive momentum filtering, volume confirmation, session timing, and ATR-based risk management into a unified NNFX-aligned trading engine. Rather than relying on a single entry signal, the strategy requires alignment across five independent subsystems — regime state, momentum direction, cumulative volume delta, volume presence, and session timing — before entering a trade. This multi-gate architecture is designed to filter out low-probability setups and only execute when multiple independent factors converge.
This strategy exists because most retail strategies fail for a predictable reason: they use one or two conditions for entry and ignore the broader market context. A moving average crossover in a choppy market produces losses. A momentum signal during a low-volume session lacks follow-through. An entry outside the active institutional window misses the liquidity needed for clean execution. Vantage Protocol addresses each of these failure modes with a dedicated subsystem, and only enters when all subsystems agree.
Important Note on Strategy Results
Backtesting results shown with this strategy are historical simulations and do not guarantee future performance. Markets change, and strategies that performed well historically may not perform well in the future. The default settings use realistic parameters: 2% of equity per trade, $100,000 initial capital, no pyramiding, and zero margin. Users should add commission and slippage appropriate for their broker and instrument in the strategy Properties dialog before evaluating results. The strategy is published with these defaults to provide a transparent starting point — users are expected to adjust parameters for their specific trading conditions.
Strategy Architecture
The strategy follows an NNFX (No Nonsense Forex) inspired architecture where each subsystem acts as an independent gate. A trade is only entered when all gates are open simultaneously.
Gate 1: Regime Engine
The regime engine determines whether the market is trending or ranging. It combines three independent measures:
H-Infinity Filter: An adaptive filter from control theory that tracks price under worst-case noise assumptions. The filter's slope determines directional bias — positive slope = bullish, negative slope = bearish
R-Squared Efficiency Gate: Measures how well price fits a linear regression. When R-squared exceeds an auto-calibrating threshold (rolling mean plus k standard deviations), the efficiency gate opens, indicating a trending market. A hysteresis band prevents flickering
Chop Score: Measures path efficiency — the ratio of net movement to total path length. High chop scores indicate choppy, non-directional markets where trend-following strategies fail
The regime is classified as trending (bullish or bearish) only when R-squared confirms efficiency AND chop score confirms directional movement. If either condition fails, the regime is classified as ranging and no entries are allowed.
bool regimeTrend = effOK and not isChoppy
int regimeBias = regimeTrend ? (hinfSlope >= 0 ? 1 : -1) : 0
Gate 2: Momentum Core
The momentum subsystem uses a Laguerre RSI processed through JMA adaptive smoothing. The Laguerre filter provides a smoother, less laggy momentum reading than standard RSI, and the JMA smoothing further reduces noise while preserving responsiveness to genuine momentum shifts.
Momentum must confirm the regime direction:
For long entries: JMA-smoothed Laguerre RSI must be above the bull threshold (default: 62)
For short entries: JMA-smoothed Laguerre RSI must be below the bear threshold (default: 38)
This prevents entries when momentum is neutral or contradicts the regime bias.
Gate 3: Volume Filter (CVD)
Cumulative Volume Delta tracks net buying versus selling pressure. The strategy requires the CVD slope (smoothed with an EMA) to confirm the trade direction:
For long entries: CVD slope must be positive (net buying pressure increasing)
For short entries: CVD slope must be negative (net selling pressure increasing)
Additionally, the current bar's volume must exceed a minimum ratio relative to the 50-bar average (default: 0.7x). This filters out entries during thin-liquidity periods where price moves lack conviction and slippage risk is elevated.
Gate 4: Session Filter
An optional session window filter restricts entries to a configurable time window (default: 0200-1200 New York time). This aligns trading with the London and New York sessions where institutional liquidity is deepest. Entries outside this window are blocked because low-liquidity sessions produce unreliable price action and wider spreads.
Gate 5: Cooldown
After any exit (whether by stop loss, take profit, or regime exit), a configurable cooldown period (default: 5 bars) must pass before a new entry is allowed. This prevents revenge trading and allows the market to establish a new setup after a position closes.
Entry and Exit Logic
Entry Conditions:
All five gates must be open simultaneously, and the strategy must be flat (no existing position):
bool longSetup = regimeBias == 1 and momBull and cvdBull and volOK and sessOK and cooldownOK
bool shortSetup = regimeBias == -1 and momBear and cvdBear and volOK and sessOK and cooldownOK
Stop Loss and Take Profit:
SL and TP levels are calculated using ZEMA-smoothed ATR multiplied by configurable factors:
Stop Loss: Entry price minus (ZEMA-ATR x SL Multiplier) for longs, plus for shorts (default SL multiplier: 1.8)
Take Profit: Entry price plus (ZEMA-ATR x TP Multiplier) for longs, minus for shorts (default TP multiplier: 2.8)
The default risk-reward ratio is approximately 1:1.56 (1.8 SL to 2.8 TP). ZEMA smoothing on the ATR removes noise from the volatility measure, producing more stable SL/TP levels than raw ATR.
Regime Exit:
If the regime flips to ranging or the opposite direction while a position is open, the strategy closes the position immediately with a "Regime Exit" comment. Additionally, if momentum deteriorates significantly (Laguerre RSI crossing back toward neutral), the position is closed. This prevents holding positions through regime changes where the original thesis is no longer valid.
Band Structure Visualization
The strategy plots a JMA baseline with regime-colored glow, and SL/TP bands around it:
SL bands (inner) shown in muted scarlet with fill zones
TP bands (outer) shown in muted jade with cross-style plotting
The baseline color shifts based on regime: green for bullish trend, red for bearish trend, purple for ranging
Bar coloring reflects the current position state: green when long, red when short, purple when ranging (no position allowed), and grey when flat in a trending regime.
Default Strategy Properties
These are the default values used in the strategy's Properties dialog:
Initial Capital: $100,000
Order Size: 2% of equity per trade
Pyramiding: 0 (no adding to positions)
Margin: Long 0%, Short 0% (cash account simulation)
Commission: Not set by default — users should configure this for their broker (typical values: 0.01-0.1% for crypto, $1-5 per contract for futures, 1-3 pips for forex)
Slippage: Not set by default — users should configure this for their instrument (typical values: 1-3 ticks for liquid instruments, more for illiquid ones)
Users are strongly encouraged to set realistic commission and slippage values before evaluating backtesting results. Results without commission and slippage will overstate performance.
Input Parameters
Regime Engine:
R-Squared Length (default: 30), R-Squared Threshold k (default: 0.8), Chop Length (default: 20), Chop Threshold (default: 0.55)
H-Infinity Order (default: 3), Noise (default: 0.5), Disturbance (default: 1.0)
Momentum Core:
Laguerre Alpha (default: 0.07), JMA Smooth Period (default: 8), Bull Threshold (default: 62), Bear Threshold (default: 38)
Volume Filter:
CVD Smoothing (default: 14), Min Volume Ratio (default: 0.7)
Band Structure:
JMA Period (default: 21), ATR Length (default: 14), SL Multiplier (default: 1.8), TP Multiplier (default: 2.8)
Session Filter:
Session Filter toggle (default: on), Active Window (default: 0200-1200), Timezone (default: America/New_York)
Risk Management:
Risk % (default: 1.5), Re-entry Cooldown (default: 5 bars)
How to Use This Strategy
Step 1: Configure for Your Instrument
Open the strategy Properties dialog and set commission and slippage values appropriate for your broker and instrument. Adjust the session window if you trade instruments with different liquidity patterns than the default London/NY window.
Step 2: Evaluate on Sufficient Data
Run the strategy on a dataset that produces at least 100 trades for statistical significance. Short datasets with few trades produce unreliable performance metrics. Use the strategy tester's detailed trade list to review individual trades.
Step 3: Monitor the Dashboard
The 9-row dashboard shows the state of every subsystem in real-time: regime classification, momentum reading, CVD direction, volume ratio, session status, current position, ATR value, and cooldown status. This transparency lets you understand exactly why the strategy is or is not entering trades.
Step 4: Understand the Regime Exit
The strategy will close positions when the regime changes, even if the SL/TP has not been hit. This is by design — holding a trend-following position through a regime change to ranging is a common source of losses. Regime exits may result in small wins or small losses, but they prevent the larger losses that come from ignoring changing conditions.
Step 5: Adjust Parameters Thoughtfully
If the strategy produces too few trades, consider lowering the momentum thresholds (bull from 62 to 58, bear from 38 to 42) or reducing the minimum volume ratio. If it produces too many losing trades, consider increasing the R-squared threshold k or the chop threshold. Each parameter change affects the trade-off between signal frequency and signal quality.
Strategy Limitations and Compromises
Trade Frequency: The five-gate architecture is deliberately selective. On many instruments and timeframes, the strategy may only produce a handful of trades per month. This is by design — fewer, higher-quality trades — but it means the strategy is not suitable for traders who need frequent activity
Regime Detection Lag: The regime engine uses lookback-based measures (R-squared, chop score) and persistence requirements. Regime changes are identified with a delay, which means the strategy may miss the first portion of a new trend or hold slightly into a regime change
CVD Approximation: The volume delta calculation (close > open = buying) is an approximation. True order flow requires Level 2 data not available in Pine Script. On instruments with unreliable volume data (forex with tick volume), the CVD gate may be less effective
Fixed SL/TP: Stop loss and take profit are set at entry and do not trail. In strong trends, the strategy may exit at the TP while the trend continues. A trailing stop modification could capture more of extended moves but would also increase the risk of giving back profits during pullbacks
Session Dependency: The default session filter is optimized for forex and futures with distinct London/NY sessions. Crypto and other 24/7 markets may benefit from disabling the session filter or adjusting the window
No Pyramiding: The strategy does not add to winning positions. This limits profit potential in strong trends but also limits risk exposure
Backtesting vs Live: Backtesting assumes fills at the close of the signal bar. In live trading, slippage, requotes, and execution delays may produce different results. Always paper trade before committing real capital
Originality Statement
This strategy is original in its multi-gate architecture that synthesizes five independent subsystems into a unified execution engine. While individual components (regime detection, Laguerre RSI, CVD, session filtering, ATR-based risk management) are established concepts, this strategy is justified because:
The five-gate entry architecture (regime + momentum + CVD + volume + session) provides a systematic approach to filtering low-probability setups that is not available in single-indicator strategies
The H-Infinity filter for regime detection applies control theory to market classification, providing a theoretically grounded alternative to simple moving average crossover regime detection
The triple-measure regime engine (R-squared + chop + H-Infinity slope) provides more robust regime classification than any single measure
The regime exit mechanism actively manages positions based on changing market conditions rather than relying solely on fixed SL/TP levels
The NNFX-inspired architecture with clearly separated subsystems (baseline, confirmation, volume, exit, session) provides a modular framework that traders can understand, evaluate, and modify
The cooldown mechanism prevents revenge trading after exits, addressing a common behavioral trading error
All subsystem states are displayed transparently in the dashboard, allowing traders to understand exactly why trades are or are not being taken
Disclaimer
This strategy 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 and is not suitable for all investors.
Backtesting results are historical simulations based on past data. Past performance does not guarantee future results. The strategy's historical performance was generated under specific market conditions that may not repeat. Markets are dynamic, and strategies that worked historically may fail in the future.
The default strategy properties do not include commission or slippage. Users must configure these values for their specific broker and instrument to obtain realistic performance estimates. Results without commission and slippage will overstate actual trading performance.
Always use proper risk management, including position sizing appropriate for your account and risk tolerance. Never risk more than you can afford to lose. Consider paper trading this strategy extensively before using real capital. The author is not responsible for any losses incurred from using this strategy.
-Made with passion by officialjackofalltrades
Strategy

Liquidity Tessera [JOAT]Liquidity Tessera
Introduction
Liquidity Tessera is an advanced open-source volume intelligence pane that fuses Cumulative Volume Delta (CVD), Weis Wave volume clustering, multi-design intensity bars, volume absorption and climax detection, CVD momentum ribbon, liquidity exhaustion tracking, session-partitioned delta accumulation, and a comprehensive 16-row dashboard into a unified volume analysis system. This indicator transforms raw volume data into actionable intelligence about who controls the market — buyers or sellers — and whether that control is strengthening or weakening.
Standard volume indicators show you how much trading occurred. Liquidity Tessera shows you the character of that trading: whether volume is flowing in or out (CVD), whether volume waves are expanding or contracting (Weis Wave), whether institutions are absorbing supply or distributing into demand (absorption detection), and whether a move is reaching climactic exhaustion (climax and exhaustion signals). The indicator operates in its own pane below the price chart, providing a complete volume intelligence layer without cluttering price action.
Core Concepts
1. Cumulative Volume Delta (CVD)
CVD approximates the net buying and selling pressure by assigning each bar's volume as positive (buying) when the close is above the open, and negative (selling) when the close is below the open:
float barDelta = close > open ? volume : close < open ? -volume : 0.0
var float cvdRaw = 0.0
cvdRaw := nz(cvdRaw ) + barDelta
The cumulative sum of these deltas creates a running total of net order flow. Rising CVD indicates net buying pressure is accumulating; falling CVD indicates net selling pressure. The indicator offers optional normalization using a z-score approach (CVD relative to its rolling mean and standard deviation), which makes CVD comparable across different instruments and timeframes.
CVD divergences from price are particularly significant: when price makes a new high but CVD does not confirm (it stays below its recent high), it suggests the rally lacks genuine buying conviction and may be vulnerable to reversal.
2. Weis Wave Volume Clustering
The Weis Wave method groups volume into directional waves. Rather than looking at volume bar-by-bar, it accumulates volume during each directional swing. A wave reversal is triggered when price moves against the current wave direction by more than a configurable ATR-based threshold:
float waveThreshold = ta.atr(waveAtrLen) * waveAtrMul
// When price reverses by more than the threshold, the wave completes
// and accumulated volume is plotted as a single wave column
This reveals the Wyckoff-style volume pattern: are up-waves attracting more volume than down-waves (accumulation), or are down-waves attracting more volume (distribution)? The indicator tracks wave history and detects divergences between price swings and their corresponding wave volumes.
3. Volume Absorption Detection
Institutional absorption occurs when large players absorb selling pressure (or buying pressure) without allowing price to move significantly. The indicator detects this by identifying bars where volume is extremely high relative to average (above the configurable threshold, default 2x) but the price range is unusually small (below 50% of average range):
High volume + small range = someone is absorbing the opposite side's orders
This often occurs at the end of trends when institutions are building positions against the prevailing direction
Absorption bars are highlighted with a distinct amethyst color and labeled "ABS" on the chart.
4. Volume Climax Detection
A volume climax occurs when extreme volume (above the configurable threshold, default 3x average) coincides with a reversal candle pattern — specifically, a bar with a large wick-to-body ratio (wick > 2x body). This combination suggests that a massive influx of orders met strong opposition, creating a potential turning point. Climax bars are highlighted in fuchsia and labeled "CLIMAX."
5. Liquidity Exhaustion Tracking
The indicator tracks consecutive Weis Waves where volume declines from wave to wave. When two or more consecutive waves in the same direction show declining volume, it signals exhaustion — the trend is running out of fuel. This is a classic Wyckoff concept: a trend sustained by decreasing volume is unsustainable.
6. Delta Intensity Bar Coloring
Rather than simple up/down coloring, the indicator offers gradient-based bar coloring where the intensity of the color reflects the strength of the bar's delta relative to average volume:
float deltaStr = math.min(math.abs(barDelta) / volMA, 2.0) / 2.0
// Weak delta = faint color, strong delta = vivid color
baseCol := color.from_gradient(deltaStr, 0, 1,
color.new(TESS_INFLOW, 65), color.new(TESS_INFLOW, 0))
This means a green bar with faint color had weak buying conviction, while a vivid green bar had strong buying conviction — information not available from standard volume bars.
7. CVD Momentum Ribbon
A fast and slow EMA of the raw CVD create a momentum ribbon. When the fast CVD EMA is above the slow, delta momentum is bullish (buying pressure is accelerating). Crossovers between the two indicate shifts in delta momentum direction.
Features
Four Bar Design Modes: Solid (standard filled bars), Hollow (outline only), Intensity (transparency scales with volume relative to average), and Glass (semi-transparent with a stepline cap) — each providing a different visual emphasis
Weis Wave Histogram: Background columns showing completed wave volumes, colored by wave direction. Up-wave volumes plot above zero, down-wave volumes below
CVD Overlay: The cumulative delta line scaled to fit the volume pane, with gradient coloring from bearish (red) to bullish (teal) based on CVD value
Session Volume Accumulation: Separate tracking of pre-market, regular, and post-market session volumes and deltas, with session background coloring
Delta Pressure Score: A 0-100 percentage measuring net buying pressure over the last 20 bars. Above 60 = buy pressure dominant, below 40 = sell pressure dominant
Wave Volume Comparison: Real-time comparison of the current wave's volume against the previous wave, classified as Expanding, Steady, or Contracting
Liquidity State Classification: Categorizes the current bar as Absorption, Climax, Exhaustion, Spike, Dry-Up, or Normal based on the composite of all detection systems
Volume Spike Detection: Identifies bars where volume exceeds 2.5x average with a background highlight
Session Delta Bias: Tracks whether the current session's cumulative delta is net accumulating or distributing
16-Row Dashboard: Displays bar delta, CVD state, volume ratio, wave direction, session volumes, last wave volume, liquidity state, delta pressure, CVD momentum, wave volume comparison, session delta bias, delta strength, active wave volume, exhaustion counts, and bar style
Input Parameters
Cumulative Delta:
CVD Smoothing: EMA period for CVD smoothing (default: 14)
Normalize CVD: Toggle z-score normalization for cross-asset comparability (default: on)
CVD Ribbon Fast/Slow: EMA periods for the momentum ribbon (default: 8/21)
Wave Volume:
Wave ATR Multiplier: Threshold for wave reversal detection (default: 1.5)
Wave ATR Length: ATR period for wave threshold (default: 14)
Signals:
Absorption Vol Threshold: Volume multiple for absorption detection (default: 2.0)
Climax Vol Threshold: Volume multiple for climax detection (default: 3.0)
Toggles for wave divergence, absorption, climax, and exhaustion signals
Visuals:
Bar Style: Solid, Hollow, Intensity, or Glass (default: Intensity)
Toggles for delta intensity coloring, wave histogram, CVD overlay, CVD ribbon, session background, and dashboard
How to Use This Indicator
Step 1: Read the Liquidity State
Check the dashboard's Liquidity State. "Absorption" at support suggests institutions are buying. "Climax" after an extended move suggests a potential turning point. "Exhaustion" means the trend is losing volume fuel. "Normal" means standard conditions apply.
Step 2: Monitor CVD Direction
Rising CVD confirms uptrends; falling CVD confirms downtrends. CVD diverging from price is a warning sign. If price is making new highs but CVD is flat or declining, the rally may lack genuine buying support.
Step 3: Compare Wave Volumes
In a healthy uptrend, up-wave volumes should be larger than down-wave volumes. If down-wave volumes start exceeding up-wave volumes while price is still rising, distribution may be occurring. The Wave Volume Comparison metric in the dashboard tracks this automatically.
Step 4: Use Delta Pressure for Bias
The Delta Pressure score (0-100) provides a quick read on who controls the last 20 bars. Above 60 = buyers dominate. Below 40 = sellers dominate. Between 40-60 = balanced/contested.
Step 5: Watch for Signal Clusters
The most significant moments occur when multiple signals cluster: an absorption bar followed by a wave divergence during an exhaustion phase, for example, creates a high-conviction reversal setup. Single signals in isolation are less reliable.
Indicator Limitations
The CVD approximation (close > open = buying, close < open = selling) is a simplification. True order flow data requires Level 2/DOM data not available in Pine Script. This approximation works reasonably well on liquid instruments but is inherently imprecise
Volume data quality varies significantly across instruments and data providers. Forex "volume" is typically tick count, not actual traded volume. Crypto volume may include wash trading. The indicator's effectiveness depends on the quality of the underlying volume data
Weis Wave reversal detection depends on the ATR threshold parameter. Too small a threshold produces too many waves (noise); too large produces too few (missing genuine reversals). The optimal setting varies by instrument and timeframe
Absorption and climax detection use fixed ratio thresholds. What constitutes "extreme" volume varies across instruments and market conditions. The thresholds may need adjustment
Session volume tracking uses PulseWire's built-in session detection, which may not align perfectly with all exchanges or instruments
The indicator operates in a separate pane and cannot overlay directly on price. Cross-referencing signals with price action requires visual comparison between panes
Originality Statement
This indicator is original in its comprehensive fusion of multiple volume analysis methodologies into a unified intelligence pane. While individual components (CVD, Weis Wave, volume absorption) exist separately, this indicator is justified because:
The integration of CVD, Weis Wave clustering, absorption detection, climax detection, and exhaustion tracking into a single system provides layered volume intelligence not available in any single existing indicator
The delta intensity bar coloring system uses gradient transparency based on delta strength, providing conviction information within the volume bars themselves
The liquidity state classification system synthesizes all detection subsystems into a single categorical assessment of current market conditions
Session-partitioned delta tracking reveals whether accumulation or distribution is occurring within specific market sessions
The CVD momentum ribbon provides a trend-following overlay on the delta data, identifying shifts in buying/selling momentum
Four distinct bar design modes (Solid, Hollow, Intensity, Glass) offer visual flexibility for different analysis preferences
Wave volume comparison with expanding/contracting classification automates Wyckoff-style wave 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 provides context about market participation but does not predict future price direction. Absorption, climax, and exhaustion signals are probabilistic patterns that can and do fail. CVD approximations are not equivalent to true order flow data. Always use proper risk management and conduct your own analysis. The author is not responsible for any losses incurred from using this indicator.
-Made with passion by officialjackofalltrades
Indicator

Delta Absorption Scanner[MarkitTick]💡 This advanced analytical tool is engineered to bridge the gap between price action and order flow dynamics by identifying critical moments where market participants encounter significant liquidity barriers. In the modern trading landscape, volume alone is often insufficient to determine market direction. The Delta Absorption Scanner provides a sophisticated lens through which traders can observe the interaction between aggressive market orders and passive limit orders, specifically highlighting "Absorption" events. These events occur when high-volume "Effort" fails to produce a proportional price "Result," signaling a potential exhaustion of the current trend or a hidden accumulation/distribution phase. By synthesizing volume delta, candle spread, and multi-timeframe context into a unified interface, this script empowers traders to make decisions based on the structural integrity of the market rather than superficial price movements.
✨ Originality and Utility
The primary utility of this script lies in its multi-layered approach to market analysis, moving beyond simple oscillators or trend-following moving averages.
Unlike standard volume indicators that merely report total activity, this scanner differentiates between buying and selling pressure by calculating candle-based delta, allowing for a more granular view of market intent.
The script introduces a unique "Scanner" architecture that monitors four distinct high-timeframe (HTF) perspectives simultaneously. This provides an institutional-grade view of the trend without the need to constantly switch chart intervals.
It incorporates a proprietary "Absorption" detection logic that correlates delta percentage with the physical spread of the candle. This identifies "hidden" strength or weakness that is often invisible to the naked eye.
The inclusion of Fair Value Gap (FVG) and Swing High/Low detection within the dashboard creates a comprehensive "Confluence Engine," ensuring that short-term delta signals are validated by higher-level market structures.
By utilizing non-repainting multi-timeframe logic (security calls with index offsets), the indicator maintains the highest standards of data integrity, making it suitable for both discretionary trading and systemic strategy development.
🔬 Methodology and Concepts
The core logic begins with the calculation of "Candle Delta," which determines the dominant force within a single bar based on its polarity. If a candle closes above its open, the entire volume is attributed to positive delta; if it closes below, it is negative.
The indicator then calculates the "Spread," defined as the absolute distance between the high and low of the bar. This metric is critical for the "Effort vs. Result" analysis.
Absorption is mathematically flagged when a candle exceeds the user-defined "Minimum Delta %" threshold but fails to generate significant directional movement, or when the spread is disproportionately small compared to the volume injected.
The Support (S3) and Resistance (R3) levels are derived from the most recent significant high-volume or high-delta bars, creating dynamic zones that reflect where institutional liquidity was last engaged.
Multi-Timeframe Integration: The script utilizes the request.security() function with a bar offset. This ensures that the data displayed from higher timeframes is "confirmed" and prevents the visual bias known as repainting.
Trend determination on the dashboard is calculated using a proprietary relationship between the current price and the 14-period smoothed high/low averages, providing a stable "Trend Bias" for each monitored timeframe.
● Main Feature Components
• Volume Delta labels
The script places dynamic labels above or below candles that exhibit significant delta. These labels display the Delta percentage, helping traders identify where "Climax" volume is occurring.
• Spread Analysis (S)
Next to the Delta % is a value representing the "Spread." This allows for an immediate visual comparison: High Delta with Low Spread suggests passive absorption (reversal), while High Delta with High Spread suggests aggressive momentum (continuation).
• Multi-Timeframe (HTF) Dashboard
A sophisticated table displayed on the chart that aggregates data from up to four higher timeframes. This dashboard is the "brain" of the scanner, providing a bird's-eye view of the market's broader health.
🎨 Visual Guide
Positive Delta Labels: Displayed as green labels with white text. These signify bars where buying volume was dominant.
Negative Delta Labels: Displayed as red labels with white text. These signify bars where selling volume was dominant.
Neutral/Spread Labels: Displayed in a dark neutral color to represent bars where the spread is being analyzed without a significant delta bias.
Dashboard - Trend Column: Displays "UP" in green for bullish regimes and "DN" in red for bearish regimes for each of the four HTF settings.
Dashboard - S3/R3 Column: Displays the price of the nearest significant support or resistance level identified by the script.
Dashboard - Distance % Column: A dynamic calculation showing how far the current price is from the S3/R3 levels. Green indicates distance from support, while red indicates distance from resistance.
Dashboard - FVG Column: Displays "+FVG" in green if a bullish Fair Value Gap exists on that timeframe, or "-FVG" in red if a bearish gap is present.
Dashboard - Swing Column: Identifies if the current price is near a local "Top" or "Bottom" based on pivot logic.
📖 How to Use
Step 1: Identify "Effort" on the Chart. Look for a large Delta % label (e.g., >20%) appearing at a local high or low.
Step 2: Analyze the "Result." If the Delta is high (Green/Positive) but the candle spread (S) is small and price fails to move higher, this is a classic Bearish Absorption signal. Limit sellers are "absorbing" the market buyers.
Step 3: Consult the Dashboard. Check if the HTF trends are in alignment. For a short trade based on Bearish Absorption, you ideally want to see "DN" trends on higher timeframes and the presence of a "-FVG."
Step 4: Proximity to S/R. Use the "Dist %" column to ensure you are not selling directly into a higher-timeframe support (S3) or buying directly into resistance (R3).
Step 5: Confluence. The highest probability trades occur when a Delta climax appears at a dashboard-confirmed Swing Top/Bottom in the direction of the HTF trend.
⚙️ Inputs and Settings
Positive/Negative Delta Color: Customizes the aesthetic of the bull/bear labels to match your chart theme.
Max Labels on Chart: Controls the lookback period for visual labels to maintain chart performance and reduce clutter.
Minimum Delta % to Show: A sensitivity filter. Higher values (e.g., 50%) will only show the most extreme volume events, while lower values (e.g., 10%) provide more frequent signals.
Show Spread (S): Toggles the visibility of the candle spread value within the labels.
HTF 1-4 Settings: Allows the user to define which timeframes the dashboard should track (e.g., 1H, 4H, Daily, Weekly).
Dashboard Position: Permits the user to move the table to different corners of the chart for better visibility.
🔍 Deconstruction of the Underlying Scientific and Academic Framework
• The Law of Effort vs. Result
Based on the principles established by Richard Wyckoff, this indicator quantifies "Effort" as Volume Delta and "Result" as Price Spread. In a balanced market, increased effort should lead to an equivalent result. When these two diverge (Anomalies), it suggests a change in market character.
• Auction Market Theory (AMT)
The indicator utilizes AMT principles by identifying areas of "High Volume Nodes" (represented by S3/R3) where the market has found value or met significant opposition. The "Distance %" feature measures the market's deviation from these nodes, which often acts as a mean-reversion catalyst.
• Order Flow Imbalance
While traditional indicators use price as a lagging derivative, the Delta Absorption Scanner attempts to lead price by observing the imbalance between aggressive market participants. By isolating the delta within each bar, the script identifies where one side of the "Auction" is becoming exhausted.
• Statistical Significance of Spread
The inclusion of spread analysis is rooted in statistical volatility measurements. A narrow spread during high volume indicates a high density of limit orders (Liquidity), which is a precursor to price reversals or significant breakouts once the liquidity is exhausted.
• Multi-Timeframe Structuralism
The scanner's architecture is based on the theory that lower-timeframe "noise" is resolved by higher-timeframe "structure." By mapping FVGs and Swings across four dimensions, the script applies a fractal analysis to the current bar's delta events.
⚠️ Disclaimer
All provided scripts and indicators are strictly for educational exploration and must not be interpreted as financial advice or a recommendation to execute trades. I expressly disclaim all liability for any financial losses or damages that may result, directly or indirectly, from the reliance on or application of these tools. Market participation carries inherent risk where past performance never guarantees future returns, leaving all investment decisions and due diligence solely at your own discretion. Indicator

Ferrum Pressure Gauge [JOAT]Ferrum Pressure Gauge
Introduction
The Ferrum Pressure Gauge is an open-source composite momentum-volume oscillator that fuses three independent pressure measurements — volume-weighted momentum, price velocity with acceleration, and RSI-derived trend pressure — into a single index displayed in a separate pane. The index is paired with a signal (resonance) line, and the space between them is filled with an 8-layer gradient that visually communicates momentum intensity at a glance. Dynamic non-repainting zones adapt to recent range, divergence detection identifies price-vs-index fractures, and a precursor engine spots early reversal conditions before the main index confirms them.
Most momentum oscillators measure a single dimension — either price momentum or volume momentum, but rarely both in a unified way. FPG addresses this by weighting price changes by volume activity through a logarithmic volume impact function, then combining that with velocity, acceleration, and RSI into a composite reading. The result is an oscillator that responds to both the speed and the conviction behind price moves.
Core Engine: Fusion Reactor
The composite index is built from three sub-components:
1. Volume-Weighted Momentum (Net Flow)
Price changes are scaled by a logarithmic volume impact function that amplifies moves occurring on above-average volume while dampening moves on thin volume:
float vRatio = ta.sma(volume, 3) / ta.sma(volume, volPeriod)
float vwMom = pChange * math.log(1 + vRatio * volSens)
The logarithmic scaling prevents extreme volume spikes from producing absurdly large momentum readings while still giving meaningful weight to elevated volume. Fast and slow EMAs of this volume-weighted momentum produce a dual-speed flow, and their difference (smoothed) becomes the Net Flow component.
2. Price Velocity and Acceleration
Velocity measures the average price change per bar over the fast period. Acceleration is the change in velocity — it detects whether momentum is building or fading. These are combined with the volume ratio and scaled to produce the Flow Strength component.
3. RSI Trend Pressure
RSI is centered around zero (RSI - 50) and smoothed, providing a bounded measure of trend pressure that complements the unbounded volume-weighted components.
The three components are averaged and passed through a final WMA smoothing pass to produce the Pressure Index. A separate EMA of the index produces the Resonance (signal) line.
8-Layer Gradient Fill
The space between the Pressure Index and the Resonance Line is divided into 8 equal segments, each filled with progressively increasing transparency. This creates a smooth gradient that is dense and vivid when momentum is strong (large gap between index and signal) and thin and faded when momentum is weak. The gradient direction and color shift based on whether the index is positive or negative and whether it is in the upper or lower crucible zone.
Dynamic Crucible Boundaries (Non-Repainting Zones)
Rather than using fixed overbought/oversold levels, FPG calculates dynamic zones based on the recent range of the index:
float rHi = ta.highest(idx, zoneLen)
float rLo = ta.lowest(idx, zoneLen)
float volF = (rHi - rLo) / 2
float upperZ = math.min(60, 30 + volF * 0.3)
float lowerZ = math.max(-60, -30 - volF * 0.3)
The offset on highest/lowest ensures these zones never repaint. They widen during volatile periods and tighten during calm ones, adapting the overbought/oversold thresholds to current market conditions rather than using arbitrary fixed levels.
Volume Climax (Surge Detection)
The indicator percentile-ranks current volume against a configurable lookback (default 100 bars). When volume exceeds the 90th percentile, a surge is detected. The edge-triggered SURGE label fires only on the first bar of the spike, marking potential climax events where institutional-scale volume enters the market.
Exhaustion Index (Fatigue Meter)
When the Pressure Index dwells in an extreme zone (above upper or below lower boundary), a fatigue counter increments each bar. The fatigue percentage rises linearly toward 100% over a configurable horizon (default 20 bars). Fatigue is classified as NONE, MILD, BUILDING, or CRITICAL. Critical fatigue warns that momentum has been stretched for an extended period and reversal probability is elevated.
Fracture Detection (Divergence)
The indicator detects classic divergences between price and the Pressure Index:
Bullish Fracture: Price is falling (making lower lows) while the Pressure Index is rising — hidden buying pressure beneath falling prices.
Bearish Fracture: Price is rising (making higher highs) while the Pressure Index is falling — hidden selling pressure beneath rising prices.
Fracture signals are confirmed-bar only and placed outside the crucible boundaries to avoid overlapping with the main index plot.
Precursor Engine (Early Reversal Detection)
The precursor engine identifies conditions where the fast and slow flow lines cross while the main index is on the opposite side of zero:
IGNITION (Bullish Precursor): Fast flow crosses above slow flow while the Pressure Index is still negative — early bullish momentum building before the index turns positive.
QUENCH (Bearish Precursor): Fast flow crosses below slow flow while the Pressure Index is still positive — early bearish momentum building before the index turns negative.
These signals often lead the main index crossover by several bars, providing an early warning system.
Command Panel (Dashboard)
A 9-row monospace dashboard displays:
PRESSURE: Current Pressure Index value with color reflecting zone position
RESONANCE: Current signal line value
FLOW: Net flow delta (fast minus slow) — the raw momentum differential
FLUX: Volume ratio (short/long SMA) — values above 1.2 indicate elevated activity
CRUCIBLE: Current dynamic upper and lower zone boundaries
SURGE: Whether volume is currently in a climax state (ACTIVE / QUIET)
FATIGUE: Exhaustion classification with percentage (NONE / MILD / BUILDING / CRITICAL)
DELTA: Histogram value (index minus signal) — positive = bullish momentum, negative = bearish
Input Parameters
Fusion Reactor:
Ignition Cycle: Fast EMA period (default 8)
Sustain Cycle: Slow EMA period (default 21)
Flux Epoch: Volume SMA lookback (default 14)
Flux Amplifier: Volume impact scaling (default 1.5)
Forge Smoothing / Temper Pass: Composite and final smoothing
Resonance Layer:
Resonance Period: Signal line EMA (default 12)
Crucible Boundaries: Toggle dynamic zones
Boundary Lookback: Zone calculation window (default 50)
Volume Climax:
Enable Surge Detection / Surge Percentile / Surge Lookback
Exhaustion Index:
Enable Fatigue Meter / Fatigue Horizon: Bars in extreme zone before max fatigue
Fracture Detection:
Show Fractures / Fracture Lookback: Divergence detection parameters
Precursor Engine:
Show Precursors: Toggle early reversal signals
How to Use This Indicator
Use the Pressure Index crossing above/below the Resonance Line as a momentum confirmation signal — similar to MACD crossovers but volume-weighted.
Watch for IGNITION/QUENCH precursor signals — they often lead the main crossover by several bars and can provide earlier entries.
FRACTURE (divergence) signals are among the most reliable warnings of trend exhaustion. A bullish fracture during a downtrend suggests hidden accumulation.
Monitor the Fatigue meter when the index is in an extreme zone. CRITICAL fatigue combined with a fracture signal is a high-probability reversal setup.
SURGE markers highlight institutional-scale volume events. A surge occurring at a crucible boundary often marks a climax reversal point.
The 8-layer gradient provides instant visual feedback — dense, vivid fills indicate strong momentum conviction; thin, faded fills indicate weakening momentum.
Limitations
Like all momentum oscillators, FPG is lagging — it confirms momentum after it has begun, not before.
Divergence (fracture) signals can persist for extended periods before price reverses. They indicate weakening momentum, not guaranteed reversals.
Precursor signals are early by design and therefore have a higher false-positive rate than confirmed crossover signals.
Volume-weighted calculations are less reliable on instruments with inconsistent or unreported volume data.
The Fatigue meter is a heuristic based on time-in-zone, not a statistical probability. Extended trends can maintain extreme readings longer than expected.
Dynamic zones adapt to recent range but may lag during sudden regime changes.
Originality Statement
This indicator is original in its composite fusion approach. While MACD, RSI, and volume analysis are established concepts individually, FPG is justified because:
The logarithmic volume-weighted momentum calculation provides a unique fusion of price change and volume conviction that differs from standard MACD or OBV approaches.
Three independent sub-components (volume-weighted flow, velocity/acceleration, RSI pressure) are composited into a single index, providing multi-dimensional momentum measurement.
The 8-layer gradient fill between index and signal line creates a visual momentum density map not found in standard oscillators.
Dynamic non-repainting crucible boundaries adapt overbought/oversold levels to current conditions rather than using fixed thresholds.
The Exhaustion Index tracks time-in-extreme-zone as a fatigue metric, adding a temporal dimension to momentum analysis.
The Precursor Engine identifies early flow crossovers while the main index is on the opposite side, providing leading signals ahead of the main crossover.
Volume Climax detection via percentile ranking integrates institutional-scale volume event identification directly into the oscillator.
Disclaimer
This indicator is provided for educational and informational purposes only. It is not financial advice. Momentum oscillators describe the current state of price momentum but do not predict future price direction. Overbought conditions can persist in strong trends, and oversold conditions can deepen in bear markets. Always use proper risk management and conduct your own analysis before making trading decisions. The author is not responsible for any losses incurred from using this tool.
-Made with passion by officialjackofalltrades
Indicator

Delta Pressure Index [JOAT]Delta Pressure Index
Introduction
The Delta Pressure Index is an advanced open-source volume analysis indicator that deconstructs order flow into actionable pressure metrics, combining volume delta estimation, absorption zone detection, smart money divergence analysis, and institutional order block identification. This indicator transforms raw volume data into a comprehensive pressure measurement system that reveals the true balance of power between buyers and sellers.
Unlike basic volume indicators that simply display volume bars, this system analyzes the internal structure of volume to identify buying and selling pressure, detect institutional absorption patterns, recognize smart money positioning through divergences, and map order blocks where large players have established positions. The indicator is designed for traders who understand that volume precedes price and that institutional footprints can be detected through systematic pressure analysis.
Why This Indicator Exists
This indicator addresses a critical gap in retail volume analysis: the ability to measure directional pressure and institutional activity in real-time. While exchange-provided volume data shows total activity, it doesn't reveal who is winning the battle between buyers and sellers. The Delta Pressure Index solves this by:
Volume Delta Estimation: Separates buying volume from selling volume using candle structure and wick analysis
Pressure Index Calculation: Normalizes delta to a -100 to +100 scale showing relative pressure strength
Absorption Zone Detection: Identifies when high volume produces minimal price movement, indicating institutional accumulation or distribution
Smart Money Divergence: Compares volume-weighted price to actual price to detect hidden institutional positioning
Order Block Mapping: Marks zones where institutional orders have been placed based on volume and price action patterns
Multi-Timeframe Pressure: Analyzes pressure alignment across multiple timeframes for conviction measurement
Cumulative Delta Tracking: Monitors net buying/selling pressure over time to identify accumulation and distribution phases
Each component provides unique intelligence about market microstructure. Delta estimation shows directional bias, pressure index quantifies strength, absorption detection reveals institutional activity, divergences expose hidden positioning, order blocks mark support/resistance zones, and cumulative delta tracks longer-term institutional flow.
Core Components Explained
1. Enhanced Volume Delta Estimation
The indicator uses advanced candle structure analysis to estimate buying and selling volume:
barRange = high - low
bodySize = math.abs(close - open)
wickUp = high - math.max(open, close)
wickDown = math.min(open, close) - low
buyVolume = close > open ?
volume * ((close - open + wickUp * 0.5) / barRange) :
close < open ?
volume * ((wickUp + bodySize * 0.3) / barRange) :
volume * 0.5
sellVolume = volume - buyVolume
delta = buyVolume - sellVolume
This calculation considers:
- Bullish candles (close > open): Majority of volume is buying, with upper wick getting 50% weight
- Bearish candles (close < open): Majority of volume is selling, with upper wick and 30% of body getting buying weight
- Doji candles (close = open): Volume split 50/50 between buying and selling
The wick weighting acknowledges that wicks represent rejected prices where one side overwhelmed the other, providing additional directional information beyond just the candle body.
2. Pressure Index Normalization
Raw delta values are normalized to create a pressure index ranging from -100 (extreme selling) to +100 (extreme buying):
pressureIndex = ta.sma(delta, deltaLength) / ta.sma(volume, deltaLength) * 100
This normalization divides smoothed delta by smoothed volume, creating a percentage that shows the proportion of volume favoring buyers vs sellers. The smoothing (default 14 periods) reduces noise while maintaining responsiveness to genuine pressure shifts.
The pressure index is further enhanced with volume-weighted calculations:
vwPressure = ta.vwma(pressureIndex, deltaLength)
Volume-weighted pressure gives more importance to high-volume bars, ensuring that pressure readings reflect periods of genuine institutional participation rather than low-volume noise.
3. Pressure Zone Classification
The indicator classifies pressure into seven distinct zones:
Extreme Buy (>70): Overwhelming buying pressure, potential exhaustion or continuation
Strong Buy (50-70): Significant buying dominance, healthy uptrend conditions
Moderate Buy (30-50): Mild buying bias, early trend development
Weak Buy (20-30): Slight buying edge, transitional conditions
Neutral (-20 to +20): Balanced conditions, no clear directional pressure
Weak Sell (-30 to -20): Slight selling edge, transitional conditions
Moderate Sell (-50 to -30): Mild selling bias, early downtrend development
Strong Sell (-70 to -50): Significant selling dominance, healthy downtrend conditions
Extreme Sell (<-70): Overwhelming selling pressure, potential exhaustion or continuation
These zones help traders quickly assess current pressure conditions and identify extreme readings that often precede reversals or accelerations.
4. Absorption Detection System
Absorption occurs when high volume produces minimal price movement, indicating that one side is absorbing the other's orders:
avgVolume = ta.sma(volume, 20)
avgRange = ta.sma(barRange, 20)
volumeRatio = volume / avgVolume
rangeRatio = barRange / avgRange
absorption = volumeRatio > absorptionThreshold and rangeRatio < 0.5
The system identifies absorption when:
- Volume exceeds average by the threshold multiplier (default 2.5x)
- Price range is less than 50% of average range
Absorption is classified as:
- Buy Absorption: High volume + small range + positive delta = Institutional accumulation
- Sell Absorption: High volume + small range + negative delta = Institutional distribution
- Extreme Absorption: Absorption score exceeds 1.5x threshold = Major institutional activity
Absorption zones often mark significant support/resistance levels where institutions have established large positions.
5. Smart Money Divergence Analysis
The indicator compares volume-weighted average price (VWAP) to simple moving average to detect smart money positioning:
vwPrice = ta.vwma(close, 20)
actualPrice = ta.sma(close, 20)
smartMoneyDivergence = ((vwPrice - actualPrice) / actualPrice) * 100
When VWAP is significantly above SMA (>2%), it indicates that higher-volume bars occurred at higher prices, suggesting smart money accumulation. When VWAP is significantly below SMA (<-2%), it indicates higher-volume bars occurred at lower prices, suggesting smart money distribution.
Smart money signals are generated when:
- Bullish: Divergence >2%, price below VWAP, positive pressure = Accumulation opportunity
- Bearish: Divergence <-2%, price above VWAP, negative pressure = Distribution warning
6. Order Block Detection
Order blocks are identified using institutional footprint patterns:
bullishOB = close < open and close > open and volume > avgVolume * 1.2
bearishOB = close > open and close < open and volume > avgVolume * 1.2
Bullish order blocks occur when:
- Previous candle was bearish (close < open)
- Current candle is bullish (close > open)
- Volume exceeds average by 20%
This pattern suggests institutions placed buy orders in the previous bearish candle, which then fueled the bullish reversal. The zone between the previous candle's low and high becomes a potential support area.
Bearish order blocks follow the inverse logic, marking potential resistance zones where institutional sell orders were placed.
7. Cumulative Delta Tracking
The indicator maintains a running total of delta to track longer-term institutional positioning:
var float cumulativeDelta = 0
cumulativeDelta += delta
Rising cumulative delta indicates sustained buying pressure (accumulation phase). Falling cumulative delta indicates sustained selling pressure (distribution phase). The rate of change in cumulative delta shows acceleration or deceleration of institutional flow.
The indicator also tracks session cumulative delta that resets on trend changes, providing shorter-term context for intraday pressure analysis.
8. Delta Momentum and Acceleration
The indicator calculates momentum and acceleration metrics:
deltaMomentum = ta.roc(pressureIndex, 5)
deltaAcceleration = ta.roc(deltaMomentum, 3)
Delta momentum shows the rate of change in pressure, identifying when pressure is building or fading. Delta acceleration (second derivative) identifies inflection points where momentum is changing direction, often preceding major pressure shifts.
Positive acceleration with positive momentum suggests strengthening buying pressure. Negative acceleration with positive momentum warns that buying pressure is weakening, even if still positive.
9. Multi-Timeframe Pressure Analysis
The indicator requests pressure data from four higher timeframes (default: 5m, 15m, 60m, 240m):
htf1_pressure = request.security(syminfo.tickerid, htf1, pressureIndex, lookahead=barmerge.lookahead_off)
MTF confluence score is calculated by averaging the sign of pressure across all timeframes:
mtfConfluence = (math.sign(htf1_pressure) + math.sign(htf2_pressure) +
math.sign(htf3_pressure) + math.sign(htf4_pressure)) / 4 * 100
Confluence scores near +100 indicate all timeframes show buying pressure. Scores near -100 indicate all timeframes show selling pressure. Scores near 0 indicate mixed or transitional conditions across timeframes.
Visual Elements
Pressure Index Columns: Main histogram showing pressure index with gradient coloring from extreme sell (pink) to extreme buy (cyan)
Volume-Weighted Pressure Line: Yellow line overlay showing VWMA of pressure for trend identification
Pressure EMA Line: Cyan line showing smoothed pressure trend
Delta Momentum Histogram: Purple histogram showing rate of change in pressure
Reference Lines: Horizontal lines at 0, ±30, ±50, ±70 marking pressure zone boundaries
Divergence Labels: Text labels marking regular and hidden divergences between price and pressure
Smart Money Labels: Green labels marking accumulation/distribution signals
Absorption Markers: Cyan/red labels marking buy/sell absorption zones
Order Block Boxes: Orange boxes marking institutional order block zones on price chart
Extreme Pressure Labels: Small labels marking extreme buy/sell pressure conditions
Pressure Heatmap: Subtle background gradient showing pressure intensity
Comprehensive Dashboard: Real-time metrics table showing pressure, delta %, cumulative delta, zone, absorption, smart money, divergence, momentum, MTF confluence, and all key metrics
The dashboard displays 12+ key metrics with color-coded values and status indicators, providing complete pressure analysis at a glance.
Input Parameters
Core Settings:
Delta Length: Period for delta smoothing (5-100, default 14)
Smoothing Period: Additional smoothing for pressure index (1-20, default 3)
Volume MA Length: Period for volume average (5-100, default 20)
Absorption Threshold: Volume multiplier for absorption detection (1.0-5.0, default 2.5)
Multi-Timeframe:
Enable Multi-Timeframe Analysis: Toggle MTF pressure analysis (default enabled)
HTF 1/2/3/4: Four higher timeframe selections (default 5m, 15m, 60m, 240m)
Display Options:
Show Cumulative Delta: Toggle cumulative delta tracking (default enabled)
Show Absorption Zones: Toggle absorption detection markers (default enabled)
Show Divergences: Toggle divergence detection (default enabled)
Show Smart Money Signals: Toggle smart money analysis (default enabled)
Show Volume Profile: Toggle volume profile POC (default enabled)
Show Dashboard: Toggle metrics table (default enabled)
Show Pressure Heatmap: Toggle background gradient (default enabled)
Show Order Blocks: Toggle order block boxes (default enabled)
Colors:
All colors are fully customizable including buy pressure (neon cyan), sell pressure (neon pink), buy absorption (neon cyan), sell absorption (neon red), smart money (neon green), divergence (neon purple), and order blocks (sunset orange).
How to Use This Indicator
Step 1: Assess Current Pressure
Check the dashboard "Pressure" value and "Zone" classification. Extreme readings (>70 or <-70) often precede reversals or strong continuations. Strong readings (50-70 or -50 to -70) indicate healthy trend conditions.
Step 2: Monitor Delta Percentage
Review "Delta %" showing the proportion of volume favoring buyers vs sellers. Values above 50% indicate buying dominance, below -50% indicate selling dominance. This provides confirmation of pressure index readings.
Step 3: Track Cumulative Delta
Observe "Cum Delta" to identify longer-term institutional positioning. Rising cumulative delta during pullbacks suggests accumulation. Falling cumulative delta during rallies warns of distribution.
Step 4: Identify Absorption Zones
Watch for absorption labels and check dashboard "Absorption" status. Buy absorption near support levels suggests institutional accumulation. Sell absorption near resistance suggests institutional distribution. These zones often become significant support/resistance.
Step 5: Detect Smart Money Divergence
Monitor smart money labels and dashboard status. Accumulation signals during downtrends suggest smart money is buying weakness. Distribution signals during uptrends warn that smart money is selling strength.
Step 6: Analyze Divergences
Look for divergence labels where price makes new highs/lows but pressure doesn't confirm. Regular divergences signal potential reversals. Hidden divergences suggest trend continuation after pullbacks.
Step 7: Map Order Blocks
Identify order block boxes on the price chart. These zones mark where institutions placed large orders. Price often respects these levels on retests, providing high-probability entry zones.
Step 8: Confirm with MTF Confluence
Check "MTF Confluence" in dashboard. High positive confluence (>75) confirms buying pressure across timeframes. High negative confluence (<-75) confirms selling pressure. Low confluence suggests mixed conditions.
Best Practices
Use on liquid instruments with reliable volume data for most accurate pressure readings
Extreme pressure readings (>70 or <-70) are most reliable when accompanied by volume surges
Absorption zones near key price levels offer highest-probability reversal setups
Smart money divergence signals work best when confirmed by order block formation
Cumulative delta diverging from price often precedes major reversals
Order blocks are most reliable when formed on high volume (>1.5x average)
MTF confluence above 75% or below -75% provides strong directional conviction
Delta momentum acceleration signals often precede pressure regime changes
Pressure heatmap intensity helps visualize pressure strength at a glance
Regular divergences are most reliable at extreme pressure levels
Hidden divergences work best in established trends as continuation signals
Combine pressure analysis with price action for optimal entry timing
Indicator Limitations
Volume delta estimation is approximate - true delta requires exchange order flow data
The indicator works best on instruments with consistent, reliable volume reporting
Low-volume instruments or off-market hours can produce unreliable pressure readings
Absorption detection requires sufficient volume history for accurate average calculations
Smart money divergence assumes VWAP represents institutional positioning, which is a simplification
Order block detection uses pattern recognition that may not capture all institutional activity
MTF analysis requires data availability on all selected timeframes
Cumulative delta can drift significantly over long periods without reset mechanisms
The indicator shows pressure dynamics but cannot predict how long pressure will persist
Extreme pressure can remain extreme longer than expected during strong trends
Divergences can persist for extended periods before price responds
Technical Implementation
Built with Pine Script v6 using:
Advanced volume delta estimation using candle structure and wick analysis
Normalized pressure index calculation with volume-weighted enhancement
Seven-zone pressure classification system
Absorption detection using volume ratio and range ratio analysis
Smart money divergence calculation comparing VWAP to SMA
Order block detection using institutional footprint patterns
Cumulative delta tracking with session reset capability
Delta momentum and acceleration calculations using rate-of-change
Multi-timeframe security requests with proper lookahead settings
Fractal-based divergence detection system
Dynamic color gradients based on pressure intensity
Comprehensive dashboard with 12+ metrics and color-coded indicators
Persistent label system to prevent chart clutter
Order block box management with automatic cleanup
The code is fully open-source with detailed comments explaining each pressure calculation and detection algorithm.
Originality Statement
This indicator is original in its comprehensive pressure analysis approach. While volume delta concepts are established, this indicator is justified because:
It combines volume delta estimation with absorption detection, smart money analysis, and order block mapping in a unified system
The enhanced delta calculation uses wick weighting to capture rejected price information
Seven-zone pressure classification provides granular pressure assessment beyond simple buy/sell
Absorption detection identifies institutional activity through volume-range relationship analysis
Smart money divergence reveals hidden positioning through VWAP-SMA comparison
Order block detection maps institutional zones using volume-confirmed reversal patterns
Multi-timeframe confluence scoring validates pressure across temporal dimensions
Delta momentum and acceleration tracking provides early warning of pressure shifts
The comprehensive dashboard synthesizes 12+ distinct metrics into unified pressure intelligence
Integration of cumulative delta, absorption, divergence, and order blocks creates layered confirmation
Each component contributes unique intelligence: delta shows directional bias, pressure index quantifies strength, absorption reveals institutional activity, divergences expose hidden positioning, order blocks mark key zones, MTF confluence validates conviction, and momentum tracks acceleration. The indicator's value lies in combining these complementary perspectives into a cohesive pressure analysis system.
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 and is not suitable for all investors.
Volume pressure analysis is a tool for understanding order flow dynamics, not a crystal ball for predicting future price movement. Extreme pressure readings do not guarantee reversals. Absorption zones do not guarantee support/resistance. Past pressure patterns do not guarantee future pressure patterns. Market conditions change, and strategies that worked historically may not work in the future.
The metrics displayed are mathematical calculations based on current market data, not predictions of future price movement. Pressure readings, divergences, absorption zones, and order blocks do not guarantee profitable trades. Users must conduct their own analysis and risk assessment before making trading decisions.
Always use proper risk management, including stop losses and position sizing appropriate for your account size and risk tolerance. Never risk more than you can afford to lose. Consider consulting with a qualified financial advisor before making investment decisions.
The author is not responsible for any losses incurred from using this indicator. Users assume full responsibility for all trading decisions made using this tool.
-Made with passion by officialjackofalltrades Indicator
