SMC EngineSMC Engine
Overview
SMC Engine is a market-context indicator designed to identify potential liquidity sweeps and directional pressure around a selected session range.
The indicator combines an open-based NY range, candle spread analysis, and lower-timeframe volume pressure to classify market conditions such as Stop Hunts, directional aggression, and breakouts.
The default session is 09:30–10:30 New York time, but the session and timezone can be adjusted from the settings.
Key Features
Open-based NY session range
Automatic range box visualization
Projected range levels after the session
Candle spread anomaly detection
Lower-timeframe volume pressure
Stop Hunt High detection
Stop Hunt Low detection
Bullish Aggression detection
Bearish Aggression detection
Breakout Up/Down classification
Real-time sentiment dashboard
How It Works
1. Open-Based NY Range
During the selected session, the indicator tracks the highest and lowest candle opening prices.
These levels form the open-based range used by the sentiment engine.
Note: This is an open-based range, not a conventional opening range calculated from candle highs and lows.
2. Spread Analysis
The indicator compares the current candle's spread (High - Low) with its average spread over the selected baseline period.
Default settings:
Spread Baseline: 50 bars
Spread Anomaly Multiplier: 2.0
When the current spread exceeds the baseline multiplied by the anomaly multiplier, it is classified as a spread anomaly.
3. Volume Pressure
The indicator uses lower-timeframe candle data to estimate directional volume pressure.
Lower-timeframe close > open → volume is counted as positive
Lower-timeframe close < open → volume is counted as negative
Lower-timeframe close = open → volume is ignored
The resulting value is used as a volume-pressure proxy.
This is not true bid/ask volume delta.
Sentiment Conditions
Stop Hunt High
A Stop Hunt High is identified when:
The candle has an unusually large spread
Price trades above the open-based range high
The candle closes back at or below that level
Lower-timeframe volume pressure is negative
The signal is displayed with an orange downward triangle.
This can be viewed as a potential bearish liquidity-sweep setup.
Stop Hunt Low
A Stop Hunt Low is identified when:
The candle has an unusually large spread
Price trades below the open-based range low
The candle closes back at or above that level
Lower-timeframe volume pressure is positive
The signal is displayed with an orange upward triangle.
This can be viewed as a potential bullish liquidity-sweep setup.
Bullish / Bearish Aggression
When a spread anomaly occurs without meeting the Stop Hunt conditions, the indicator evaluates candle direction and volume pressure to identify:
Bullish Aggression
Bearish Aggression
Air Pocket/Uncertain
Breakouts
When the spread is not classified as an anomaly, the indicator can identify:
Breakout Up
Breakout Down
These classifications are based on price closing beyond the open-based range together with corresponding volume pressure.
How to Use It
The indicator is primarily intended as a market-context and confirmation tool, rather than a standalone buy/sell system
A simple way to use the Stop Hunt signals is:
Bullish Setup
Stop Hunt Low → wait for confirmation → consider long
When an orange Stop Hunt Low appears, avoid entering immediately. Observe the following price action and look for bullish confirmation before considering a long trade.
Bearish Setup
Stop Hunt High → wait for confirmation → consider short
When an orange Stop Hunt High appears, avoid entering immediately. Observe the following price action and look for bearish confirmation before considering a short trade.
The Stop Hunt signal should therefore be treated as a setup/area of interest, not an automatic entry signal.
Traders can combine the signal with their own market structure, price action, risk management, and higher-timeframe analysis.
Dashboard
The dashboard displays:
VSA Price Spread — current candle spread in ticks
Baseline Spread — average spread used for anomaly detection
Volume Pressure — calculated lower-timeframe directional volume pressure
Current Sentiment — current classification produced by the engine
Recommended Usage
The default configuration is designed around using a lower timeframe for volume-pressure analysis, such as a 1-minute lower timeframe on a 5-minute chart.
The appropriate settings can vary by market, symbol, and timeframe, so traders should test the indicator under the conditions in which they intend to use it.
Important Limitations
The range is based on candle opens, not highs and lows.
Volume Pressure is a directional-volume proxy and should not be interpreted as true bid/ask delta.
A Stop Hunt signal does not guarantee a reversal or profitable trade.
Breakout classifications do not guarantee that a breakout will continue.
The indicator does not determine stop-loss placement, take-profit levels, or position sizing.
Market conditions, liquidity, and data-feed characteristics can affect the behavior of lower-timeframe calculations.
Traders should independently test and validate the indicator before using it in live trading.
SMC Engine is intended for market analysis and educational purposes and should be used together with appropriate risk management. インジケーター

Session block profileEvery part of the trading day has a personality. See yours in one table.
Description
Splits the trading session into fixed-length blocks and, for each block, keeps a rolling history of what that part of the day has done over the last N sessions. Three descriptive measures per block: how large its range tends to be relative to the average block, how much volume it tends to carry relative to the average block, and how directional it tends to be, measured as the average of the block's body over its range.
How it calculates
Each bar is assigned to a block from its minute of the day in the chosen time zone. A block's high, low, open, close, and volume accumulate on confirmed bars. When the first confirmed bar of a different block or a different day arrives, the completed block is written into its rolling history and that block's means are recomputed once. Range and volume indices are each block's mean divided by the average across all blocks with enough history, so 1.00 is an average block. Body ratio is the mean of |close - open| divided by (high - low) for the block, so 0 is a doji and 1 is a full-body bar.
How to read it
Range and volume shade toward green as they rise above the average block. Body shades toward amber as blocks become more directional. The current block's label is amber. Alternate blocks can be shaded on the chart so the grid is visible against price. This is a description of what each part of the day has tended to do. It is not a forecast.
Repainting
Closed blocks do not repaint. History is written only when a block completes. The current block is marked but its partial values are not shown as a statistic.
Originality and attribution
Session statistics by time of day are a familiar idea. What is original here is the block-keyed rolling history with cached per-block means, the three-measure normalization against the session's own average block, and the heat-table presentation. This is not derived from and does not reuse code from any existing published script.
Honest limitations
The session must start and end on the same calendar day in the chosen time zone. Sessions that cross midnight are not supported.
A partial first day in chart history contributes a partial block. The minimum-sessions setting exists to absorb that.
Half days, holidays, and early closes pollute a block's history for as many sessions as the lookback.
Range and volume are relative to the average block within this session window, so the indices are only comparable inside one configuration.
Body ratio is not a trend measure. A block can have a high body ratio and still be a small, meaningless move.
Nothing here is a signal. A high-range block is not a direction. インジケーター

Accumulation / Distribution Density (VD)A volume indicator for TradingView (Pine Script v6), modeled after Mieczyslaw Siudek's "Accumulation / Distribution Density" (VD) from xStation (XTB). It hunts for candles where a disproportionately large volume produced a disproportionately small price move at a fresh local extreme - a classic footprint of a big player building (accumulation) or unloading (distribution) a position.
█ 🧠 THE IDEA: DENSITY
Density = volume / candle range (high - low) - "how much turnover per unit of movement".
🚚 A lot of volume + a small candle = high density. Someone big is absorbing everything the market throws at them, so price cannot move.
🪶 A lot of volume + a big candle = normal. The volume simply traveled with the price.
normal candle density candle
volume: ██ 2K volume: ████████ 8K
range: │ (big) range: ▮ (small)
│
│ ▮ ← 8K went in, price barely moved:
│ ▲ someone ABSORBED it (marker)
When such a candle also sets a new local low , buyers were absorbing the sell-off → accumulation (marker below the candle). At a new local high , sellers were absorbing the buying → distribution (marker above the candle).
price
│ ▼ ← distribution: new high, huge volume, small candle
│ ┌──┸──┐
│ ─┘ └─┐
│ └──┐ ┌───
│ └─┐ ┌──┘
│ └─┰─┘
│ ▲ ← accumulation: new low, huge volume, small candle
└────────────────────────── time
█ ⚙️ SIGNAL CONDITIONS
A marker appears on a candle only when all of these hold:
📉 New extreme - the candle's low is at or below the lowest low of the previous Max/Min of candles (accumulation), or its high is at or above the highest high of those candles (distribution).
🚚 High density - volume / range >= Density Factor x average density .
🤏 Small candle (optional, Spread condition ) - range <= Spread Factor x average range .
🎯 Close position (optional, Bar close % ) - for accumulation the close must sit at least X% above the low; for distribution at least X% below the high. 0 disables the filter.
🔊 volume > 0 - instruments without volume data never signal.
Both averages (range and density) use a window ending at the previous candle - the signal candle does not inflate its own threshold.
By default the conditions are checked only once the candle closes ( Signal on closed candle only ) - a marker never appears and then disappears on the live candle.
█ 🛠️ PARAMETERS
Parameters (as in xStation)
Max/Min of (bars) (default 5) - how many previous candles the signal candle must out-low / out-high.
Average Spread of (bars) (default 5) - window for the average range.
Average Density of (bars) (default 5) - window for the average density.
Spread condition (default on) - toggle for the "candle must not be too big" filter.
Spread Factor (default 1.4) - how much larger than the average range the signal candle may be.
Density Factor (default 2) - how many times the average density the candle must reach.
Bar close (%) (default 0) - the close-position filter described above.
Signal on closed candle only (default on) - evaluate signals only when a candle closes (no repainting). Turn off to watch signals form in real time on the unclosed candle - such a signal may vanish before the close.
Appearance (Style tab)
Markers are plotshapes, so each signal gets its own row in the Style tab of the indicator settings - with a visibility checkbox, a marker-shape picker, a position dropdown ( Above bar / Below bar ), and a color:
Accumulation (default: triangle below the bar) ,
Distribution (default: triangle above the bar) .
█ 🔔 ALERTS
Accumulation density - potential bullish signal (heavy volume, little movement, new low).
Distribution density - potential bearish signal (heavy volume, little movement, new high).
With Signal on closed candle only on (default) alerts fire at the candle close. If you turn that option off, set the alert trigger to Once Per Bar Close - otherwise an alert can fire on a live-candle signal that later vanishes.
█ 📤 SIGNAL OUTPUT
The script exposes a hidden Signal series: +1 (accumulation), -1 (distribution), 0 (none). It is visible in the Data Window and can be used as an external source in other indicators and strategies (any input.source field) - e.g. to build your own strategy on top of these signals.
█ ✅ CORRECTNESS - VERIFIED
The implementation was verified empirically (2026-08-18): signals recomputed independently (Node.js, same formulas) from OHLCV bars pulled off a live TradingView chart (COMEX:GC1!, 60m, 300 bars) and compared with the markers the Pine script actually drew:
default parameters → 1 signal, exact match (and 299 bars correctly without a marker),
relaxed parameters (Max/Min 3, Spread Factor 2.5, Density Factor 1.2) → 63 signals, exact match , zero missing, zero extra.
The script does exactly what this note describes.
█ ⚠️ WHY MARKERS DIFFER FROM XSTATION
Even with identical parameter values, markers will not land 1:1 on xStation's. This is expected, not a bug:
📊 Different data. xStation runs on XTB's own CFD feed; its volume is XTB tick volume (count of price updates in XTB's book). TradingView shows real exchange volume (futures/stocks) or another provider's feed. Density = volume / range is extremely sensitive to both - different volume and different OHLC (session hours, timezone, weekend CFD candles) shift every threshold in the formula.
🔒 The original algorithm is closed source. XTB only published parameter descriptions, not formulas. Ambiguities the port had to decide (each can move single markers):
averages computed over the window ending at the previous candle (the original may include the signal candle),
new-extreme check uses <= / >= (the original may require a strict break),
a zero-range candle (doji) divides by one tick instead of being skipped,
"Bar close %" measured from the low (accumulation) / from the high (distribution).
⏳ Live-candle behavior. With Signal on closed candle only turned off, conditions are evaluated on live values, so a marker on an unclosed candle can disappear before the close. The default (on) evaluates only closed candles; xStation's behavior here is unknown.
Practical takeaway: compare the two on the same market data type (e.g. gold futures on both), expect agreement in character (markers cluster in the same spots), not in identical candles.
█ ⛔ LIMITATIONS
Requires an instrument with volume data - many TVC CFDs (TVC:GOLD, TVC:USOIL) have zero volume and never signal; the script then shows a warning in the top-right corner of the chart. Check per symbol (e.g. TVC:UKOIL does have volume) or use futures (e.g. COMEX:GC1!).
A signal on an unclosed candle may vanish before the close - only with Signal on closed candle only turned off (see above).
© Piotr Kowalski "piecioshka". License: Mozilla Public License 2.0.
インジケーター

