VOLD Ratio (Volume Difference Ratio) by TenozenAnother helpful indicator is here! VOLD Ratio is calculated by the net volume of a buying candle, divided by the net volume of a sell candle.
Formula:
buying net volume/selling net volume
It's a simple indicator, but don't underestimate this simplicity. It's a powerful indicator that would help you to decide whether the volume is getting interested in the direction that the market would take. So assume when the market is above the Bollinger Bands, it means that the volume is at a buying extreme, by that, we could expect the market to get back towards the mean, as there is a lot of buying demand that entered the market. How about below the Bollinger Bands? it means that the volume is at a selling extreme, we could expect that there is a lot of volume getting in toward the sellers, so we could take advantage of the opportunity to go for a long. Lastly, the Bollinger Bands would help you guys to determine the liquidity of the market, if the Bollinger Bands get smaller over time, it means there is no interest for the market to enter yet, and if the Bollinger Bands get bigger over time, it means there is interest for the market to enter in the session.
Tips & Reminder:
- We shouldn't use this indicator by itself, make sure to use an Indicator that would help you guys to determine the momentum and the liquidity of the market.
- The higher the timeframe, the slower this indicator would signal an entry, by that use a smaller timeframe... I suggest using a 15M chart for the execution.
- Always trade in the medium-longterm direction if you want to have a high probability trade.
- Be patient in your execution, it's more likely the market would go higher or lower after going in the extreme of the Bollinger Bands.
Well, that's it! Hope you guys enjoy using this indicator, let me know if there is any question or suggestion. Ciao...
Search in scripts for "liquidity"
New York ZonesHello traders, here is a indicator which is based on a strategy I found on a forum. I hope you will find it useful.
Rules to Follow:
1) Wait for signal . Signal appears at 9:30. (New York time)
2) Wait for price to mitigate the zone
3) Sell anywhere in this range after or during zone mitigation.
4) Keep stop Wide to avoid getting stopped out.
5) Target the previous liquidity with minimum 3RR.
6) Look for opposite trade if zone fails to hold , with proper analysis
Note :
1) This Indicator is made specifically for US30 and US100 (Indices) but can be used with other pairs as well (need back testing)
2) I would not recommend to place the trade right away as soon as signal appears , wait for liquidity to be taken out and place a trade after confirmation.
3) Trades can be placed below the zone as well but the probability of entry may decrease ,while increasing the accuracy.
4) Use timeframe <= 5 min to take entries.
Trade scenarios
Perfect trade :
Price failed to hold, you got stopped out and market changes direction :
Price respect zone in future:
Simulated Liquidations V1.0 [CE]Simulated Liquidations is an custom calculation done on crypto symbols to bring liquidation data that is not available directly,
using a denomination of time/oi/volume/location the indicator aims to calculate accurately shaped zones for where liquidations are occurring.
Using the indicator can be useful to determine where moves may continue e.g. short side liquidations leading to short covering increasing the buying pressure.
In areas where traders may see buying demand + short covering this can lead to a "squeeze" and continued upward momentum.
Additionally we can use the liquidations in reversion strategies as well, as liquidations are sort after, when liquidity is then taken, we can see this as an opportunity to play reversion
with the necessary liquidity being "hunted" and no longer a magnet for price to revisit therefore price can then return to the mean.
The indicator also has 2 available modes, relative liquidations/normal.
The relative mode can be seen above which will make liquidations more visible when larger/significant, as well as highlight the liquidations when hitting extreme thresholds.
Below is an example with relative mode off.
To Do:
Add Custom Alerts
Add User Customizable Relative zones
User customizable relative zones will be added soon, this will allow users to determine the thresholds for highlighting relative zones.
A screenshot of another chart is shown on the indicator, this is to highlight its accuracy in simulating liquidations.
Global Net Liquidity - Dow Jones Global Fair ValueThis is similar to Global Net Liquidity - SPX Fair Value except it's for Dow Jones Global (symbol: W1DOW here on TradingView).
This is experimental and may change at any time.
OI liquidity mapThe start of a liquidity heatmap
Data
Binance open interest
Open Interest the right way
When the open interest increases both new short and new long are opened.
Tradingview data is very limited. It is an approximation
How it works
if the open interest increases more than OI volume trigger (eg. 5 millions on the 5 minutes timeframe), we are creating a box.
The gradient of the box changes when there is multiple opening in the same price area.
Snipper
Boxes are for the candles.
The lines are for the new long and short open in a minute timeframe.
They are more precise and liquidity hunt happens often but there is a limitation on the number displayed.
Fed LiquidityFed liquidity model based on #MaxJAnderson's work. Incorporates the Treasury General Account, Reverse Repo and Fed balance sheet to determine how much "net liquidity" is available to markets. Very much a beta version.
Futures Exchange Sessions 2.0Description
Successor to Futures Exchange Sessions indicator. Completely rebuilt code from the ground up. Every feature has been redesigned and refactored to be the most beneficial while allowing for complete configuration by the user.
This indicator displays Futures Sessions as live boxes that expand dynamically as price moves over the time interval. These boxes make liquidity levels extremely easy to spot and visualize. It helps the user identify market structure and develop their own bias of price action. Everything about the Session boxes can be configured. Box color, border color, border style, and border width are all individually controllable. Each Future Session can be turned on or off at any time. Also, each box has their own text label (Asian Session, London Session, New York Session) and this text can be moved around the box, change color, and change size.
Previous days highs and lows (major liquidity levels) are always important to the futures trader. This indicator now allows the user to individually display the three previous days highs and low levels as lines with optional label. Each line can be independently toggled on or off and like always, every conceivable customization option is available to the user. And the labels can be moved to the right (via the Input Settings) to allow unobstructed views of candles.
The midnight EST open and 8:30 AM EST open horizontal lines (developed by the Inner Circle Trader) are returning in this indicator. But the biggest improvement is that the lines stop at the current bar or the last bar of the trading day. Additionally, the time lines are displayed on previous days so the user can easily see how the candles reacted to these important times of the day.
The Session boxes and the horizontal time lines now can be set to only display a certain number of day back. If the user wants just to see Session boxes for the previous day only, they can do that. If the user wants to see the last 15 days of boxes or lines it is very easy to increase the days back in the settings. Currently, the max days back is 80 calendar days.
Additional Images
Easily visualize and understand price action across time
Everything is customizable so the user can easily match this indicator to their color preferences
Special Notes
To turn off box session text set opacity to 0%
Boxes and horizontal time lines only display when timeframe is <= 30 minute
[A618] Liquidity Levels Based OBV SR with KAMAWe all know OBV plays a very important role in figuring out price volume divergences and it can help anyone analyse the directivity force of the market and has a very good tradeoff if applied correctly
In this Experiment i have derived liquidity levels for OBV using volume jumps inside the market
A volume jump is classified as:
Good Volume Jump = 1.618 times the Average Volume (WMA or 2pole ButterWorth's Filter of Volume)
Great Volume Jump = 2 times the Average Volume (WMA or 2pole ButterWorth's Filter of Volume)
Extreme Volume Jump = 3 times the Average Volume (WMA or 2pole ButterWorth's Filter of Volume)
So the horizontal levels which you see on the indicator (colored in red/ blue / gray lines) are the derived Liquidity Levels for OBV in the Market, these are the levels where OBV is most likely to perform a movement or come back
Also I have applied KAMA indicator on top of OBV for better Directive guidance, as of my experiments KAMA seems to be most stable and consistence of all the other moving averages,
KAMA's Length inculde:
KAMA - 8
KAMA - 34
KAMA - 200
Hope this Script help you guys!
Thanks to Tradingview for providing such an awesome platform
##Note for Credits ::
The Ehlers 2 pole butterworth Filter function is derived from @cheatcountry script ()
phoenix liquidity candle Ema V.1.1This indicator is designed to identify session-based range boxes across different trading sessions, helping traders clearly visualize market structure and consolidation zones during active market hours.
The script automatically detects price ranges within each session, allowing traders to understand where liquidity is building and where potential breakouts or rejections may occur.
Additionally, the indicator includes EMA 9 and EMA 11, providing short-term trend guidance and momentum confirmation when price interacts with session ranges.
Key Features:
• Automatic Session Range Box detection
• Clear visualization of session highs and lows
• Integrated EMA 9 & EMA 11
• Useful for scalping, intraday, and session-based strategies
• Designed for clean charts and decision support (not signal-based)
This tool is intended to assist traders in understanding market behavior during sessions, not to provide buy or sell signals.
Dark Pool Pulse - Volume Pressure OscillatorDark Pool Pulse – Volume Pressure Oscillator
Description
OVERVIEW
Dark Pool Pulse is a protected technical analysis oscillator designed to visualize changes in directional volume pressure over time. The indicator transforms cumulative buying and selling activity into a normalized oscillator to help traders contextualize periods of relative market stability versus expansion.
The script is intended as a market condition visualization tool, not a signal generator.
CORE CONCEPT
The indicator evaluates the balance between buying and selling volume by tracking cumulative directional pressure. This pressure is used as a proxy for broader liquidity behavior, allowing traders to assess whether price action is occurring in a relatively stable environment or during periods of accelerating participation.
Rather than focusing on individual candles, the oscillator emphasizes persistence of volume imbalance across a rolling window.
CALCULATION FRAMEWORK
Directional Volume Pressure
The script measures the difference between buying and selling volume on each bar and accumulates this value over time to form a Net Pressure series.
Normalization Process
To make pressure comparable across symbols and timeframes, the cumulative series is normalized using a dynamic lookback window. This process scales the output to a bounded range between 0 and 100.
Oscillator Construction
The normalized pressure value is plotted as a single oscillator, allowing traders to observe shifts in participation intensity rather than raw volume magnitude.
INTERPRETING THE OSCILLATOR
60–100: Relative Stability
Indicates sustained volume balance and slower pressure changes, often associated with consolidation or mean-reverting conditions.
0–40: Relative Expansion
Indicates persistent directional pressure, often associated with momentum-driven or higher-volatility environments.
These zones are contextual references, not predictive thresholds.
DESIGN INTENT & LIMITATIONS
Dark Pool Pulse does not identify specific participants, venues, or transactions. It does not measure actual dark pool activity and should not be interpreted as such. All calculations are derived solely from publicly available price and volume data.
The script does not generate trade signals, alerts, or execution guidance.
SOURCE & DISCLAIMER
Published as a protected script to preserve the specific normalization techniques used in the pressure calculations.
This indicator is provided for educational and analytical purposes only and should be used alongside other forms of technical analysis.
Key High/Low liquidity @sheershThe Key High/Low ICT by @sheersh169sharma indicator is designed to identify key liquidity levels across multiple timeframes and custom trading sessions. It provides precise visualization of historical highs and lows to assist in technical analysis.
## Key Features
* Multi-Timeframe Support: Automatically plots Previous Day, Week, 4-Hour, and 1-Hour levels.
* Custom Sessions: Supports up to 6 independently configurable time windows.
* Precise Anchoring: Lines originate exactly from the time the high or low formed.
* Mitigation Logic: Options to terminate lines upon price interaction or extend them indefinitely.
## Configuration Guide
### Standard Timeframes
Users can toggle and customize the following levels:
* Previous Day High/Low
* Previous Week High/Low
* Previous 4-Hour High/Low
* Previous 1-Hour High/Low
Each level allows for customization of visibility, color, and line style (Solid, Dashed, Dotted).
### Custom Sessions
The indicator supports 6 distinct custom sessions, ideal for defining specific market hours (e.g., Asia, London, New York).
Setup Instructions:
1. Navigate to the desired Session group in settings (e.g., Session 1).
2. Enable the session.
3. Define the time range in HHMM-HHMM format (e.g., 0930-1600).
4. Assign custom labels for identification.
5. Select line colors and styles.
### Extension Logic
The "Extend until Mitigated Only" setting controls how lines are drawn:
* Disabled (Default): Lines extend from the custom timeframe to the current chart bar.
* Enabled: Lines terminate strictly at the point where price touches the level.
### Visual Settings
* Line Width: Adjusts the thickness of all indicator lines globally.
* Labels: Text labels are positioned to the right of the lines to maintain chart clarity.
3SPC Three Candle Price Action Setup3SPC (Three Candle Price Action Setup) is an open-source indicator designed to detect
a simple and clearly defined three-candle price action pattern.
The logic is based on the following structure:
• The first two candles move in the same direction (bullish or bearish).
• The third candle interacts with the real bodies of both previous candles,
which may indicate a short-term liquidity sweep or price reaction.
• A bullish setup is confirmed when price holds above the open of the first candle.
• A bearish setup is confirmed when price holds below the open of the first candle.
This script does not use oscillators or lagging indicators.
It is intended as a visual aid for discretionary traders and should be used
together with market context, risk management and higher timeframe analysis.
The script is published as open-source for educational and transparency purposes.
UI Labels Translation:
- نمایش ستاپ صعودی: Show bullish setups
- نمایش ستاپ نزولی: Show bearish setups
Session Killzone & Liquidity Sweep Engine [2025]A session-based market analysis tool designed to visualize key intraday trading sessions and monitor price interaction with session highs and lows.
The script draws configurable session ranges (Asia, London, New York AM, Lunch, and PM) using session-based boxes. For each session, the high and low levels are calculated in real time and projected forward as reference levels.
Each session high and low reacts dynamically to price behavior:
• If price wicks beyond a session level without a candle close beyond it, the level is marked as a liquidity sweep and stops extending.
• If price closes beyond a session level, the level is considered invalidated and removed.
Optional midpoint levels can be displayed for each session. Users can choose whether levels extend only until mitigation or continue beyond it, as well as whether only the most recent session or all past sessions are tracked.
Additional features include:
• Timezone support with proper session alignment
• Session drawing limits to manage chart clutter
• Timeframe filtering to restrict drawings to lower timeframes
• Optional alerts when session highs or lows are broken by a candle close
• Extensive customization for colors, line styles, labels, and visibility
This tool is intended for traders who analyze intraday price behavior around session highs and lows and want a structured way to observe wick-based interactions and level invalidations.
ICT Macro Tracker - Study Version (Original by toodegrees)This indicator is a modified study version of the ICT Algorithmic Macro Tracker by toodegrees, based on the original open-source script available at The original indicator plots ICT Macro windows on the chart, corresponding to specific time [ periods when the Interbank Price Delivery Algorithm undergoes checks/instructions (aka "macros") for the price engine to reprice to an area of liquidity or inefficiency.
This study version adds functionality to hide bars outside macro periods. When enabled, the indicator draws boxes that cover the full chart height during non-macro periods, obscuring those bars so only macro periods are visible. This helps focus on macro-only price action. The feature is configurable, allowing users to enable or disable it and customize the box color. All original functionality remains intact.
online Moment-Based Adaptive Detection🙏🏻 oMBAD (online Moment-Based Adaptive Detection): adaptive anomaly || outlier || novelty detection, higher-order standardized moments; at O(1) time complexity
For TradingView users: this entity would truly unleash its true potential for you ‘only’ if you work with tick-based & seconds-based resolutions, otherwise I recommend to keep using original non-online MBAD . Otherwise it may only help with a much faster backtesting & strategy development processes.
...
Main features :
O(1) time complexity: the whole method works @ O(1) time complexity, it’s lighting fast and cheap
HFT-ready: frequency, amount and magnitude of data points are irrelevant
Axiomatic: no need to optimize or to provide arbitrary hyperparameters, adaptive thresholds are completely data-driven and based on combination of higher-order central moments
Accepts weights: the method can gain additional information by accepting weights (e.g. volume weighting)
Example use cases for high-frequency trading:
Ordeflow analysis: can be applied on non-aggregated flow of market orders to gauge its imbalance and momentum
Liquidity provision: can be applied to high-resolution || tick data to place and dynamically adjust prices of limit orders
ML-based signals: online estimates of higher-order central moments can be used as features & in further feature engineering for trading signal generation
Operation & control: can be applied on PnL stream of your strategy for immediate returns analysis and equity control
Abstract:
This method is the online version of originally O(n) MBAD (Moment-Based Adaptive Detection) . It uses higher-order central & standardized moments to naturally estimate data’s extremums using all data while not touching order-statistics (i.e. current min and max) at all. By the same principles it also estimates “ever-possible” values given the data-generating process stays the same.
This online version achieves reduced time complexity to O(1) by using weighted exponential smoothing, and in particular is based on Pebay et al (2008) work, which provides mathematically correct results for the moments, and is numerically stable, unlike the raw sum-based estimates of moments.
Additionally, I provide adjustments for non-continuous lattice geometry of orderbooks, and correct re-quantization math, allowing to artificially increase the native tick size.
The guidelines of how to adjust alpha (smoothing parameter of exponential smoothing) in order to completely match certain types of moving averages, or to minimize errors with ones when it’s impossible to match; are also provided.
Mathematical correctness of the realization was verified experimentally by observing the exact match with the original non-recursive MBAD in expanding window mode, and confirmed by 2 AI agents independently. Both weighted and non-weighted versions were tested successfully.
...
^^ On micro level with moving window size 1
^^ With artificial tick size increase, moving window size 64
^^ Expanding window mode anchored to session start
^^ Demonstrates numerical stability even on very large inputs
...
∞
Engulfing Failed Zone Detector by RWBTradeLabEngulfing Failed Zone Detector by RWBTradeLab
A clean, non-repainting tool that focuses on one thing only: showing where strong engulfing patterns failed and the market broke through their base.
What this indicator does
This script automatically scans for confirmed engulfing patterns (Regular & E-Regular) and then tracks where those structures are invalidated.
It highlights two types of failure zones:
1. Buy Engulfing Failed
* A bullish engulfing pattern forms (Regular or E-Regular).
* Later, a bearish candle closes below the base low of that engulfing.
* The zone from the base candle to the failure candle is marked as Buy EG Failed .
2. Sell Engulfing Failed
* A bearish engulfing pattern forms (Regular or E-Regular).
* Later, a bullish candle closes above the base high of that engulfing.
* The zone from the base candle to the failure candle is marked as Sell EG Failed .
Only the first clear failure after each engulfing is drawn, keeping the chart clean and readable.
Visuals on chart
1. A rectangle (box) is drawn from the engulfing base candle to the failure candle.
2. Labels are placed automatically:
* Buy EG Failed (below the zone)
* Sell EG Failed (above the zone)
3. Label distance from the zone is controlled by Text Offset from Box (%).
4. Separate color controls for:
* Buy Engulfing Failed Box Color
* Sell Engulfing Failed Box Color
The label style matches Engulfing Detector by RWBTradeLab for a consistent visual experience.
Alerts
Built-in alerts trigger only on confirmed bar close when a new failure completes:
* Buy EG Failed
* Sell EG Failed
Each alert message includes:
* Brand prefix: RWBTradeLab
* Price
* Time
* Ticker
Perfect for linking with bots, webhooks or alert-based trade management.
Key settings
Candle Length (closed candles)
* Defines how many recent confirmed candles are scanned (the live bar is excluded).
Display toggles
* Buy Engulfing Failed
* Sell Engulfing Failed
* Text
Turn each element ON/OFF to control how much information you want on the chart.
Text Offset from Box (%)
* Controls how far the label is placed from the failed zone, with a safe minimum to keep labels clear and readable.
Non-repainting confirmation
* All detection and alerts are based on closed candles only.
* No signals from the running candle, no repaint tricks.
* Once a failure zone appears, it stays fixed.
Best use
Failed engulfing zones can reveal:
* Broken demand/supply zones
* Liquidity grabs where “smart money” flushed traders out
* Strong momentum shifts after a failed reversal attempt
* Levels where continuation or clean retests often occur
Works on any symbol and timeframe. For best results, combine with:
* Higher timeframe structure
* Key support/resistance or supply/demand mapping
* Your own confirmation tools and risk management
Disclaimer
This indicator is a technical pattern-detection tool, not financial advice. Trading involves risk. Always confirm signals with your own analysis and use proper risk management.
Creator: RWBTradeLab
If this script adds value to your trading, please leave a ⭐ and share your feedback.
VCAI BOS-Zone PROVCAI BOS-Zone PRO is a structure-driven order-block mapper that tracks swing highs/lows, detects Break of Structure (BOS), and automatically draws clean bullish and bearish OB zones with midlines and directional flags.
It provides a clear, rules-based map of where structural shifts occurred and where price may react on future retests.
What it does:
Uses configurable swing pivots to define structure.
A bullish BOS is triggered when price closes above the last swing high;
a bearish BOS when price closes below the last swing low.
After each BOS, the script finds the last opposite candle (bearish before a bullish BOS, bullish before a bearish BOS) and builds an order-block zone from that candle’s high/low.
Each zone is projected a fixed number of bars into the future, keeping charts clean and preventing zones from extending into the price scale.
Only the latest N bullish and N bearish zones are kept, so the chart focuses on the most relevant active levels.
How to read it:
Yellow boxes + BULL flags = bullish demand zones.
Purple boxes + BEAR flags = bearish supply zones.
The edges of each zone act as potential support/resistance.
Reactions inside a yellow zone suggest buy-side interest;
rejection at a purple zone suggests sell-side pressure.
Optional midlines mark the 50% level of each zone, commonly used for refined entries, mitigations, and partial management.
How traders typically use it:
BOS-Zone PRO does not generate buy/sell alerts, but many traders use the zones as part of a broader decision process:
Bullish zones are often monitored for long setups when price returns and shows strength or continuation.
Bearish zones are often monitored for short setups when price retests and shows rejection or weakness.
Midlines provide refined entry levels with clearer invalidation points.
This tool is best used as structural context alongside your own entry model, risk settings, and trade management.
Notes & best practices:
BOS is directional, not predictive — treat zones as context, not guaranteed reversals.
Works on all symbols and timeframes.
Lower swing settings capture local structure; higher settings focus on major breaks and cleaner OB's.
Ideal as a structural map for discretionary traders or as a component inside automated systems.
Part of the VCAI toolset.
We develop a range of market-structure, volume, trend and liquidity tools designed to work together or stand alone.
Engulfing Overlap Zone Detector by RWBTradeLabEngulfing Overlap Zone Detector by RWBTradeLab
A focused, non-repainting tool that detects high-value “overlap zones” formed when one engulfing pattern fails and the opposite side immediately takes control.
What this indicator does
Instead of showing every engulfing pattern, this script filters out noise and highlights only Engulfing Overlap Zones:
1. It internally detects both:
* Regular Engulfing (R EG)
* E-Regular Engulfing (ER EG)
2. It then checks for engulfing failure:
* A Sell EG fails when a bullish candle closes above its base high.
* A Buy EG fails when a bearish candle closes below its base low.
3. After the failure, it looks for an opposite-side engulfing confirmation.
4. When the failed zone and the new opposite engulfing zone overlap, the script marks that region as a Buy EG Overlap or Sell EG Overlap zone.
Only these premium, overlap-based structures are shown on the chart.
Visuals on chart
1. Two stacked rectangles are drawn for each overlap setup:
* The failed engulfing zone
* The opposite confirming engulfing zone
2. Clean labels appear at the edge of the overlap:
* Buy EG Overlap (bullish zone)
* Sell EG Overlap (bearish zone)
3. Text distance from the zone is adjustable via Text Offset from Box (%).
4. Separate color controls for:
* Buy Engulfing Overlap Box
* Sell Engulfing Overlap Box
Alerts
Built-in alerts trigger only on confirmed bar close when a new overlap setup completes:
*Buy EG Overlap
*Sell EG Overlap
Each alert message includes price, time and ticker, prefixed with RWBTradeLab for easier filtering and automation.
Key settings
1. Candle Length (closed candles) – Defines how many recent confirmed candles are scanned (current bar is excluded).
2.Display toggles – Turn ON/OFF:
* Buy Engulfing Overlap
* Sell Engulfing Overlap
* Text labels
3. Text Offset from Box (%) – Controls how far the label is placed from the overlap zone, with a safe minimum to keep labels readable.
Non-repainting logic
* All calculations use closed candles only .
* No running-bar signals, no repaint tricks.
* The zones and alerts reflect stable, confirmed structures.
Best use
This indicator is designed to help you spot:
* Liquidity grabs and fake outs followed by real reversals
* Strong continuation zones after a failed attempt by the opposite side
* High-quality reaction areas for entries, pullbacks and retests
Works on any symbol or timeframe. For best results, combine with:
* Higher-timeframe market structure
* Key support/resistance or supply/demand zones
* Your own trade management and confirmation rules
Disclaimer
This script is a technical pattern-detection tool, not financial advice. Trading involves risk. Always use proper risk management and confirm signals with your own analysis.
Creator: RWBTradeLab
If this indicator helps your trading, please leave a ⭐ and share your feedback.
Stop Hunt / Liquidity Sweep Detector with Momentum Ratingdetects liquidity sweeps as they happen then gives you a rating on how much momentum the reversal has.
Volume Flow Anatomy [Kodexius]Volume Flow Anatomy is a dynamic, multi-dimensional volume map that reconstructs how buy, sell, and “stealth” activity is distributed across price rather than just across time. Instead of relying on a static, session-based volume profile, it uses an exponentially decaying memory of recent bars to build a constantly evolving “anatomy” of the auction, where each price level carries an adaptive history of order flow.
The script separates buy vs. sell pressure, adds a third “Stealth Flow” dimension for low-volume price movement (ease of movement / divergence), and automatically derives POC, Value Area, imbalances, absorption zones, and classic profile shapes (D, P, b, B). This gives the trader a compact but highly information-dense map on the right side of the chart to read control (buyers vs. sellers), structure (balanced vs. trending vs. double distribution), and key reaction levels (support/resistance born from flow, not just wicks).
🔹 Features
🔸 Dynamic Lookback with Decay
- The script computes an effective lookback N from the Decay Factor and caps it with Max Lookback.
- Higher decay keeps more history; lower decay emphasizes the most recent flow.
- The profile continuously adapts as new bars are printed.
🔸 Price-Bucketed Flow Map
Each bucket accumulates:
- Sell Flow (sell pressure)
- Buy Flow (buy pressure)
- Stealth Flow (low-volume price movement)
- Box width at each bucket is proportional to the relative intensity of that component.
🔸 Stealth Flow (Low-Volume Price Movement)
- Measures close to close movement relative to volume, emphasizing price movement that occurs on comparatively low volume.
- Helps reveal hidden participation, inefficient moves, and areas that may be vulnerable to re-tests or reversions.
🔸 POC & 70% Value Area (VA)
- Identifies the Point of Control (price bucket with the highest total volume) over the effective lookback.
- Builds a 70% Value Area by expanding from POC towards the nearest high volume neighbors until 70% of the total volume is included.
- POC is drawn as a line over the analyzed range; VA is displayed as a shaded band in the profile area.
🔸 Market Profile Shape Detection
Splits the profile vertically into three zones (bottom / middle / top) and compares their volume distribution.
Classifies structure as:
- D-Shape (Balanced)
- P-Shape (Short Covering)
- b-Shape (Long Liquidation)
- B-Shape (Double Distribution)
Displays a shape label with color coded bias for quick auction context interpretation.
🔸 Imbalance Zones & Absorption
Imbalance: detects buckets where Buy Flow or Sell Flow exceeds the opposite side by at least Imbalance Ratio.
Absorption: flags zones with high volume but low price “ease”, where price is not moving much despite significant volume.
Extends these levels into horizontal zones, marking potential support/resistance and trap areas.
Bullish Imbalance Zone :
Bearish Imbalance Zone :
Absorption Zone :
🔸 Range Context & On-Chart Legend
Draws a Range Box covering the dynamically determined lookback (N bars), with a label displaying the effective bar count.
A bottom-right legend summarizes:
- Color keys for Buy / Sell / Stealth
- POC / VA status
- Bullish vs. Bearish dominance percentage
- Profile shape classification
- Imbalance and Absorption conventions
🔹 Calculations
1. Dynamic Lookback & Price Buckets
int N = math.min(int(4 / (1 - decayFactor) - 1), maxHistory)
float priceHigh = ta.highest(high, N)
float priceLow = ta.lowest(low, N)
float bucketSize = (priceHigh - priceLow) / bucketCount
The effective lookback N is derived from the Decay Factor, using the approximation 4 / (1 - decay) to capture roughly 99% of the decayed influence, then capped with maxHistory to control performance. Over that adaptive range, the script finds the highest and lowest prices and divides the band into bucketCount equal slices (bucketSize). Each slice is a price bucket that will accumulate volume-flow information.
2. Exponentially Decayed Volume Allocation
addValue(array profile, float weight, float minPrice, float maxPrice) =>
for j = 0 to bucketCount - 1
float bucketMin = priceLow + j * bucketSize
float bucketMax = bucketMin + bucketSize
float overlapMin = math.max(minPrice, bucketMin)
float overlapMax = math.min(maxPrice, bucketMax)
float overlapRange = overlapMax - overlapMin
if overlapRange > 0
profile.set(j, profile.get(j) * decayFactor + weight * overlapRange)
This function is the core engine of the indicator. For a given price span and intensity, it checks every bucket for overlap, distributes the weight proportionally to the overlapping range, and before adding new value, decays the existing bucket content by decayFactor. This results in an exponentially weighted profile: recent activity dominates, while older levels retain a gradually fading footprint.
3. POC and 70% Value Area
array totalProfile = array.new(bucketCount, 0)
for j = 0 to bucketCount - 1
float total = sellProfile.get(j) + buyProfile.get(j)
totalProfile.set(j, total)
if total > eaMax
eaMax := total
int pocIdx = 0
float pocVal = 0.0
for j = 0 to bucketCount - 1
if totalProfile.get(j) > pocVal
pocVal := totalProfile.get(j)
pocIdx := j
float totalSum = totalProfile.sum()
float targetSum = totalSum * 0.70
int vaLow = pocIdx
int vaHigh = pocIdx
float currentSum = pocVal
while currentSum < targetSum and (vaLow > 0 or vaHigh < bucketCount - 1)
float lowVal = vaLow > 0 ? totalProfile.get(vaLow - 1) : 0.0
float highVal = vaHigh < bucketCount - 1 ? totalProfile.get(vaHigh + 1) : 0.0
First, totalProfile is built as the sum of buy and sell flow per bucket, and eaMax (the maximum total) is tracked for later normalization. The POC bucket (pocIdx) is simply the index with the highest totalProfile value.
To compute the 70% Value Area, the algorithm starts at the POC bucket and expands outward, each step adding either the upper or lower neighbor depending on which has more volume. This continues until the cumulative volume reaches 70% of totalSum. The result is a volume-driven VA, not necessarily symmetric around POC, which more accurately represents where the market has truly traded.
4. Market Profile Shape Classification
float volTopThird = 0.0
float volMidThird = 0.0
float volBotThird = 0.0
int thirdIdx = int(bucketCount / 3)
for j = 0 to bucketCount - 1
float val = totalProfile.get(j)
if j < thirdIdx
volBotThird += val
else if j < thirdIdx * 2
volMidThird += val
else
volTopThird += val
float totalVolShape = totalProfile.sum()
string shapeStr = "D-Shape (Balanced)"
if (volTopThird > totalVolShape * 0.20) and (volBotThird > totalVolShape * 0.20) and (volMidThird < totalVolShape * 0.50)
shapeStr := "B-Shape (Double Dist)"
else
if pocIdx > bucketCount * 0.5 and volTopThird > volBotThird * 1.3
shapeStr := "P-Shape (Short Covering)"
else if pocIdx < bucketCount * 0.5 and volBotThird > volTopThird * 1.3
shapeStr := "b-Shape (Long Liquidation)"
else
shapeStr := "D-Shape (Balanced)"
The profile is split into bottom, middle, and top thirds. The script compares how much volume is concentrated in each and combines that with the relative location of POC. If both extremes are heavy and the middle light, it labels a B-Shape (double distribution). If the POC is high and the top dominates the bottom, it’s a P-Shape (short covering). If the POC is low and the bottom dominates, it’s a b-Shape (long liquidation). Otherwise, it defaults to a D-Shape (balanced). This provides a quick, at-a-glance assessment of auction structure.
5. Imbalances, Absorption & Zones
bool isBuyImb = showImb and sVal > 0 and (bVal / sVal >= imbRatio)
bool isSellImb = showImb and bVal > 0 and (sVal / bVal >= imbRatio)
float volRatio = eaMax > 0 ? tVal / eaMax : 0
float stRatio = esmRange > 0 ? (stVal - esmMin) / esmRange : 1.0
bool isAbsorp = showAbsorp and volRatio > 0.6 and stRatio < 0.25
if showImbZone
if isSellImb
zoneBoxes.push(box.new(bar_index - N + 1, bucketHi, bar_index + 1, bucketLo, ...))
if isBuyImb
zoneBoxes.push(box.new(bar_index - N + 1, bucketHi, bar_index + 1, bucketLo, ...))
if isAbsorp
zoneBoxes.push(box.new(bar_index - N + 1, bucketHi, bar_index + 1, bucketLo, ...))
Imbalances are identified where one side’s volume (buy or sell) exceeds the other by at least Imbalance Ratio. These buckets are marked as buy or sell imbalance zones, indicating aggressive participation from one side.
Absorption is detected by combining a high volume ratio (volRatio) with a low normalized stealth ratio (stRatio). High volume with limited price movement suggests that opposing orders are absorbing flow at that level. Both imbalance and absorption buckets are extended into horizontal zones from the start of the lookback to the current bar, visually emphasizing key support/resistance and liquidity areas.
6. Building Buy, Sell & Stealth Profiles
sellProfile := array.new(bucketCount, 0)
buyProfile := array.new(bucketCount, 0)
stealthProfile := array.new(bucketCount, 0)
Three arrays are used to store Sell Flow, Buy Flow, and Stealth Flow. Bars are processed from oldest to newest so that decay is applied in correct chronological order. For each bar, a volume density (volume / range) is calculated and distributed across the candle range. Bull candles feed buyProfile, bear candles feed sellProfile.
Stealth Flow computes the close-to-close move between consecutive bars, scaled by 1 / (1 + volume). Big moves on low volume produce high stealth values, which are then allocated across the move’s price span into stealthProfile. This yields a three-layer profile per price level: directional volume and stealthy price movement.
Key Levels: Monday / Weekly / Monthly + Year/Quarter + LiquidityKey Levels: Monday / Weekly / Monthly / Year / Quarter + Liquidity






