EVA Ai + POC, Liquidity & Smart Money## Overview
**EVA Ai+ Volume Profile — POC, Value Area & Liquidity** is a market-structure and volume-distribution indicator designed to analyze where trading activity is concentrated across price.
Its primary purpose is to combine price-based Volume Profile information with confirmed liquidity structure in one analytical framework.
The script calculates a horizontal volume distribution, Point of Control (POC), Value Area, High-Volume Nodes (HVN), Low-Volume Nodes (LVN), directional volume estimates, and confirmed buy-side/sell-side liquidity pools.
These components are not intended to function as independent entry signals. They are combined to help answer a specific analytical question:
**Where is price currently being accepted, where is participation relatively low, and where does confirmed unswept liquidity remain in relation to that auction structure?**
The indicator does **not** generate automatic LONG or SHORT recommendations and does not execute trades.
---
## Purpose of the combined architecture
Volume Profile and liquidity analysis describe different aspects of market behavior.
Volume Profile measures how the available volume data is distributed across price.
Liquidity structure identifies confirmed areas around comparable swing highs and lows that have not yet been fully cleared according to the script's rules.
EVA combines these concepts because either one viewed in isolation can omit relevant context.
For example:
* POC and Value Area describe the center and boundaries of accepted value;
* HVNs identify local concentrations of calculated participation;
* LVNs identify comparatively low-volume regions;
* directional volume provides context about the composition of the calculated profile;
* confirmed BSL/SSL pools identify unresolved liquidity structures;
* distance and quality calculations place those structures in relation to current volatility and price.
The intended result is a single auction map showing **value, participation, low-volume structure, and confirmed liquidity context together**.
This interaction is the principal reason these components are included in one script.
---
## Volume Profile
The script distributes the available volume across horizontal price rows within the active calculation range.
The profile is intended to show where the selected market spent comparatively more or less trading activity.
### Point of Control — POC
POC is the price row containing the largest amount of calculated profile volume.
It represents the highest-volume row of the current profile calculation.
It should not be interpreted as an automatic support, resistance, entry, or reversal signal.
### Value Area
The Value Area contains the configured percentage of calculated profile volume surrounding the profile's primary volume concentration.
A commonly used setting is 70%.
The script displays:
* **VAH** — Value Area High;
* **VAL** — Value Area Low.
Price inside the Value Area indicates that it is trading within the profile's calculated value region.
Price above VAH or below VAL indicates that it is outside that region, but this condition alone does not imply continuation or reversal.
---
## HVN and LVN structure
### High-Volume Nodes — HVN
HVNs are local concentrations within the calculated profile where neighboring rows contain comparatively high volume.
They can be used to identify areas of previous acceptance or repeated participation.
Possible market behavior around an HVN can include rotation, consolidation, retesting, support/resistance behavior, or no meaningful reaction at all.
The script does not assume that an HVN must hold.
### Low-Volume Nodes — LVN
LVNs are local low-volume regions between areas of greater calculated participation.
They can highlight portions of the profile where historical acceptance was comparatively limited.
Price may sometimes traverse these areas more quickly, but an LVN does not guarantee acceleration or determine direction.
HVN and LVN structures remain components of the calculated profile and can change when the active profile range changes.
---
## Directional volume context
When lower-timeframe data is available, the script classifies lower-timeframe volume according to candle direction and aggregates that information into the profile.
The resulting values are displayed as:
* Up Volume;
* Down Volume;
* Delta.
**Delta in this indicator is the difference between the script's classified Up Volume and Down Volume.**
It is important to distinguish this from exchange-level bid/ask order-flow delta.
Pine Script does not provide the script with a complete historical exchange order book or universal historical bid/ask footprint data.
Therefore, EVA does not claim to reconstruct those datasets.
Directional volume is an approximation derived from the available lower-timeframe OHLCV data.
---
## BSL and SSL liquidity structure
The liquidity component identifies confirmed structures around comparable pivot highs and lows.
### BSL — Buy-Side Liquidity
BSL structures are created above qualifying comparable swing highs.
### SSL — Sell-Side Liquidity
SSL structures are created below qualifying comparable swing lows.
The script does not label every swing high or swing low as liquidity.
A liquidity structure requires multiple confirmed pivot observations that satisfy the script's similarity, spacing, volatility, and quality conditions.
This filtering is intended to reduce the number of insignificant structures displayed on the chart.
Liquidity terminology in this script represents a technical model based on price structure. It does not imply direct observation of hidden orders or stop orders in an exchange order book.
---
## Liquidity Quality
Each qualifying liquidity structure receives a quality value based on several measurable properties of the detected structure.
Depending on the active configuration, these properties include factors such as:
* relative volume;
* rejection characteristics;
* spacing between qualifying pivots;
* volatility-adjusted geometry.
The quality value is used for filtering and ranking detected structures.
It is a relative analytical score created by this script. It is **not a probability of a profitable trade or a prediction that a liquidity level will be reached or swept**.
---
## Liquidity states
Detected pools can move through several states.
### FRESH
The qualifying structure has been confirmed and has not yet met the script's test or sweep conditions.
### TESTED
Price has interacted with the structure according to the configured testing rules without completing the full sweep condition.
### OFF
The structure remains internally valid but falls outside the configured volatility-adjusted working radius and is therefore not displayed as an active nearby structure.
### SWEPT
Price has crossed the structure's defined far boundary.
Once this condition is confirmed, the corresponding active pool drawings are removed.
The state system prevents historical liquidity structures from remaining visually active after the script considers them resolved.
---
## Nearest structural references
The dashboard identifies nearby calculated structures such as:
* BSL;
* SSL;
* HVN;
* LVN.
Distances can be normalized using ATR so that the displayed distance is comparable across instruments with different nominal prices and volatility.
These values describe **location**, not trade expectancy.
A nearby BSL, SSL, HVN, or LVN should not be interpreted as a recommendation to enter a position.
---
## Profile modes
The script supports several ways to define the profile range.
### Visible Range
The profile is calculated from the chart region used by the script's visible-range logic.
Changing the visible chart area can therefore change the profile.
This behavior is intentional.
A Visible Range profile is dynamic and should not be interpreted as an immutable historical signal.
### Session
The profile is calculated using the selected session boundaries.
This mode can be used to examine session-specific POC, Value Area, and volume distribution.
### Fixed Range
The profile is calculated between user-defined time boundaries.
This mode can be used to inspect a specific impulse, consolidation, expansion, or other manually selected market segment.
---
## Adaptive configuration
The optional adaptive mode adjusts selected calculation parameters according to chart conditions.
Depending on configuration, this can include:
* lower-timeframe selection;
* profile row density;
* HVN/LVN sensitivity;
* pivot sensitivity;
* liquidity-zone width;
* minimum liquidity-quality threshold;
* volatility-adjusted display radius.
The purpose of this mode is to maintain usable analytical resolution across different chart timeframes and price scales.
Adaptive configuration does not optimize for future profitability and does not predict future market direction.
Users can disable adaptive behavior and use manual settings where required.
---
## Dashboard
The dashboard summarizes the current calculated state of the indicator.
Depending on the selected configuration, it can display:
### Auction
The location of current price relative to VAH, VAL, and the calculated Value Area.
### Range / Source
The active profile mode and the data source currently used by the calculation.
### Rows × Step
The effective number of price rows and the price increment represented by each row.
### Up / Down / Delta
The directional volume classification generated from the available data.
### POC / Distance
The current POC and price distance from it.
### Nearest BSL / SSL
The nearest qualifying liquidity structure together with distance, quality, and state.
### Nearest HVN / LVN
The nearest calculated high-volume and low-volume structures.
### Structure
A descriptive classification of the current volume distribution.
### Status
Information concerning the current calculation mode and available data.
The dashboard summarizes calculated information; it does not produce trading instructions.
---
## How to interpret the map
### Price inside Value Area
Price inside VAH and VAL is trading within the profile's calculated value region.
POC and HVNs can help locate concentrations of historical participation.
This does not necessarily imply a ranging market or predict that price will remain inside the Value Area.
### Price above VAH
Price above VAH is outside the upper boundary of the calculated Value Area.
Whether the move continues or returns into value depends on subsequent market behavior.
VAH alone is not a breakout confirmation.
### Price below VAL
Price below VAL is outside the lower boundary of the calculated Value Area.
VAL alone does not confirm bearish continuation.
### Interaction with an LVN
An LVN identifies a region of comparatively low calculated participation.
It can be used to observe how price behaves when entering a low-volume region, but it does not guarantee rapid movement through that area.
### Interaction with liquidity
When price reaches a BSL or SSL structure, users can observe whether the level remains active, becomes tested, or satisfies the script's sweep condition.
A sweep is a structural event only.
**A liquidity sweep does not by itself imply a reversal or continuation.**
---
## Data handling and confirmation
Where available, lower-timeframe OHLCV data is used to improve the allocation of volume within higher-timeframe chart candles.
When the requested lower-timeframe sample is unavailable or insufficient for the selected calculation, the script can use its documented fallback calculation instead of presenting an incomplete lower-timeframe profile as if it were complete.
Liquidity structures are based on confirmed pivot events.
Because a pivot requires subsequent bars for confirmation, a newly confirmed liquidity structure can appear later than the historical bar on which the pivot itself occurred.
The script does not interpret this confirmation delay as advance knowledge.
Developing profiles can change as additional data arrives.
Visible Range profiles can also change when the chart viewport changes.
These behaviors are inherent to dynamic profile calculations and should not be interpreted as historical trade signals being rewritten.
---
## Originality and design rationale
The script uses established analytical concepts such as Volume Profile, POC, Value Area, pivots, ATR normalization, and liquidity terminology.
It does not claim that those individual concepts are proprietary.
The distinctive functionality of this implementation is their integration into a unified state-based analytical system.
Instead of independently displaying several unrelated indicators, EVA:
1. builds a common price-row volume model;
2. derives POC and Value Area from that same distribution;
3. identifies local HVN/LVN structure within the profile;
4. estimates directional volume from lower-timeframe data where available;
5. independently confirms comparable pivot structures;
6. applies volatility-, geometry-, and participation-based filtering to those structures;
7. maintains lifecycle states for active liquidity pools;
8. relates nearby volume and liquidity structures to current price using a common dashboard and normalized distance model;
9. provides explicit fallback behavior when detailed source data is unavailable.
The purpose of the integration is to provide one coherent representation of **auction value, relative participation, low-volume structure, and unresolved price-based liquidity** rather than a collection of independent signals.
---
## Why the source code is protected
The source code is protected to preserve the implementation of the script's integrated profile construction, adaptive parameter logic, node-classification methods, liquidity-quality filtering, state transitions, data-fallback handling, and visualization architecture.
Closed-source visibility is not intended to prevent users from understanding the indicator's behavior.
This description therefore documents the script's purpose, inputs, main calculations, interpretation, data limitations, and expected dynamic behavior without exposing implementation-specific formulas and thresholds.
---
## Important limitations
Users should understand the following limitations before using the indicator:
* The script only has access to data supplied to Pine Script by TradingView and the active symbol's data provider.
* Volume characteristics differ between markets and symbols.
* On some Forex instruments, the available volume can represent tick volume rather than centralized exchange volume.
* The script does not have access to a complete historical exchange order book.
* It does not know the location of actual individual traders' stop orders.
* BSL and SSL are price-structure models, not observations of hidden orders.
* Directional volume is derived from available candle data and is not equivalent to true exchange bid/ask footprint delta.
* Confirmed pivots necessarily introduce confirmation delay.
* Visible Range calculations can change when the chart viewport changes.
* Developing profiles can change as new bars or intrabars become available.
* HVNs, LVNs, POC, VAH, VAL, BSL, and SSL do not predict future price behavior.
* No individual component should be interpreted as a guaranteed support, resistance, breakout, reversal, entry, or target.
* Different symbols, sessions, timeframes, and data feeds can produce materially different profile structures.
---
## Intended use
EVA is intended as a **market-reading and contextual-analysis tool**.
A typical workflow is:
1. identify the current Value Area and POC;
2. inspect the shape of the volume distribution;
3. locate nearby HVN and LVN structures;
4. identify confirmed active BSL and SSL structures;
5. compare those structures with current price and volatility;
6. observe subsequent price and volume behavior;
7. perform an independent trade and risk assessment.
The indicator deliberately does not convert this information into automatic LONG or SHORT instructions.
---
## Risk disclosure
This script is an analytical indicator and does not execute orders.
It does not provide financial advice, guarantee trading outcomes, or predict future market behavior.
Historical structures and previous market reactions do not establish how price will behave in the future.
Users remain responsible for independent analysis, position sizing, execution decisions, and risk management.
インジケーター

Precision Volume Profile [AxeAlgo]OVERVIEW
Precision Volume Profile is a native Pine Script volume
profile tool: it rebuilds a full price-by-volume histogram for whatever
range you anchor it to — the visible chart, a fixed bar count, the
current day, week, month, or a custom trading session — and derives the
Point of Control (POC), Value Area High/Low (VAH/VAL), a Prior Period
Value Area with open-type and POC-migration classification, and a
session VWAP with standard-deviation bands, all from the same underlying
bar history.
This is the classic Market Profile / Volume Profile toolkit used to
judge where the market has actually traded the most volume — not just
where price is right now — and how today's activity compares to the
period before it. Everything here runs natively on your own chart data;
there are no external requests, no repainting of confirmed history, and
no hidden calculations.
This script is free and open-source, published so the full methodology
described below is verifiable directly in the source code.
============================================================
HOW IT WORKS
============================================================
Volume Profile Histogram
----------------------------
For the selected range, price is divided into rows (automatically sized
to the range, or set manually) and every historical bar's volume is
distributed across the rows its high-low span touches. Each bar's
volume is split into an estimated buy side and sell side based on where
that bar's close sits between its low and high — a bar that closed near
its high is treated as more buy-weighted, one that closed near its low
as more sell-weighted. The row with the most total volume becomes the
POC; rows are colored on a gradient between two configurable colors
based on that estimated buy/sell split, with opacity scaled to each
row's relative strength versus the POC.
Value Area
----------------------------
The Value Area is expanded outward from the POC two rows at a time —
comparing the volume of the next pair of rows above versus the next
pair below and adding whichever pair holds more volume — until the
accumulated volume reaches the configured Value Area percentage (70% by
default, the standard Market Profile convention). This is the same
textbook two-row-pair expansion method used for both the live profile
and the Prior Period snapshot below, so the two stay directly
comparable.
Anchor Modes
----------------------------
Six ways to define what range the profile is built from: Visible Range
(whatever's currently on screen), Fixed Bars (a set lookback), Day,
Week, Month, or a fully custom Session (configurable start/end time and
timezone, e.g. 0930-1600 for US regular trading hours). A dotted
vertical line marks exactly where the current profile's lookback
begins whenever that boundary isn't simply the edge of your screen.
Prior Period Value Area, Open Type & POC Migration
----------------------------------------------------
At each period boundary (Day or Week, configurable), the script
snapshots the period that just closed: its Value Area is drawn as a
dashed box extending forward, today's open is classified as Above,
Below, or Inside that prior value, and the new POC is compared against
the previous one to report whether it's migrating up, down, or holding
flat. This is the standard "open-type" read used to gauge whether a
session is likely to be rotational or trending.
Session VWAP & Standard Deviation Bands
------------------------------------------
A running volume-weighted average price with up to two configurable
standard-deviation bands on each side, calculated with the same
volume-weighted variance formula as TradingView's own VWAP tool. It can
reset either at calendar midnight or at your custom session's open
time — the same session window used by the Session anchor mode above,
so the two can be kept in sync.
Stats Panel
----------------------------
An optional on-chart table summarizing the active anchor mode, bar/row
count, POC, VAH/VAL, Value Area width, estimated buy/sell split and
delta, total volume, open type, POC migration, and current VWAP —
everything the script computes, in one place, without needing to
hover over individual lines.
Alerts
----------------------------
Two alert conditions: price crossing the POC, and price entering or
exiting the Value Area.
============================================================
ACCURACY NOTE — HOW BUY/SELL VOLUME IS ESTIMATED
============================================================
Pine Script does not have access to real trade-by-trade tape or
bid/ask data on standard bars, so no volume profile indicator can
measure "true" buy versus sell volume directly. This script — like
essentially every volume profile tool on TradingView — estimates it
from each bar's own OHLC: where the close sits between the low and the
high. This is a widely used, reasonable proxy, but it is an estimate,
not measured order flow. Treat the buy/sell split and Delta reading as
directional context, not a precise execution metric.
============================================================
HOW TO USE IT
============================================================
Add the indicator, pick an Anchor mode that matches how you trade
(Visible Range for manual exploration, Day/Week/Session for a
consistent recurring reference), and set the Value Area percentage if
you want something other than the 70% default. Every input has an
in-editor tooltip explaining exactly what it changes. The Prior Period
panel rows (Open Type, POC Migration) are most useful checked once at
the start of a session; the POC/VAH/VAL lines and histogram are
intended as a persistent reference for the rest of the period.
============================================================
REPAINTING & REAL-TIME BEHAVIOR
============================================================
The profile, its lines, and the stats panel are only (re)computed on
the most recent bar (barstate.islast) — not on every historical bar —
for performance, and are cleared and redrawn from scratch each time
they update. In Visible Range or Fixed Bars mode this means the profile
legitimately changes as you scroll, zoom, or as new bars form — that's
the tool responding to a different input range, not repainting of a
fixed historical value. In Day/Week/Month/Session mode, once a period
has closed its POC, VAH, and VAL are fixed and do not change on
subsequent reloads; only the currently forming period's profile updates
live as new bars print. The Prior Period Value Area snapshot is
computed once, at the moment its period closes, and is never
recalculated afterward.
============================================================
LIMITATIONS — PLEASE READ
============================================================
- Buy/sell volume is an OHLC-based estimate, not real tape data (see
the Accuracy Note above).
- The Value Area expansion is a discrete two-row-pair algorithm; on
very coarse row counts it can land a percentage point or two away
from the exact target rather than hitting it precisely.
- "Max Bars Stored" caps how much history is kept in memory for
performance; extremely long Fixed Bars or Visible Range lookbacks on
very low timeframes can exceed it and get truncated.
- The custom Session anchor and VWAP session-open reset depend on the
Session Time and Timezone inputs actually matching your instrument's
real trading session — mismatched inputs will produce a
technically-correct but practically meaningless boundary.
- This is a discretionary analysis tool intended to support your own
read of the market, not a mechanical, guaranteed-signal system.
============================================================
RISK DISCLAIMER
============================================================
This script is provided for educational and informational purposes
only. It is not financial advice, and it is not a recommendation to buy
or sell any security or instrument. Trading and investing involve
substantial risk of loss and are not suitable for every investor. Past
performance is not indicative of future results. Always do your own
research and consider consulting a licensed financial advisor before
making trading decisions. Use this indicator, and any alerts it
generates, entirely at your own risk.
============================================================
ORIGINALITY
============================================================
This is original work: the row-building and Value Area expansion
algorithms, the Prior Period snapshot and open-type/migration logic,
the session-anchor handling, and the visual design are all written
from scratch for this script. It is published free and open-source so
the full methodology described above is verifiable directly in the
source code.
インジケーター

Volume Profile Anchored VWAP, AVWAP Bands & Deviation [LunqFX]Most anchored VWAP tools make you drag the anchor by hand, and it goes stale the moment structure changes. This one places the anchor automatically at confirmed swing pivots, wraps it in volume weighted standard deviation bands, hangs the leg's volume profile off the right edge, and then measures whether those bands are being respected on the symbol in front of you.
The annotated charts below explain the script's output element by element.
❶ AUTO ANCHORED VWAP
An anchored VWAP is only meaningful from a point that mattered. Anchor it at an arbitrary bar and it describes nothing; anchor it where the market last turned and it becomes the average price everyone trading THIS leg is carrying — which is exactly the level they defend.
The anchor is placed at confirmed swing pivots, with two guards that matter more than they sound:
▸ MINIMUM LEG — a fresh pivot cannot take over until the running leg has had room to form. Without that rule a cluster of pivots chops the curve into stubs and the VWAP never describes anything. ▸ MAXIMUM LEG — a leg that outlives its usefulness resets rather than growing into a whole-history average.
Session, weekly and monthly anchors are available for traders who prefer calendar anchoring.
❷ STANDARD DEVIATION BANDS
Around the anchored VWAP the script draws volume weighted standard deviation bands at three depths, filled as a gradient so distance from fair value is readable without measuring. Three details make them behave:
▸ WARM-UP — at the anchor the deviation is zero by definition, so the first bars of every leg would draw as a collapsing funnel. Those bars are still measured; they are simply not drawn. ▸ MINIMUM WIDTH — an ATR floor stops the bands pinching shut during dead stretches. ▸ DISPLAY SMOOTHING — the deviation path is box-filtered for drawing only. The VWAP itself and every statistic use the raw values, so nothing you act on is smoothed.
❸ VOLUME FLOW
Each bar's participation is drawn as fine texture reaching inward from the band edges: buy pressure rises from the lower edge, sell pressure falls from the upper one, split by where the bar closed inside its own range. The bands are the baseline, so the leg's pressure reads along the structure instead of on a separate pane.
❹ VOLUME PROFILE OF THE LEG
At the right edge the script hangs the volume distribution of the whole leg, split buy against sell, with a seam line at the join and a traced outline. Each bar is binned against its OWN slice of the channel rather than a fixed price grid, so a sloping leg does not smear the distribution — a detail most profile overlays skip, and the reason the shape stays honest on a trending market.
❺ BAND REACTION STATISTICS
Bands tell you where price is. They do not tell you what that has meant here. So the script measures it: for every touch of the chosen band inside the current leg it checks whether price returned to the VWAP within your window, and reports the share that did, together with the number of touches.
That single number changes how the same picture is read. A leg where touches of the upper band came back to VWAP most of the time is mean-reverting, and the band is a fade. A leg where they did not is trending, and the same touch is continuation. Samples too small to conclude anything from are marked with a tilde rather than presented as a result.
❻ WHAT YOU SEE ON THE CHART
▸ Dashed vertical line with the ANCHOR badge — where the current leg begins. ▸ Three teal bands below and three red bands above, filled as a gradient — deviation depth from the VWAP. ▸ Dark line through the middle — the anchored VWAP itself. ▸ Fine ticks along the band edges — per-bar buy and sell participation. ▸ Horizontal rows at the right edge — the leg's volume profile, teal for buy, red for sell. ▸ Panel — side of the VWAP, distance in σ with a position ruler, the VWAP and band levels, and the reaction statistics.
❼ HOW TO TRADE IT
1 — Read the header. Above or below the anchored VWAP is the leg's bias; the σ figure is how stretched price is right now. 2 — Check the reaction row before deciding what a band touch means. High return rate means the bands are fades. Low return rate means they are continuation. 3 — Use the VWAP as the leg's fair value. Pullbacks into it in the direction of the leg are the cleanest entries this tool produces. 4 — Use the volume profile to find where the leg actually traded. Thin rows are areas price passed through quickly and tends to pass through quickly again. 5 — Watch the anchor. A new anchor means structure turned and the previous leg's levels stopped applying.
❽ NON-REPAINTING
This is the part that separates an anchored VWAP from a rolling regression channel, and it is worth being precise about. The anchor is a CONFIRMED pivot and only ever moves forward. A VWAP is cumulative, so once a bar closes its contribution to the average is fixed forever — every band value already printed stays exactly where it is. Nothing is recalculated behind you. Every statistic is built from closed bars only.
SETTINGS
▸ Anchor — anchor mode (swing pivot, session, week, month), pivot length, minimum and maximum leg. ▸ Bands — three deviation depths, warm-up bars hidden, minimum width in ATR, display smoothing, gradient fill and VWAP line toggles. ▸ Volume Flow — texture height in ATR and thickness. ▸ Volume Profile — rows, width, thickness, seam and outline toggle. ▸ Band Reaction — which band counts as a touch, the reaction window, optional touch markers. ▸ Visuals — candle colouring, anchor marker, dashboard position.
ALERTS — upper band touch, lower band touch, VWAP reclaimed, VWAP lost, and new anchor. All fire on closed bars only.
WHY THESE PARTS ARE ONE SCRIPT
They describe one object at four resolutions. The anchor defines the leg; the standard deviation bands measure dispersion inside it; the flow and the volume profile show where its volume actually went; and the reaction statistics say whether that structure is being respected. Take the anchor away and the VWAP averages a period nobody traded as a unit. Take the profile away and the bands float above an unknown distribution. Take the statistics away and the bands become decoration you have to interpret by feel. None of them stands alone, which is why they ship together.
Works on any symbol with volume — forex, metals, indices, crypto and stocks — on intraday and higher timeframes alike. Symbols without real volume data will report a flat profile.
This indicator is an educational market-analysis tool, not financial advice. The reaction statistics describe the recorded historical behaviour of the current leg on the loaded chart; past behaviour does not predict future results. Always confirm with your own analysis and manage your risk. インジケーター

インジケーター

インジケーター

Volume DNA: Heatmap [BigBeluga]🔵 OVERVIEW
The Volume DNA: Heatmap is an advanced technical indicator created by BigBeluga to decode institutional volume and price action dynamics using market microstructure principles. Traditional volume indicators often look at volume in isolation, failing to account for the efficiency or inefficiency of price movement. In order to provide a solution to this problem, this indicator combines rolling volume Z-scores with high-low price spread Z-scores, classifying every single bar into distinct institutional signatures—such as Absorption, Effort, Exhaustion, and Stagnation.
The indicator aims to visualize institutional accumulation, distribution, and exhaustion points directly on the chart. The core element of its calculation involves tracking volume and spread deviations against rolling means defined as:
volZ = (volume - volMean) / volStd
spreadZ = (spread - spreadMean) / spreadStd
where volMean and spreadMean are moving averages over lookback lengths volLengthInput and spreadLengthInput , and volStd and spreadStd represent standard deviations. Higher values of volThreshInput and spreadThreshInput allow the indicator to filter out random market noise and isolate major institutional footprints.
🔵 FEATURES
The system utilizes a multi-layered matrix structure to provide actionable market intelligence:
1 — DNA Engine & Classification Matrix
Absorption ( ABS ): Triggered by high volume and narrow spread via highVol and narrowSpread , signaling institutional limit orders absorbing market flow.
Effort Bullish / Bearish ( EFF+ / EFF- ): Triggered by high volume and wide spread via highVol and wideSpread , signaling aggressive buying or selling pressure driving trend continuation.
Exhaustion ( EXH ) & Stagnation ( STG ): Tracks low volume relative to price spreads to identify thin liquidity moves or equilibrium consolidation phases.
2 — Visual Enhancements & Ghost Glows
Ghost Glow Effect: Renders a semi-transparent wider candle behind classified DNA bars using plotcandle(showGlowBar ? bodymax + glowExpand : na, ...) to visually distinguish key events from normal price action.
Liquidity Clouds: Draws transparent box zones over Absorption bars extending cloudExtendInput bars to the right, marking where institutional limit orders may be resting.
3 — Real-Time Barcode Tape & Statistics Tables
DNA Barcode Tape: Displays a vertical heatmap table on the chart showing the DNA type and volume of the last tapeRowsInput bars as a real-time institutional activity tape.
Stats Panel Table: Summarizes current bar status, Volume Z-Scores via str.tostring(volZ, "#.##") , and Spread Z-Scores for instant quantitative feedback.
🔵 HOW TO USE
Apart from the basic visualization of institutional volume signatures, this tool can also act in alternative ways to support decision-making:
Spot Institutional Absorption: Look for ABS candles and their accompanying Liquidity Cloud zones to identify potential support or resistance levels where large market participants are absorbing flow.
Ride Trend Continuations via Effort: Monitor EFF+ and EFF- signal shapes (where size and color intensity scale with volume Z-scores) to confirm aggressive momentum driving price in the direction of the breakout.
Anticipate Reversals with Exhaustion: Watch for EXH signals where price moves on thin liquidity, signaling that a current trend may be running out of fuel and nearing a pullback or reversal.
🔵 NOTES
Why this implementation is unique:
It merges volume and price spread analytics using statistical Z-scores rather than arbitrary thresholds, offering an objective look at market efficiency.
The multi-table interface provides both historical sequencing (Barcode Tape) and real-time metric tracking without crowding the main price action view.
The script is fully optimized for Pine Script version 6, utilizing high-performance array management (`var array dnaHistory = array.new(tapeRowsInput, 0)`) for smooth execution across extensive historical data.
Note: The indicator relies on rolling standard deviation calculations; initial chart loads require enough bars to populate the lookback window accurately.
インジケーター

Smart Money Volume Absorption Signals I EonMetricsSmart Money Volume Absorption Signals
Volume Absorption marks a specific situation as a LONG or SHORT setup, with an entry, a stop and two targets. But instead of only printing an arrow and leaving you to reconstruct what happened, it tracks that setup through four stages and shows you exactly how far along it is — how many conditions are met, which one is still missing, how many bars are left before the setup is discarded, and what the same sequence has already done on the history your chart has loaded.
🔶 THE SITUATION IT TRACKS
A bar trades far more volume than its own recent normal, and then closes at the wrong end of its own range. Heavy participation that failed to pay the side that pushed: effort without result. The direction is set against the side that was absorbed — a heavy bar closing in the bottom third of its range is a short premise, one closing in the top third is a long premise.
One thing has to be said plainly, because it decides how much weight this premise deserves: total volume cannot tell you who traded. It cannot separate buyers from sellers. What this gate actually measures is heavy participation combined with a failure to hold the direction the bar travelled. The absorption reading is an interpretation of that pattern, not a measurement of order flow. If you want that distinction to matter less, the remaining three gates are where the work is done.
Absorption on its own happens constantly and most of it leads nowhere. So the tool requires three further confirmations, in order, before it marks anything.
🔶 THE FOUR GATES
G1 · ABSORPTION — bar volume lands in an extreme percentile of its own recent history while the bar closes in the far third of its own range. This gate fixes the direction and nothing later can change it. It also plants the invalidation anchor at that bar's extreme. Optionally the direction must agree with a slow trend filter.
G2 · REACTION — a following bar closes in the direction G1 set. The absorption produced something instead of merely stalling.
G3 · EXPANSION — a candle body in the top percentile of its own recent history, pointing the setup's way. That candle's OPEN becomes the origin level, and the origin level is where entry would be.
G4 · HOLD — price returns to the origin level and closes without violating it. Only now does the signal print, on bar close.
This is a retest model, not a breakout model, and the consequence is worth stating before you use it. A setup whose expansion runs away and never comes back to the origin level will never complete, no matter how far the move goes. You will see setups sit at 3/4 while price travels past the drawn targets, and then expire. That is the design working as intended — the entry is the retest — but if you want a tool that chases the move instead, this is not that tool.
The dashboard reads: which stage the setup is in, the direction, which gate is being waited on, the expiry countdown, the entry and stop levels, and the record of every completed setup on the loaded history.
🔶 ORIGINALITY
Five design decisions separate this from a stack of conditions with an AND between them.
Percentiles instead of ATR multiples. A fixed "1.5 × ATR" or "2 × average volume" threshold means something different in a trending market than in a compressed one, so it has to be re-tuned per symbol and per period. Every threshold here is a percentile rank against the instrument's own recent history — "top 30% of the last 200 bars" keeps its meaning when volatility changes, without tuning.
Gates do not add up to a score. Each gate is a separate class of evidence and none substitutes for another. Three expansion bars in a row are still 1/4, not 3/4. A weighted-sum model can be outvoted by one loud condition repeating itself; this one cannot. There is deliberately no confidence percentage anywhere in this script — with four binary gates in a fixed sequence, the only honest information is how many of them have filled, and dressing that up as a percentage would add precision that does not exist.
The setup dies on its own. Every tracked setup carries an invalidation anchor (a close beyond the absorption bar's extreme) and a bar countdown that resets at each gate advance. When either fires, the setup is discarded immediately — it does not linger until an opposite signal replaces it, and it does not quietly stay on the books.
One setup at a time. While a completed setup is still resolving toward its target or its stop, a new setup will not complete — it waits at 3/4 and may still fire later if the first one resolves in time, or expire if it does not. This exists so that what the dashboard counts is what a person following the tool could actually have taken, one position at a time, rather than an overlapping stack of positions nobody could hold.
It shows its own record. The last two rows of the dashboard walk every completed setup on the chart you are looking at, bar by bar, and count which level price reached first — Target 1 or the stop. The stop is checked before the target, so a bar that spans both counts against the setup, and the bar the signal prints on is not counted at all. That number is whatever it is. It is not a claim, it is not tuned to flatter, and it will read differently on every symbol and timeframe you load — which is exactly the point. You are meant to check it on YOUR instrument before deciding what the tool is worth to you, instead of taking anyone's word for it. Most signal tools do not show this. That is a choice they made, and this is a different one.
🔶 HOW IT IS CALCULATED
Both percentile ranks are ta.percentrank() over one configurable window — one on bar volume (G1), one on the absolute candle body (G3). The close position is (close − low) / (high − low), so it describes where the bar finished inside its own range rather than relative to any external level.
The optional trend filter is a plain exponential moving average of the closing price on the chart's own timeframe, used as a slow-trend proxy: long setups are only allowed above it, short setups only below it. Set its length to 0 to switch it off. There are no higher-timeframe data requests anywhere in this script.
Entry is the open of the expansion bar. The stop is the absorption bar's extreme, plus an optional buffer in ticks. Both targets are multiples of that entry-to-stop distance, so they scale with the setup instead of with a fixed price amount. Target 1 is the level the record row measures against; Target 2 is drawn for reference only.
Every gate is evaluated and latched on confirmed bars only. There is no lookahead and there are no forward-looking references. A filled gate is never un-filled retroactively; the live bar can only be rejected, never rewritten. A bar that would satisfy two gates at once advances the setup by exactly one step — each gate has to be paid for with its own bar.
The chart geometry is redrawn from scratch on the last bar rather than accumulated, so what you see on the chart is always the setup the dashboard is describing, and closed setups do not leave debris behind.
🔶 ALERTS
Six conditions: setup reached 2/4, setup reached 3/4, signal LONG, signal SHORT, setup expired, setup invalidated.
The staged alerts follow from the same idea as the meter: being told a setup is one gate away is more useful than only being told after it is over.
🔶 HOW TO USE
1. Read the record row before anything else. Load your instrument and your timeframe and see what it says there. If it does not convince you, that is the tool telling you honestly that it is not for that market.
2. Check the sample size in the same row. A run of ten or twenty setups is an anecdote. The row flags small samples for exactly this reason.
3. Watch the meter, not the arrows. Most of the information is in setups that reach 2/4 or 3/4 and then die — that tells you what the market is refusing to do.
4. The stop sits at the absorption bar's extreme by default, which is tight. On fast intraday charts try the Stop Buffer input and watch how the record row responds.
5. The trend filter changes the population of setups substantially. Check the record row with it on and with it off on your own market before deciding which you prefer.
6. Set the 3/4 alert if you want to be at the chart before a setup completes rather than after.
🔶 SETTINGS
Volume (percentile window) · Gate Thresholds (G1 volume percentile, G1 close position, G3 body percentile, trend filter length, setup TTL) · Trade Levels (draw toggle, stop buffer in ticks, two R-multiple targets) · Display (dashboard and position, current-signal marker, all-past-signals marker, colors).
🔶 HONEST LIMITATIONS
Volume alone cannot be attributed to buyers or sellers. This tool reads total bar volume against the bar's close position. It does not know who traded, and it is not order-flow data. Treat the absorption premise as a reading of effort against result, which is what it is.
The volume itself is only as good as the feed. On spot forex and CFDs the exchange reports TICK volume rather than real traded volume, so the percentile ranks describe activity rather than quantity. On symbols with no volume data at all the gates cannot fill, and the dashboard says so in its top-right corner.
The retest requirement will cost you moves. As described above, setups that never return to the origin level expire unfilled even when price travels well beyond the drawn targets. This is structural, not a bug, and on strongly trending stretches it happens often.
Percentiles are relative to their window. After an abrupt change of volatility regime the ranks need a few dozen bars to catch up, and during that stretch the thresholds are still measuring the old regime.
The record row is an honest count, not a backtest. It assumes a fill at the exact entry price and it ignores fees, spread and slippage — all of which work against you in reality, and all of which matter a great deal when the outcome is close to even. A record that looks positive before costs can be negative after them. It also covers only the setups on the history your chart has loaded, which on intraday timeframes is a small sample.
Results vary far more between markets than between settings. The same script on the same timeframe can produce a very different record on two different symbols, and there is no timeframe this tool is generally "best" on. Any suggestion otherwise would be an invention. Check your own market.
This tool describes a sequence of conditions in price and volume. It does not forecast anything, it makes no claim about how often the sequence resolves favourably, and the drawn levels are the geometry of the setup, not a recommendation. It is published for analysis and education, it is not financial advice, and past behaviour of a pattern does not guarantee its future behaviour. Check the record on your own market, manage your own risk, and decide for yourself.
Part of the EonMetrics toolset.
インジケーター

Futures Volume + Delta - CFD ChartsA volume pane for CFD and cash-index charts that shows the REAL traded volume
of the matching futures contract — plus an estimated buy/sell delta and
absorption flags for effort-without-result bars.
What makes it original: CFD "volume" is broker tick count, not market
participation. This pane never uses it — every column is the exchange volume
of the auto-detected futures contract. The delta column is built from the
futures contract's own lower-timeframe candles (up-candle volume counts as
buying, down-candle volume as selling): the volume is real, only the side
attribution is an estimate, and it is labeled as such. Absorption flags then
combine both axes — volume percentile high while the price range percentile is
low — the candle-data footprint that hidden passive interest (iceberg-style
execution) leaves behind. Pine has no order book, so this is explicitly a
footprint proxy, not order-book detection.
How it works:
- The futures contract is auto-detected from the chart symbol (DAX/GER40 ->
FDAX, NAS100 -> NQ, US30 -> YM, UK100 -> Z, US500 -> ES), or set manually.
- Histogram = futures volume per chart bar; columns tint with bar direction,
a configurable MA marks the average.
- Delta = buy-minus-sell futures volume from 1/5/15-minute intrabars
(auto-selected by chart timeframe, manual override). Lower-timeframe
history is limited, so the delta reaches less far back than the histogram.
- Absorption flag (orange diamond + alert): volume percentile >= X and range
percentile <= Y over a rolling lookback — both thresholds adjustable.
- A status label confirms the active source and the delta resolution.
How to use it: read it like a footprint-lite. Rising price on rising futures
volume = participation confirms the move. An absorption diamond after an
extended run — heavy contracts traded, no price progress — marks where passive
interest is absorbing the aggression; combined with a one-sided delta it is a
common exhaustion/iceberg footprint. Delayed futures feeds confirm bars a few
minutes late; the historical picture is complete.
*This script is part of a consistent set of open-source session, range and
volume tools — the companions are on my profile.*
インジケーター

Anchored VWAP Engine [Quantum Algo]Anchored VWAP Engine
====================================================
🔶 OVERVIEW
Anchored VWAP Engine is a multi-stream anchored Volume Weighted Average Price indicator that removes the hardest part of trading with anchored VWAP: choosing the anchor. The engine runs up to seven independently anchored VWAP streams that place and reset their own anchors automatically — the week open (the default stream), session open, month open, confirmed swing highs and swing lows, the highest-volume bar in a lookback, and a liquidity-sweep anchor that re-anchors from the exact bar where a stop run occurred. On top of the streams it adds volume-weighted deviation bands, automatic confluence cluster zones where multiple streams converge, band-rejection signals, and a stability metric that names which VWAP the market is currently respecting most.
Out of the box the chart shows a single clean line: the week-anchored Volume Weighted Average Price with its deviation bands. Every additional stream is one checkbox away.
🔶 WHAT IS AN ANCHORED VWAP?
The Volume Weighted Average Price is the average price of an instrument weighted by traded volume — the closest public approximation of the average position price of everyone who transacted since a chosen starting point. An anchored VWAP starts that calculation from a meaningful event rather than an arbitrary date: a weekly open, a swing low, a high-volume climax bar. Price above an anchored VWAP means the average participant since that event is in profit; price returning to it often behaves as a decision level, because it is where the average position breaks even. The power of the tool depends entirely on where it is anchored — which is exactly what this engine automates.
🔶 WHY THIS SCRIPT IS ORIGINAL
1. Automatic multi-anchor engine. Seven streams anchor and re-anchor themselves from objectively defined events — no manual anchor placement, no stale anchors, no guessing.
2. The liquidity-sweep anchor. When a swing level is wicked through and rejected — a stop run — the sweep stream re-anchors from that exact bar and colors itself by implication: the accumulation tone after a sell-side sweep, the distribution tone after a buy-side raid. Averaging from the stop-run bar tracks the entry basis of the participants who engineered it. To our knowledge this anchor type has not been published before.
3. Exact swing anchoring. Swing-anchored streams rebuild their sums retroactively from the true pivot bar once the pivot confirms, so the calculation is mathematically identical to a VWAP hand-anchored on the swing itself — not started late at the confirmation bar.
4. Confluence clusters. When two or more active streams converge within an Average True Range tolerance, the engine draws a cluster zone and labels its strength. Multiple independent volume-weighted averages agreeing on one price is the strongest form of VWAP confluence, detected automatically.
5. The In Control metric. An exponentially decayed crossing-rate measures how cleanly price is respecting each stream; the dashboard names the stream currently in control. Users learn which anchor matters today instead of watching all of them equally.
6. True volume-weighted deviation bands. The bands are built from the volume-weighted variance of the primary stream — not a simple price standard deviation — at two configurable widths, with band-rejection signals printed as a single σ character whose full context lives in the hover tooltip, protected by a signal cooldown.
7. Quiet by default. One stream, one set of bands, capped signals, and a compact dashboard. The engine detects everything; the chart shows only what is asked of it.
🔶 HOW IT WORKS
Streams: Each stream maintains volume-weighted price and variance sums that reset on its anchor event — new week, new session, new month, a confirmed swing, a lookback volume record, or a qualified liquidity sweep. Between events the sums accumulate bar by bar, producing the stream's live anchored VWAP.
Sweep detection: A sweep qualifies when price wicks through the last confirmed swing level but closes back inside it, with per-level memory so the same level cannot re-trigger. The sweep stream then re-anchors from that bar.
Deviation bands: The primary stream (selectable; week open by default) carries inner and outer bands at configurable sigma multiples computed from its own volume-weighted variance, with softly tinted zones between them.
Signals: A wick beyond the outer band with a close back inside, on the correct side of the VWAP, prints the σ rejection signal — reversion bias toward the average — evaluated on closed bars only and rate-limited by the cooldown.
Clusters: On the live bar the engine groups all active stream values within the tolerance and draws a labeled zone for each group of two or more.
Dashboard: A fully themeable panel lists every stream with its live distance from price in Average True Range units and side, plus the In Control stream, active cluster count, and the current band width.
Non-repainting: Anchors use confirmed events, sweeps and signals are evaluated at bar close, and swing streams rebuild exactly rather than approximately.
🔶 HOW TO USE IT
1. Works on any market with reliable volume — cryptocurrency, stocks, indices, futures. On the default settings, read the week-anchored VWAP as the institutional benchmark: above it with rising distance means the average weekly participant is in profit.
2. Treat the VWAP itself as the decision level and the outer bands as stretch: σ rejections at the outer band carry a reversion bias back toward the average.
3. Enable the swing and sweep anchors to study reactions: price returning to a sweep-anchored VWAP is returning to the average entry of the stop-run — a level worth watching.
4. Cluster zones are the highest-value levels the engine produces: several independent volume-weighted averages agreeing on one price. Watch how price behaves on first touch.
5. Use the In Control row to pick which stream deserves your attention today, and the distance column to see what is nearby before it is hit.
6. Intraday traders can switch the primary stream to Session Open; swing traders can promote Month Open.
🔶 SETTINGS
- Anchors: independent toggles for all seven streams, swing pivot length, highest-volume lookback. Default: Week Open only.
- Primary stream selection with inner and outer band multiples.
- Cluster detection with Average True Range tolerance.
- Signals: toggle, cooldown, and signals to keep.
- Individual colors for every stream plus accent and neutral colors.
- Themeable dashboard: position, four text sizes, title band, background, frame, grid, and three text colors.
🔶 ALERTS
- Bullish / Bearish Band Rejection — price rejected the outer deviation band of the primary stream.
- Price Crossed Above / Below Primary VWAP.
- VWAP Cluster Formed — two or more streams converged into a confluence zone.
- Sweep Anchor Reset — a liquidity sweep occurred and the sweep stream re-anchored from the stop-run bar.
🔶 FREQUENTLY ASKED QUESTIONS
Does the indicator repaint? No. Anchor events are confirmed before they act, swing streams rebuild exactly from the confirmed pivot bar, and signals are evaluated on closed bars. Swing confirmation carries its standard pivot lag by design.
Why do I only see one line? By default only the week-anchored stream is enabled for a clean first chart. Every other anchor is a checkbox in settings.
What makes the sweep anchor special? It averages price and volume from the exact bar where stops were run — the basis of the participants who engineered the move — rather than from a calendar date or swing alone.
Why is there no cluster or In Control reading? Both features compare multiple streams; enable two or more anchors and they activate.
Which markets should avoid it? Any Volume Weighted Average Price tool is only as good as the volume feed. On symbols with unreliable or synthetic volume reporting, treat every stream with caution.
🔶 CREDITS
The Volume Weighted Average Price was introduced by Stephen Berkowitz, Dennis Logue and Eugene Noser (1988), and the anchored application was popularized by Brian Shannon, whose work established anchoring from meaningful events as a discipline. This script gratefully acknowledges both. The multi-stream auto-anchoring engine, the liquidity-sweep anchor, the exact retroactive swing rebuild, confluence clustering, the In Control stability metric, and all code in this script are original work — no third-party or open-source script code was reused.
🔶 LIMITATIONS
Volume quality determines VWAP quality; symbols with unreliable volume produce unreliable averages. Deviation bands need bars to mature after each re-anchor. Cluster detection reports convergence, not a guarantee of reaction. The In Control metric measures recent respect, not future behavior. No indicator replaces independent analysis.
🔶 DISCLAIMER
This script is provided strictly for educational and informational purposes. It is not financial advice, an investment recommendation, or a solicitation to buy or sell any financial instrument. Past behavior of any average, band, or cluster does not guarantee future results. Trading involves substantial risk. Always do your own research and manage risk independently. インジケーター

インジケーター

VWAP Suite I EonMetricsVWAP Suite
VWAP Suite plots three independently anchored Volume-Weighted Average Price lines — Session, Weekly and Monthly — with volume-weighted deviation bands and the previous period's VWAP close kept on the chart as a reference level. Everything is computed from first principles at each anchor, so every line resets exactly where its period starts.
🔶 WHAT VWAP IS
VWAP is the average price of the period weighted by how much volume traded at each price. It answers one question: "what is the fair average price actually paid since the anchor?" That is why institutional execution desks benchmark fills against it, and why price so often reacts when it returns there — it is the level where the average participant in the period is at break-even. Above the VWAP the average buyer of the period is in profit; below it, under water.
🔶 WHAT IT DOES
Three anchors — Session (resets each trading day), Weekly and Monthly VWAP, each with its own toggle and color. Intraday traders typically work with Session, swing traders add Weekly, and Monthly serves as the higher-timeframe fair-value reference. Anchors that make no sense on the current chart timeframe (e.g. a Session VWAP on a daily chart) hide themselves automatically.
Deviation bands — ±1σ, ±2σ and optional ±3σ around ONE chosen anchor. The deviation is volume-weighted and anchored to the same period as the VWAP it wraps — not a rolling standard deviation — which is the statistically consistent way to band a VWAP (the same math TradingView's built-in VWAP bands use). ±2σ is the classic stretched-price reference; the optional gradient fill keeps the zones readable without clutter.
Previous VWAP Close — the exact level where the Session (or Weekly) VWAP finished its previous period, drawn flat through the current one. The same idea as previous day high/low, but volume-based: yesterday's fair price is a natural magnet and reaction level for today. Few VWAP tools carry this level forward — it is the reason this suite exists.
🔶 HOW IT IS CALCULATED
From each anchor the script accumulates three sums bar by bar: volume × price, volume, and volume × price². VWAP = Σ(volume × price) / Σ(volume). The band deviation comes from the volume-weighted variance Σ(volume × price²)/Σ(volume) − VWAP². At every period rollover the previous VWAP value is captured first, then the sums reset to zero. Values only update on confirmed data — there is no repainting logic anywhere in the script.
🔶 ALERTS
Seven alert conditions: price crossing each of the three VWAPs, price touching the +2σ or −2σ band, and price crossing the previous Session or previous Week VWAP close.
🔶 HOW TO USE
1. Pick your anchors — Session for intraday, add Weekly for swing context.
2. Choose which anchor carries the deviation bands (Bands Around).
3. Keep Previous Session VWAP on — reactions at yesterday's fair price are the cleanest thing this tool shows.
4. Set alerts on the crossings you actually trade around.
🔶 SETTINGS
Source (price input, hlc3 default) · Anchors (Session / Weekly / Monthly, each with color) · Deviation Bands (anchor selector, ±1σ/±2σ/±3σ toggles, gradient fill) · Previous VWAP Close (Session / Weekly levels).
🔶 HONEST LIMITATIONS
On CFDs and spot forex the data feed reports TICK volume (number of price updates), not true traded volume. VWAP built on tick volume is still the standard practice on those markets and tracks the real one closely on liquid symbols, but you should know what feeds the math. On symbols with no volume data at all the script deliberately shows nothing rather than fake a line. VWAP is a descriptive average, not a prediction — this tool draws levels, it does not generate signals.
Part of the EonMetrics toolset.
インジケーター

NIMBUS [ThrowMaster]NIMBUS — Ichimoku, Reimagined
Classic Ichimoku is brilliant at one question: "Where is the market right now — above, below, or inside equilibrium?" It is far weaker at a second question every trader actually asks: "What is the market about to do?" NIMBUS keeps the timeless Ichimoku framework intact and adds three dimensions built to close that gap — while staying, above all, honest about what it is: a context compass, not a signal service.
━━━━━━━━━━━━━━━━━━━━━━━━
WHAT NIMBUS ADDS
━━━━━━━━━━━━━━━━━━━━━━━━
⭐ Kumo Calendar — Twist Countdown
Here is a fact most traders overlook: the cloud in front of price is already fully drawn. It is built entirely from bars that have ALREADY closed, then shifted forward. That means the next Kumo twist — the moment Senkou Span A and B swap places — is knowable in advance. NIMBUS scans the forward cloud and counts the exact number of bars until that twist reaches price, and warns you when a thin (weak-support) section is approaching. Ichimoku's most-criticised trait, its lag, becomes a schedule you can read ahead of time.
🩵 Breath — Volume-Reactive Cloud
A traditional cloud shows only price geometry; two identical-looking clouds can hide wildly different conviction. NIMBUS makes the cloud breathe: it grows more solid on high-participation bars and fainter on quiet ones, using a rolling volume percentile. Strength becomes something you feel at a glance, not something you have to calculate. (If a symbol reports no volume, the cloud simply falls back to a fixed opacity — no errors, no false readings.)
🎯 Tenkan / Kijun Cross Clarity
The Tenkan–Kijun cross is one of Ichimoku's core events, yet on most charts it hides in a tangle of lines. NIMBUS marks it precisely: a teal circle at the exact price and bar of a bullish cross, coral for bearish. No hunting, no guessing.
◈ Alignment Hints
When four independent Ichimoku dimensions agree — price vs cloud, Tenkan vs Kijun, cloud colour, and the lagging read — AND price reclaims or loses the cloud on a confirmed bar, NIMBUS prints a small diamond. Think of it as a puzzle-game hint: a nudge to look at the right place at the right time. It is deliberately NOT a buy or sell command, and it never gives a target.
━━━━━━━━━━━━━━━━━━━━━━━━
HOW IT WORKS
━━━━━━━━━━━━━━━━━━━━━━━━
NIMBUS uses the standard Ichimoku engine — Tenkan (9), Kijun (26), Senkou Span A/B, and the lagging span, all fully adjustable. "Price vs cloud" always compares price to the cloud value formed 25 bars ago — the cloud actually sitting beneath price — so the reading reflects real, settled structure. The Breath layer reads a 100-bar volume percentile. The Twist Countdown walks the already-shifted forward cloud bar by bar. The dashboard summarises everything in one compact, theme-aware panel with a mobile Compact Mode.
━━━━━━━━━━━━━━━━━━━━━━━━
HOW TO USE
━━━━━━━━━━━━━━━━━━━━━━━━
• Read the cloud for trend context: above = bullish structure, below = bearish, inside = balance/chop.
• Watch the Twist Countdown to anticipate when the cloud's support/resistance character is about to flip — useful for planning, not for firing blind.
• Let Breath tell you whether a move carries participation or is running on fumes.
• Treat Hints as a reason to zoom in and do your own analysis, never as an instruction.
• Combine with your own risk management. NIMBUS describes context; your plan decides the trade.
━━━━━━━━━━━━━━━━━━━━━━━━
ON REPAINTING (honest)
━━━━━━━━━━━━━━━━━━━━━━━━
Once a bar closes, every Tenkan/Kijun/Span value is fixed and never redrawn. Hints and cross circles are all confirmed on bar close, so a printed mark cannot later disappear. The forward cloud is built only from closed bars, so it is fixed the moment it appears. Like all Ichimoku tools, values on the CURRENT, still-forming bar update in real time until that bar closes — this is inherent to the framework, not hidden repainting, and it is documented directly in the code comments.
━━━━━━━━━━━━━━━━━━━━━━━━
WHAT MAKES IT ORIGINAL
━━━━━━━━━━━━━━━━━━━━━━━━
NIMBUS is not another line pack bolted onto Ichimoku. The Kumo Calendar reframes the forward cloud as a countdown rather than a static shape; Breath encodes participation into the cloud's opacity; and the whole tool is presented as an explicit, self-aware CONTEXT instrument — it tells you what the market is, and refuses to pretend it knows your trade. The code is fully open for you to read, study, and learn from.
━━━━━━━━━━━━━━━━━━━━━━━━
NOTE
━━━━━━━━━━━━━━━━━━━━━━━━
No indicator predicts the future or guarantees results, and NIMBUS makes no such claim. It is a decision-support and context tool. Markets involve risk; always use independent judgement and sound risk management. Not financial advice.
インジケーター

Orderflow Suite [martineye15]Orderflow Suite — four order-flow tools in one indicator: Cumulative Volume Delta, footprint bars, imbalance / absorption signals, and a volume profile. Each module toggles independently, so you can run the full suite or just the part you need. CVD gets its own pane; the footprint, signals and profile draw directly on the price chart, so no second script is required.
MODULES
- Cumulative Volume Delta (CVD): running buy-minus-sell volume, with Session / Day / Week / None reset anchoring and a Line, Columns or Candle display (candles show open = previous CVD, close = new CVD, wicks from the intrabar delta extremes). Optional price-CVD divergence: bearish when price makes a higher high while CVD makes a lower high, bullish when price makes a lower low while CVD makes a higher low.
- Footprint bars: the most recent bars are split into price bins, each showing aggregated buy x sell volume, shaded by its net delta, with the bar's highest-volume bin (VPOC) framed.
- Imbalance & absorption: delta-imbalance triangles when |delta| / volume passes a threshold, stacked-imbalance zones when several same-direction imbalance bars line up, plus absorption labels (heavy volume in a tight range near a swing) and exhaustion labels (a new swing high on negative delta, or a new swing low on positive delta).
- Volume profile: a volume-at-price histogram over a lookback window with POC, value-area high / low and the 70% value area, in total-volume or delta-coloured mode.
DELTA ENGINE (please read)
TradingView does not provide a true bid/ask tick feed, so delta here is an approximation, not exchange order flow. Historical delta is estimated from lower-timeframe intrabars: an intrabar counts as buy volume when it closes above its open, sell volume when below, and is split evenly on an unchanged close. On the live bar you can optionally accumulate tick-based delta instead (uptick = buy, downtick = sell). Because TradingView does not store ticks, realtime values built this way can differ from what the same bar shows after a chart refresh. Treat every delta value as an estimate.
ALERTS
Ten conditions: CVD bullish / bearish divergence, bullish / bearish imbalance, stacked bullish / bearish imbalance, absorption at highs / lows, and exhaustion top / bottom.
HOW TO USE
Add it to a symbol that has volume (crypto, futures or stocks — spot forex usually has no real volume, and the tool will tell you so). Intraday timeframes from about 1 minute to 1 hour work best. Turn on the modules you want, set the delta engine (lower-timeframe auto / manual, and optional realtime tick mode), and adjust the per-module thresholds and sizes. Use CVD and its divergences for momentum and non-confirmation, the footprint and profile to see where volume actually traded, and the imbalance / absorption / exhaustion signals as context around swings. Set alerts on any of the ten conditions.
WHAT MAKES IT DIFFERENT
It combines CVD, footprint, imbalance / absorption and a volume profile in a single indicator, sharing one delta engine and drawing the price-chart modules through force_overlay from a lower pane — a combined order-flow view without stacking several scripts. Drawing counts are budgeted internally so the modules together stay within TradingView's object limits.
REPAINTING & LIMITATIONS
Confirmed-bar behaviour is stable: footprints are built on closed bars, CVD divergences use confirmed pivots (so they appear a few bars after the pivot — normal pivot lag, not repainting), and the profile is computed over completed bars. The delta approximation is the main caveat: the live bar's delta is an estimate, and if you enable realtime tick mode, the live values will not match the same bar's historical lower-timeframe values after a refresh — this is inherent to how TradingView exposes data and is noted in the input tooltips. One-second intrabars need a plan with seconds data; without it the tool uses a one-minute fallback, and very old bars beyond the intrabar budget fall back to whole-bar classification. A symbol with no volume cannot produce delta and will show a notice instead.
This is a visual, decision-support tool. It is not a strategy, it places no orders and reports no performance statistics, and it is not financial advice. インジケーター

Adaptive Volume Confluence OscillatorWhat it is
One pane that fuses seven different reads of the bar into a single 0–100 confluence score, gates that score by a trend-vs-chop regime filter, confirms it against an auto-mapped higher timeframe, and — most importantly — forward-calibrates its own Buy/Sell signals against an unconditional base rate, so you can see whether the construction actually carries an edge on your instrument.
The seven votes: momentum sign · momentum vs its signal · money flow · trend structure (MA fan) · price location vs VWAP · trend slope · higher-timeframe bias.
The displayed wave is a volume-flow ribbon; the votes drive the score, the signals and the verdict. A plain-language verdict and a subtle pane tint make it readable at a glance (Simple view); a full analytic layer is available for advanced users (Pro view).
Why these are combined (mashup rationale)
A single oscillator whipsaws and a single signal over-fires. Combining helps only when the inputs key on different quantities and their agreement is checked. Each vote reads a different thing — momentum, momentum-vs-signal, volume flow, multi-MA structure, location vs a session mean, slope, and a higher-timeframe read — so the count that agrees carries more information than any one of them alone. A Kaufman Efficiency-Ratio regime gate suppresses conviction in chop, and a forward-calibration harness ties the whole construction back to realised forward outcomes.
An honest caveat, stated up front: the votes are not statistically independent. The oscillator itself embeds money flow, and vote 2 is derived from vote 1's series. Treat the score as a weight-of-evidence read, not as seven independent confirmations. The harness exists precisely so you can check whether the construction earns its keep on your instrument rather than taking the claim on faith.
How it works
Score — how many of the seven votes are bullish, scaled 0–100.
Regime — Kaufman Efficiency Ratio. Below the chop threshold, conviction dims, signals are withheld, and the verdict reads "WAIT – choppy".
HTF — the chart timeframe auto-maps to a confirming higher timeframe (~4–6×), requested with lookahead_off and offset by one bar while the live bar forms.
Signals — Buy/Sell fire only when the oscillator crosses its signal at a statistical OB/OS extreme and the score agrees and the regime isn't choppy and the visible wave isn't already at the opposite extreme.
Climax — a volume spike at an OB/OS extreme prints a Possible Bottom/Top exhaustion mark.
Divergence (Pro) — regular + hidden, from confirmed pivots on the momentum oscillator.
Calibration — each Buy/Sell is queued and resolved a fixed horizon later, then compared with the unconditional same-horizon base rate. The dashboard shows, per side: Hit %, Edge = Hit − Base, sample size, and a Wilson-gated star.
How to use it
Read the verdict and the score. Above the gate = bullish weight of evidence; below = bearish; in between, or in chop, the tool says WAIT — and it means it.
Treat Buy/Sell marks as context, not triggers. They already require the score, the regime and the wave to agree, but they remain a description of conditions — not a recommendation.
Read the Edge row before you weight any signal. If Buy/Sell Edge isn't clearly positive with an adequate sample and a star, this construction is not carrying an edge on this instrument — weight it down or ignore it. Do not tune the parameters until the Edge turns green: that is curve-fitting, and the harness is there to catch it, not to be defeated.
Combine with your own levels, structure and risk rules.
Universal across markets
Price / high / low are inputs, so the engine runs on any symbol or timeframe. The volume votes (money flow, climax, VWAP location) need real volume — prefer a futures contract or a stock. On a symbol with no volume the tool degrades gracefully: money flow is neutralised, the score falls back to the price-only votes, and the dashboard says "NO VOLUME", so you're never misled by a blank or a phantom reading.
Non-repainting
Votes read confirmed closes. The HTF series uses lookahead_off and is offset by one bar while the live bar forms. Divergences come from ta.pivot* and confirm a few bars after the pivot; once printed they don't move. The calibration harness logs and resolves only on confirmed bars, so its statistics never inflate intrabar. The live oscillator updates each bar, like any oscillator.
Concept credits
Super Smoother and Ultimate Smoother low-lag filters — John Ehlers. Chebyshev Type-I filter — classical DSP. Recursive (Kalman) smoothing — R. E. Kalman. Volume Zone Oscillator — Walid Khalil & David Steckler. Accumulation/Distribution money-flow multiplier — Marc Chaikin. Efficiency Ratio — Perry J. Kaufman. ATR — J. Welles Wilder. Wilson score interval — Edwin B. Wilson. VWAP, Hull MA and percentile rank — standard public methods.
Original implementation; not affiliated with, nor endorsed by, any third party. No third-party code is reused.
Honest limits
The score is context, not a guarantee, and the votes are correlated (see the caveat above). The Edge figures are in-sample, close-to-close, with overlapping forward windows and no costs — descriptive context, not a verified backtest. An Edge near zero, negative, or unstable across timeframes is the harness honestly telling you the signal has no reliable edge on that instrument. Nothing here predicts price.
Disclaimer
Research and educational tool only. Not financial advice and no guarantee of profitability or accuracy. Indicators describe past behaviour; they do not predict the future. Trading carries risk of loss. Test out-of-sample and make your own decisions. The author accepts no liability for any use of this script. インジケーター

CVD Pressure Ledger - Cumulative Volume Delta FlowCVD Pressure Ledger - Cumulative Volume Delta Flow
CVD Pressure Ledger is a neutral volume-pressure research tool for studying how cumulative volume delta evolves, resets, normalizes, and interacts with price response.
It is designed for traders who want to observe the slope of supply/demand pressure, volume imbalance, price-flow agreement, and effort-versus-response context without turning those observations into automated trade signals.
This script is a context and visualization tool, not a trading system. It does not generate buy/sell signals. It does not provide entries, exits, targets, stops, position sizing, forecasts, win-rate claims, or performance claims.
What It Visualizes
The script displays a reset-aware cumulative volume delta framework with several optional visual layers:
- CVD line
- CVD candles
- Bar delta histogram
- Rescaled pressure score line
- Zero line and reset anchor tint
- Neutral pressure background
- Compact ledger table
- Data-quality notes for limited volume, fallback mode, live bars, and non-standard charts
The goal is to make volume-pressure context readable without overloading the chart.
Delta Engine
The script offers multiple calculation modes:
1. Auto intrabar
The script first attempts to use an intrabar CVD calculation when a valid lower timeframe is available. If it cannot use intrabar data safely, it falls back to a bar-based approximation.
2. Intrabar CVD
Uses TradingView's official TradingView/ta library requestVolumeDelta() function to request lower-timeframe volume delta information and build intrabar-aware CVD candles when the selected lower timeframe is valid.
3. Tick-rule approximation
Estimates positive or negative delta from the candle direction. This is a bar-based approximation and is not real bid/ask order flow.
4. CLV range-weighted approximation
Estimates delta from where the close sits within the candle range using a Close Location Value style calculation. This is also an approximation and is not real bid/ask order flow.
Auto lower timeframe mode avoids seconds/tick requests by default for stability. Manual lower timeframe mode remains available for users who want to research smaller timeframes when their data plan, feed, and symbol support them.
What Makes It Different
Many CVD tools focus mainly on a cumulative line, CVD candles, or a delta histogram.
CVD Pressure Ledger adds several context layers around the core CVD calculation:
- Reset-aware CVD state
- Pressure score normalized to a -100 to +100 scale
- CVD z-score and percentile context
- Delta share normalization
- Pressure persistence age
- New positive/negative CVD extremes within the reset period
- Price-flow agreement and mismatch context
- Effort-versus-response classification
- A compact ledger fingerprint that summarizes pressure, z-score bucket, response bucket, state age, and mismatch context
This makes the script more of a volume-pressure ledger than a simple cumulative delta plot.
Pressure Score
The pressure score is a normalized composite value from -100 to +100. It combines several configurable components:
- CVD slope
- Delta share
- CVD z-score
- Pressure persistence
Each component has a user-adjustable weight. The score is not a signal. It is a research value intended to summarize the current pressure context.
Pressure states are classified as Positive, Negative, or Neutral using a configurable threshold, neutral band, and optional hysteresis. Hysteresis helps reduce rapid state flipping around the threshold.
Price-Flow Agreement
The price-flow agreement layer compares price slope and CVD slope over a configurable lookback.
It classifies the context into neutral descriptive states such as:
- Price up / flow up
- Price down / flow down
- Price up / flow soft
- Price down / flow firm
- Mixed / flat
The script can also detect when price-flow mismatch starts or expands. These are contextual observations only, not trade signals.
Effort vs Response
The effort-versus-response layer compares volume-delta effort with normalized price movement.
It can classify contexts such as:
- High effort / muted response
- Flow and price aligned
- Price response leads flow
- Low activity
- Mixed response
This layer is intended to help users study whether large delta activity is accompanied by a proportional price response. It does not imply absorption, reversal, continuation, or a future outcome by itself.
Ledger Fingerprint
The ledger fingerprint is a compact text summary shown in the table.
Example format:
P0 Z1 Rm A5 M0
Meaning:
- P+, P-, P0: pressure polarity
- Z0, Z1, Z2: CVD z-score bucket
- Rh, Rm, Rl: response bucket
- A: pressure state age
- M0, Mx, Mn: mismatch context
This helps users quickly compare the current volume-pressure context across symbols, timeframes, and reset settings.
Inputs and Customization
The script includes grouped inputs for:
- Delta engine
- Reset / anchor mode
- Normalization
- Pressure score
- Price-flow agreement
- Effort vs response
- Display mode
- Colors
- Ledger table
- Alerts
- Safety / data warnings
Users can adjust calculation mode, lower timeframe, reset method, session settings, smoothing, lookbacks, thresholds, weights, display mode, table position, table size, colors, and alert availability.
Display Modes
The script includes several display presets:
- Clean: CVD line, zero line, and compact table
- Candle: CVD candles and delta histogram
- Research: CVD, pressure score, histogram, and table context
- Minimal: CVD line with minimal warnings
The visual design is intentionally restrained so the output remains readable on both dark and light chart themes.
Alerts
The script includes factual alert conditions, such as:
- Pressure state changed
- Positive pressure state started
- Negative pressure state started
- Pressure returned to neutral
- New positive CVD extreme
- New negative CVD extreme
- Price-flow mismatch started
- Price-flow mismatch expanded
- High effort / muted response context
- Reset period started
- Data fallback active
Alerts are descriptive context events only. They are not entry, exit, buy, sell, target, or stop signals.
Limitations
Delta calculations are approximations unless the selected data source and TradingView functions provide suitable lower-timeframe information.
Lower-timeframe and intrabar calculations depend on available historical data, symbol, exchange, feed, and account/data-plan limits.
FX, CFD, index, and synthetic symbols may use tick volume, broker-specific volume, or limited volume data. This can affect all volume-based calculations.
If a chart has no usable volume data, CVD may appear as a flat line because there is no volume input to accumulate. In that case, the table will show a volume limitation note. This is expected behavior, not a directional reading.
Non-standard chart types such as Heikin Ashi, Renko, Kagi, Point & Figure, Range, and other synthetic charts can affect price, volume, and derived calculations.
Realtime values can update until the bar closes. When Confirmed bars only is enabled, events and alerts are gated to confirmed bars, but visual values may still update on the live bar.
The default settings are research starting points, not optimized parameters.
What This Script Does Not Do
This script does not:
- Generate buy or sell signals
- Recommend trades
- Forecast price
- Provide entries or exits
- Provide targets or stops
- Provide position sizing
- Claim accuracy, profitability, or statistical reliability
- Reconstruct true bid/ask order flow
- Replace exchange-native order book or footprint data
Suggested Chart Setup
For publication screenshots and general use, a clean chart is recommended:
- Use one liquid symbol with visible volume
- Show the full symbol and timeframe
- Use only this script on the chart unless another script is necessary and explained
- Use Research mode when demonstrating the full context layers
- Use Clean mode when showing the CVD line and ledger table more simply
Japanese Notes / 日本語補足
CVD Pressure Ledger は、累積デルタを単純に表示するだけではなく、出来高デルタの偏り、累積状態、リセット、正規化、価格反応との噛み合いを整理して表示する研究用インジケーターです。
このスクリプトは売買シグナルではありません。エントリー、エグジット、利確、損切り、ポジションサイズ、将来予測、勝率、利益性を示すものではありません。
主な確認項目は次の通りです。
- CVDの累積方向
- Bar deltaの偏り
- Pressure score
- CVD z-score
- Price-flow agreement
- Effort vs response
- Pressure state age
- Ledger fingerprint
Tick-rule と CLV range-weighted は近似計算です。実際のbid/ask約定方向を完全に復元するものではありません。
FX、CFD、指数、合成銘柄では、出来高がティックボリューム、ブローカー依存の出来高、または制限された出来高である場合があります。そのため、出来高ベースの計算は銘柄やデータフィードによって解釈に注意が必要です。
出来高が取得できないチャートでは、累積する出来高入力がないため、CVDが横棒のように表示されることがあります。これはインジケーターの故障ではなく、利用可能な出来高データがないことによる自然な挙動です。
平均足、練行足、カギ足、ポイント&フィギュア、レンジ足などの非標準足では、価格や出来高の扱いが通常足と異なるため、計算結果の解釈に注意してください。
リアルタイムの未確定足では値が更新される可能性があります。Confirmed bars only を有効にしている場合、イベントとアラートは確定足基準になりますが、表示値はライブバー中に更新されることがあります。
初期設定は研究開始用の値であり、特定の銘柄、時間足、市場に最適化されたものではありません。 インジケーター

Smart FVG by EonMetricsSMART FVG
What it does
A "Fair Value Gap" (FVG) is a small gap left behind in price when a move happens so fast that a whole price area gets skipped over — nobody actually traded there. It shows up as a gap between three candles in a row. These gaps often get "filled" later, meaning price comes back to trade through that skipped area before continuing on its way (or reversing). This indicator finds these gaps automatically and draws a box around each one.
It also tells you which gaps look more important: a gap is marked "STRONG" only when BOTH of these are true at the same time — the gap is unusually large (measured against recent average volatility) AND the candle that created it traded on unusually high volume. Both conditions have to be true together; a big gap on quiet volume, or high volume with only a small gap, does not count as Strong. This two-part check is stricter than simply flagging "any big gap," which is what most similar tools do.
How to actually use it (step by step)
Let gaps form naturally as price moves. Each one is drawn as a colored box — green/cyan-ish tones for bullish (demand) gaps, red/orange tones for bearish (supply) gaps.
Pay extra attention to boxes marked "STRONG" — these represent a real, forceful, high-conviction move, not just random noise.
When price comes back down (or up) into a gap box, that's a potential trade opportunity — buy near a bullish gap, sell near a bearish gap — especially reacting at the dotted 50% line drawn through the middle of the box.
Look at the small number in the corner of each box — it counts how many candles ago the gap formed. A small number (fresh gap) is generally considered more reliable than a large number (old, already-tested-many-times gap).
If you turn on the higher-timeframe overlay, you'll also see gaps from a bigger timeframe (marked "HTF") plotted directly on your current chart — these represent bigger, more significant levels than same-timeframe gaps.
Every setting explained
Visualization group
Bullish FVG / Bearish FVG — the fill color for ordinary gaps.
Strong Bullish FVG / Strong Bearish FVG — the fill color for gaps that pass the "Strong" test above.
Show 50% Line (EQ) — draws a line through the exact middle of every gap box; this is a common spot for price to react to.
EQ Line Color.
Width Mode — controls how far the box stretches to the right: "Dynamic" keeps growing the box to reach today's candle in real time, "Fixed" stops the box at a set number of candles wide, "Extended" stretches the box all the way to the right edge of your screen forever.
Fixed Width (bars) — how many candles wide the box is, only used when Width Mode is set to Fixed.
Min FVG Size (x ATR) — the smallest gap size the script will bother drawing, measured against recent average volatility. Raise this to ignore tiny, insignificant gaps; set to 0 to see every gap no matter how small.
Mitigation group (mitigation = "price has now traded back through the gap")
Delete Mitigated Zones — when turned on, a gap box disappears completely once price fills it. When off, it stops growing and stays on the chart as a faded historical marker.
Mitigation Level — decide what counts as "filled": either price reaching the halfway (50%) point of the gap, or price completely closing the entire gap.
Mitigation Confirmation — decide what counts as reaching that level: any wick poking into it ("Wicks"), or a full candle close past it ("Close" — stricter, fewer false triggers).
Imbalance Age group
Show Age Label — displays a small number (like "34b") showing how many candles ago the gap was created.
Fade Old Zones — when turned on, gap boxes slowly become more transparent as they age, so your eye is naturally drawn to the freshest ones.
Max Age for Full Fade (bars) — how many candles it takes for a gap to reach maximum fade/transparency.
Strong Imbalance group
Mark Strong Imbalances — master on/off switch for the whole Strong-gap detection described above.
Min Gap Size (x ATR) — how big the gap must be (relative to recent volatility) to count toward "Strong" — this is one of the two required conditions.
Min Volume (x SMA 20) — how much higher than the recent 20-candle average volume the gap-forming candle's volume must be — this is the second required condition. Both this and the size condition must be true at the same time.
Show 'STRONG' Tag — shows the word "STRONG" written inside qualifying gap boxes.
Labels group
Show Labels — master switch for all text written inside gap boxes (age number, STRONG tag, HTF tag). Turn this off to hide all text and keep only the colored boxes.
Label Text Color.
MTF FVG group (MTF = "multiple timeframes")
Show Higher Timeframe FVGs — turns on the overlay of gaps from a bigger timeframe, drawn directly on your current chart.
Higher Timeframe — which bigger timeframe to pull gaps from (should be higher than whatever timeframe you're currently viewing).
HTF Bullish FVG / HTF Bearish FVG — colors for these imported higher-timeframe gaps.
Show HTF Label — shows an "HTF" tag inside these imported gaps so you can tell them apart from same-timeframe ones. インジケーター

NSE/BSE Key Support & Resistance | MTF Pro-3.1Advanced pivot-based Support & Resistance with multi-timeframe confluence, strength scoring, volume-confirmed breaks, and adaptive zone visuals — built specifically for Indian stock market (NSE/BSE).
Overview
Most S&R indicators draw every pivot as an equal horizontal line and extend it infinitely to the right — creating cluttered, unreadable charts. This indicator solves that by scoring every level based on how strongly price rejected it , merging overlapping levels from different timeframes into a single confluence zone, and only showing the levels that actually matter.
Built and tuned specifically for NSE and BSE stocks, indices (Nifty 50, Bank Nifty, Sensex), and F&O instruments.
Key Features
🔷 Multi-Timeframe Support (4 TFs)
Enable up to 4 independent timeframes simultaneously. Each timeframe's pivots are detected separately and tagged in the label — , , , . You choose which timeframes to activate.
🔷 Cross-TF Confluence Merge
When two different timeframes produce a pivot at nearly the same price (within ATR proximity), they automatically merge into a single stronger zone instead of drawing two overlapping boxes. The label shows both sources — — and the level receives a confluence strength bonus. These merged zones are your highest-priority trade levels.
🔷 Advanced Strength Scoring
Every level carries a live strength score (★) that accumulates over time. Each touch is scored individually based on:
Wick size relative to candle range (how strongly price rejected)
Distance of close from the level (how convincingly price pulled back)
Whether volume was above average on that candle
Whether a strong body / engulfing candle formed
A barely touching wick scores ~0.5. A high-volume hammer rejection scores ~5–6. The score drives both zone opacity and zone width — strong levels appear bold and wide, weak levels fade visually.
🔷 Volume-Based Break Filter
A level is only invalidated when price closes beyond it and volume meets a configurable threshold (default: 1× average volume). Low-volume spikes through a level are ignored as false breakouts — the zone remains valid. Break alerts include the volume ratio so you know the conviction behind the move.
🔷 Adaptive Zone Visuals
No right extension — zones terminate at the current bar (valid) or the break bar (broken). No infinite lines cluttering the right side of your chart.
Opacity scales with strength — strongest levels are most visible, weakest levels are nearly transparent.
Zone width scales with strength — high-confidence zones are wider, giving a visual sense of the price area's importance.
🔷 Clean Labels
Each label shows the full picture at a glance:
21450.00 ★6.5 ×3
Timeframe source | Price | Strength score | Touch count
Settings Guide
SettingWhat it doesPivot LengthBars each side to confirm a pivot. Higher = fewer, stronger levelsMin StrengthHide levels below this score. Raise to show only confirmed levelsATR Merge DistanceHow close two levels must be to merge into oneInvalidationClose-based (reliable) or Wick-based (faster) break detectionVolume Break FilterRequire above-average volume to confirm a breakoutMin Volume MultiplierHow many times average volume needed to confirm a breakMax Active LevelsCap total zones shown on chartStrength → Zone OpacityToggle adaptive opacity based on strength score
How to Use
Bounce trades — price enters a green (support) zone → wait for a rejection candle with volume → enter above the rejection candle high, SL below zone bottom.
Rejection trades — price enters a red (resistance) zone → wait for a bearish candle with volume → enter below candle low, SL above zone top.
Breakout trades — price closes beyond a zone with high volume (break alert fires) → wait for pullback to the broken level → trade in the direction of the break.
Highest priority setups — zones tagged or with ★ score above 5 and multiple touches. These are the levels institutional money respects.
Alerts
The indicator fires alert() calls for:
Break confirmed — includes ticker, price, and volume ratio
Retest — includes ticker, price, and touch quality score
Set alert condition to "Any alert() function call" in TradingView's alert dialog.
Notes
Designed and tested on NSE/BSE equities and F&O stocks
Works on any timeframe from 1 minute to Weekly
All calculations are original — pivot detection, strength engine, confluence merge, and volume filter are built from scratch in Pine Script v6 インジケーター

DAX Universe Relative Strength & Volume Quality [JS]DAX Universe RS & Volume Quality is a relative strength and pullback quality indicator designed for German stocks from the DAX, MDAX, SDAX and TecDAX universe.
The indicator measures a stock’s weighted relative performance against an equal-weighted German equity benchmark made from DAX, MDAX, SDAX and TecDAX. The relative strength model is inspired by IBD / Minervini-style momentum analysis, giving more weight to recent performance while still considering the medium- and longer-term trend.
Relative Strength Model:
• 40% weight: approx. 3-month performance
• 20% weight: approx. 6-month performance
• 20% weight: approx. 9-month performance
• 20% weight: approx. 12-month performance
The result is displayed as a percentage relative to the German stock universe benchmark:
• RS above 0% = the stock is outperforming the benchmark
• RS below 0% = the stock is underperforming the benchmark
• RS above the user-defined strength threshold = RS STARK / strong relative strength
In addition to relative strength, the indicator includes a High-Volume Down-Day filter. This helps assess whether a pullback is still constructive or whether distribution pressure may be increasing. The user can define:
• Lookback period
• Minimum loss required for a down-day to count
• Volume moving average length
• High-volume factor
• Maximum allowed High-Volume Down-Days
The simplified status box highlights the current setup condition using color:
• Green = strong relative strength and acceptable volume quality
• Yellow = positive or improving relative strength, but not yet ideal
• Red = weak relative strength or too many High-Volume Down-Days
The textbox position, size, width and height can be adjusted in the indicator settings.
This indicator is designed as a decision-support and screening tool for relative strength, pullback quality and German stock leadership analysis. It is not an official IBD RS Rating and does not provide financial advice or automatic buy/sell recommendations. Always combine it with your own chart analysis, risk management and market context. インジケーター

インジケーター

インジケーター
