Price & Volume Profile (Expo)█ Overview
The Price & Volume Profile provides a holistic perspective on market dynamics by simultaneously tracking price action and trading volume across a range of price levels. So it is not only a volume-based indicator but also a price-based one. In addition to illustrating volume distribution, it quantifies how frequently the price has fallen within a particular range, thus offering a holistic perspective on market dynamics.
This unique and comprehensive approach to market analysis by considering both price action and trading volume, two crucial dimensions of market activity. Its distinctive methodology offers several advantages:
Holistic Market View: By simultaneously tracking the frequency of specific price ranges (Price Profile) and the volume traded at those ranges (Volume Profile), this indicator provides a more complete picture of market behavior. It shows not only where the market is trading but also how much it's trading, reflecting both price acceptance levels and market participation intensity.
Point of Control (POC): The POC, as highlighted by this indicator, serves as a significant reference point for traders. It identifies the price level with the highest trading activity, thus indicating a strong consensus among market participants about the asset's fair value. Observing how price interacts with the POC can offer valuable insights into market sentiment and potential trend reversals.
Support and Resistance Levels: Price levels with high trading activity often act as support or resistance in future price movements. The indicator visually represents these levels, enabling traders to anticipate potential price reactions.
Price Profile
Price and Volume Profile
█ Calculations
The algorithm analyzes both trade frequency and volume across different price levels. It identifies these levels within the visible chart range, then examines each bar to determine if the selected price falls within these levels. If so, it increases a counter and adds the trading volume. This process repeats across the visible range and is visualized as a horizontal histogram, each bar representing a price level and the bar length reflecting trade frequency and volume. Additionally, it calculates the Point of Control (POC), signifying the price level with the highest activity.
In summary: The histogram presents a dual perspective - not only the traded volume at each price level but also the frequency of the price hitting each range. The longer the bar, the more times the price has frequented that specific range, revealing key insights into price behavior and acceptance levels. These frequently visited areas often emerge as strong support or resistance zones, helping traders navigate market movements.
Please note that the indicator adjusts to the visible price range, making it adaptable to changing market conditions. This dynamic analysis can provide more relevant and timely information than static indicators.
█ How to use
This indicator is beneficial for traders as it offers insights into the distribution of trading activity across different price levels. It helps identify key areas of support and resistance and gives a visual representation of market sentiment and liquidity.
The point of control (POC) , which is the price level with the highest traded volume or frequency count, becomes even more crucial in this context. It marks the price at which the most trading activity occurred, signaling a strong consensus among market participants about the asset's fair value. If the market price deviates significantly from the POC, it could suggest an overbought or oversold condition, potentially leading to a price reversion.
Fair Price Areas/gaps are specific price levels or zones where an asset has spent limited time in the past. These areas are considered interesting or significant because they may have an impact on future price action.
Similar to the concept of fair value gaps, which refers to discrepancies between an asset's market price and its estimated intrinsic value, Fair Price Areas/gaps focus on price levels that have been relatively underutilized in terms of trading activity. When an asset's price reaches a Fair Price Area/gap, traders and investors pay attention because they expect the price to react in some way. The rationale behind this concept is that price tends to gravitate towards areas where it has spent less time in the past, as the market perceives them as significant levels.
█ Settings
The indicator is customizable, allowing users to define the number of price levels (rows), the offset, the data source, and whether to display volume or frequency count. It also adjusts dynamically to the visible price range on the chart, ensuring that the analysis remains relevant and timely with changing market conditions.
Source: The price to use for the calculation. Typically, this is the closing price. By considering the user-selected Source (typically the closing price), the indicator determines the frequency with which the price lands within each designated price level (row) over the selected period. In essence, the indicator provides a count of bars where the Source price falls within each range, essentially creating a "Price Profile."
Row Size: The number of price levels (rows) to divide the visible price range into.
Display: Choose whether to display the number of bars ("Counter") or the total volume ("Volume") for each price level.
Offset: The distance of the histogram from the price chart.
Point of Control (POC): If enabled, the indicator will highlight the price level with the most activity.
-----------------
Disclaimer
The information contained in my Scripts/Indicators/Ideas/Algos/Systems does not constitute financial advice or a solicitation to buy or sell any securities of any type. I will not accept liability for any loss or damage, including without limitation any loss of profit, which may arise directly or indirectly from the use of or reliance on such information.
All investments involve risk, and the past performance of a security, industry, sector, market, financial product, trading strategy, backtest, or individual's trading does not guarantee future results or returns. Investors are fully responsible for any investment decisions they make. Such decisions should be based solely on an evaluation of their financial circumstances, investment objectives, risk tolerance, and liquidity needs.
My Scripts/Indicators/Ideas/Algos/Systems are only for educational purposes!
חפש סקריפטים עבור "poc"
Chart Champions - Part 3 - SessionsThank you for sparing you time to read my indicator.
This indicator has been created as a suite of 3. This was to ensure that those with only the Free Trading View account could benefit (with their restriction to 3 indicators). Please ensure you install each indicator and read each indicator write up to fully understand what has tried to achieved.
Chart Champions – Part 1 –Lvls nPOC VWAPS
This indicator is broken down into:
• Levels
• VWAPS
• Naked Point of Control
Levels
It displays the levels to the right of the price Axis to enable the user to have a cleaner chart.
The below levels will automatically appear:
dOpen – pdHigh – pdLow – pdEQ – pwEQ
Optional Levels include:
mOpen – pmOpen – pdOpen – dbyOpen – wOpen – pwOpen
VWAPs
Optional VWAPs
Daily (including pdVWAP close) – Weekly – Monthly
Naked Points of Control (nPOC)
To view the nPOC move the chart back in time to pick up the nPOCs.
Chart Champions – Part 2 – CCV IBs POC
This indicator is broken down into:
• Chart Champions Value
• Initial Balance
• Points of Control
Chart Champions Value (CCV)
CCV is based on the 80% rule of the dOpen opening outside of the pdVAH/pdVAL. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Initial Balance (IB)
IB is based on the first 60 minutes of the market opening. It captures the highest and lowest points within that 60 minutes. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Points of Control (POCs)
POC are the price levels where the most volume was traded.
Developing POC (dPOC) will constantly move with volume/price action through out the day.
Optional POCs
Previous Day POC (pdPOC) – Day Before Yesterday POC (dbyPOC)
Chart Champions – Part 3 – Sessions - Manual Input
This indicator is broken down into:
• Manual Inputs (daily, weekly, monthly)
• IGOR SessionsTtimes
• Pre + Market Openings
Manual Input
Daily x3
Weekly x 3
Monthly x 3
This allows the trader to put in specific levels.
IGOR Session Times
This is a user specific requirement to highlight cetain times during the day, displayed at the bottom of the chart in the colour strip.
Pre + Market Openings
This allows the user to see when pre market trading has started and with the live maket has started, displayed at the top of the chart in colours.
A huge thank you goes out to:
Stackoverflow users AnyDozer and Bjorn.
TV user ahancock for allow me use of this code.
Disclaimer the lower the timeframe the more information it processes.
Chart Champions - Part 1 - nPOC - Levels - VWAPsThank you for sparing you time to read my indicator.
This indicator has been created as a suite of 3. This was to ensure that those with only the Free Trading View account could benefit (with their restriction to 3 indicators). Please ensure you install each indicator and read each indicator write up to fully understand what has tried to achieved.
Chart Champions – Part 1 –Lvls nPOC VWAPS
This indicator is broken down into:
• Levels
• VWAPS
• Naked Point of Control
Levels
It displays the levels to the right of the price Axis to enable the user to have a cleaner chart.
The below levels will automatically appear:
dOpen – pdHigh – pdLow – pdEQ – pwEQ
Optional Levels include:
mOpen – pmOpen – pdOpen – dbyOpen – wOpen – pwOpen
VWAPs
Optional VWAPs
Daily (including pdVWAP close) – Weekly – Monthly
Naked Points of Control (nPOC)
To view the nPOC move the chart back in time to pick up the nPOCs.
Chart Champions – Part 2 – CCV IBs POC
This indicator is broken down into:
• Chart Champions Value
• Initial Balance
• Points of Control
Chart Champions Value (CCV)
CCV is based on the 80% rule of the dOpen opening outside of the pdVAH/pdVAL. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Initial Balance (IB)
IB is based on the first 60 minutes of the market opening. It captures the highest and lowest points within that 60 minutes. Please do you own research to fully understand how this trading strategy works (readily avaliable online).
Points of Control (POCs)
POC are the price levels where the most volume was traded.
Developing POC (dPOC) will constantly move with volume/price action through out the day.
Optional POCs
Previous Day POC (pdPOC) – Day Before Yesterday POC (dbyPOC)
Chart Champions – Part 3 – Sessions - Manual Input
This indicator is broken down into:
• Manual Inputs (daily, weekly, monthly)
• IGOR SessionsTtimes
• Pre + Market Openings
Manual Input
Daily x3
Weekly x 3
Monthly x 3
This allows the trader to put in specific levels.
IGOR Session Times
This is a user specific requirement to highlight cetain times during the day, displayed at the bottom of the chart in the colour strip.
Pre + Market Openings
This allows the user to see when pre market trading has started and with the live maket has started, displayed at the top of the chart in colours.
A huge thank you goes out to:
Stackoverflow users AnyDozer and Bjorn.
TV user ahancock for allow me use of this code.
Disclaimer the lower the timeframe the more information it processes.
LibVPrfLibrary "LibVPrf"
This library provides an object-oriented framework for volume
profile analysis in Pine Script®. It is built around the `VProf`
User-Defined Type (UDT), which encapsulates all data, settings,
and statistical metrics for a single profile, enabling stateful
analysis with on-demand calculations.
Key Features:
1. **Object-Oriented Design (UDT):** The library is built around
the `VProf` UDT. This object encapsulates all profile data
and provides methods for its full lifecycle management,
including creation, cloning, clearing, and merging of profiles.
2. **Volume Allocation (`AllotMode`):** Offers two methods for
allocating a bar's volume:
- **Classic:** Assigns the entire bar's volume to the close
price bucket.
- **PDF:** Distributes volume across the bar's range using a
statistical price distribution model from the `LibBrSt` library.
3. **Buy/Sell Volume Splitting (`SplitMode`):** Provides methods
for classifying volume into buying and selling pressure:
- **Classic:** Classifies volume based on the bar's color (Close vs. Open).
- **Dynamic:** A specific model that analyzes candle structure
(body vs. wicks) and a short-term trend factor to
estimate the buy/sell share at each price level.
4. **Statistical Analysis (On-Demand):** Offers a suite of
statistical metrics calculated using a "Lazy Evaluation"
pattern (computed only when requested via `get...` methods):
- **Central Tendency:** Point of Control (POC), VWAP, and Median.
- **Dispersion:** Value Area (VA) and Population Standard Deviation.
- **Shape:** Skewness and Excess Kurtosis.
- **Delta:** Cumulative Volume Delta, including its
historical high/low watermarks.
5. **Structural Analysis:** Includes a parameter-free method
(`getSegments`) to decompose a profile into its fundamental
unimodal segments, allowing for modality detection (e.g.,
identifying bimodal profiles).
6. **Dynamic Profile Management:**
- **Auto-Fitting:** Profiles set to `dynamic = true` will
automatically expand their price range to fit new data.
- **Manipulation:** The resolution, price range, and Value Area
of a dynamic profile can be changed at any time. This
triggers a resampling process that uses a **linear
interpolation model** to re-bucket existing volume.
- **Assumption:** Non-dynamic profiles are fixed and will throw
a `runtime.error` if `addBar` is called with data
outside their initial range.
7. **Bucket-Level Access:** Provides getter methods for direct
iteration and analysis of the raw buy/sell volume and price
boundaries of each individual price bucket.
---
**DISCLAIMER**
This library is provided "AS IS" and for informational and
educational purposes only. It does not constitute financial,
investment, or trading advice.
The author assumes no liability for any errors, inaccuracies,
or omissions in the code. Using this library to build
trading indicators or strategies is entirely at your own risk.
As a developer using this library, you are solely responsible
for the rigorous testing, validation, and performance of any
scripts you create based on these functions. The author shall
not be held liable for any financial losses incurred directly
or indirectly from the use of this library or any scripts
derived from it.
create(buckets, rangeUp, rangeLo, dynamic, valueArea, allot, estimator, cdfSteps, split, trendLen)
Construct a new `VProf` object with fixed bucket count & range.
Parameters:
buckets (int) : series int number of price buckets ≥ 1
rangeUp (float) : series float upper price bound (absolute)
rangeLo (float) : series float lower price bound (absolute)
dynamic (bool) : series bool Flag for dynamic adaption of profile ranges
valueArea (int) : series int Percentage of total volume to include in the Value Area (1..100)
allot (series AllotMode) : series AllotMode Allocation mode `classic` or `pdf` (default `classic`)
estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : series LibBrSt.PriceEst PDF model when `model == PDF`. (deflault = 'uniform')
cdfSteps (int) : series int even #sub-intervals for Simpson rule (default 20)
split (series SplitMode) : series SplitMode Buy/Sell determination (default `classic`)
trendLen (int) : series int Look‑back bars for trend factor (default 3)
Returns: VProf freshly initialised profile
method clone(self)
Create a deep copy of the volume profile.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object to copy
Returns: VProf A new, independent copy of the profile
method clear(self)
Reset all bucket tallies while keeping configuration intact.
Namespace types: VProf
Parameters:
self (VProf) : VProf profile object
Returns: VProf cleared profile (chaining)
method merge(self, srcABuy, srcASell, srcRangeUp, srcRangeLo, srcCvd, srcCvdHi, srcCvdLo)
Merges volume data from a source profile into the current profile.
If resizing is needed, it performs a high-fidelity re-bucketing of existing
volume using a linear interpolation model inferred from neighboring buckets,
preventing aliasing artifacts and ensuring accurate volume preservation.
Namespace types: VProf
Parameters:
self (VProf) : VProf The target profile object to merge into.
srcABuy (array) : array The source profile's buy volume bucket array.
srcASell (array) : array The source profile's sell volume bucket array.
srcRangeUp (float) : series float The upper price bound of the source profile.
srcRangeLo (float) : series float The lower price bound of the source profile.
srcCvd (float) : series float The final Cumulative Volume Delta (CVD) value of the source profile.
srcCvdHi (float) : series float The historical high-water mark of the CVD from the source profile.
srcCvdLo (float) : series float The historical low-water mark of the CVD from the source profile.
Returns: VProf `self` (chaining), now containing the merged data.
method addBar(self, offset)
Add current bar’s volume to the profile (call once per realtime bar).
classic mode: allocates all volume to the close bucket and classifies
by `close >= open`. PDF mode: distributes volume across buckets by the
estimator’s CDF mass. For `split = dynamic`, the buy/sell share per
price is computed via context-driven piecewise s(u).
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
offset (int) : series int To offset the calculated bar
Returns: VProf `self` (method chaining)
method setBuckets(self, buckets)
Sets the number of buckets for the volume profile.
Behavior depends on the `isDynamic` flag.
- If `dynamic = true`: Works on filled profiles by re-bucketing to a new resolution.
- If `dynamic = false`: Only works on empty profiles to prevent accidental changes.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
buckets (int) : series int The new number of buckets
Returns: VProf `self` (chaining)
method setRanges(self, rangeUp, rangeLo)
Sets the price range for the volume profile.
Behavior depends on the `dynamic` flag.
- If `dynamic = true`: Works on filled profiles by re-bucketing existing volume.
- If `dynamic = false`: Only works on empty profiles to prevent accidental changes.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
rangeUp (float) : series float The new upper price bound
rangeLo (float) : series float The new lower price bound
Returns: VProf `self` (chaining)
method setValueArea(self, valueArea)
Set the percentage of volume for the Value Area. If the value
changes, the profile is finalized again.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
valueArea (int) : series int The new Value Area percentage (0..100)
Returns: VProf `self` (chaining)
method getBktBuyVol(self, idx)
Get Buy volume of a bucket.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
idx (int) : series int Bucket index
Returns: series float Buy volume ≥ 0
method getBktSellVol(self, idx)
Get Sell volume of a bucket.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
idx (int) : series int Bucket index
Returns: series float Sell volume ≥ 0
method getBktBnds(self, idx)
Get Bounds of a bucket.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
idx (int) : series int Bucket index
Returns:
up series float The upper price bound of the bucket.
lo series float The lower price bound of the bucket.
method getPoc(self)
Get POC information.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
Returns:
pocIndex series int The index of the Point of Control (POC) bucket.
pocPrice. series float The mid-price of the Point of Control (POC) bucket.
method getVA(self)
Get Value Area (VA) information.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object
Returns:
vaUpIndex series int The index of the upper bound bucket of the Value Area.
vaUpPrice series float The upper price bound of the Value Area.
vaLoIndex series int The index of the lower bound bucket of the Value Area.
vaLoPrice series float The lower price bound of the Value Area.
method getMedian(self)
Get the profile's median price and its bucket index. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns:
medianIndex series int The index of the bucket containing the Median.
medianPrice series float The Median price of the profile.
method getVwap(self)
Get the profile's VWAP and its bucket index. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns:
vwapIndex series int The index of the bucket containing the VWAP.
vwapPrice series float The Volume Weighted Average Price of the profile.
method getStdDev(self)
Get the profile's volume-weighted standard deviation. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns: series float The Standard deviation of the profile.
method getSkewness(self)
Get the profile's skewness. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns: series float The Skewness of the profile.
method getKurtosis(self)
Get the profile's excess kurtosis. Calculates the value on-demand if stale.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns: series float The Kurtosis of the profile.
method getSegments(self)
Get the profile's fundamental unimodal segments. Calculates on-demand if stale.
Uses a parameter-free, pivot-based recursive algorithm.
Namespace types: VProf
Parameters:
self (VProf) : VProf The profile object.
Returns: matrix A 2-column matrix where each row is an pair.
method getCvd(self)
Cumulative Volume Delta (CVD) like metric over all buckets.
Namespace types: VProf
Parameters:
self (VProf) : VProf Profile object.
Returns:
cvd series float The final Cumulative Volume Delta (Total Buy Vol - Total Sell Vol).
cvdHi series float The running high-water mark of the CVD as volume was added.
cvdLo series float The running low-water mark of the CVD as volume was added.
VProf
VProf Bucketed Buy/Sell volume profile plus meta information.
Fields:
buckets (series int) : int Number of price buckets (granularity ≥1)
rangeUp (series float) : float Upper price range (absolute)
rangeLo (series float) : float Lower price range (absolute)
dynamic (series bool) : bool Flag for dynamic adaption of profile ranges
valueArea (series int) : int Percentage of total volume to include in the Value Area (1..100)
allot (series AllotMode) : AllotMode Allocation mode `classic` or `pdf`
estimator (series PriceEst enum from AustrianTradingMachine/LibBrSt/1) : LibBrSt.PriceEst Price density model when `model == PDF`
cdfSteps (series int) : int Simpson integration resolution (even ≥2)
split (series SplitMode) : SplitMode Buy/Sell split strategy per bar
trendLen (series int) : int Look‑back length for trend factor (≥1)
maxBkt (series int) : int User-defined number of buckets (unclamped)
aBuy (array) : array Buy volume per bucket
aSell (array) : array Sell volume per bucket
cvd (series float) : float Final Cumulative Volume Delta (Total Buy Vol - Total Sell Vol).
cvdHi (series float) : float Running high-water mark of the CVD as volume was added.
cvdLo (series float) : float Running low-water mark of the CVD as volume was added.
poc (series int) : int Index of max‑volume bucket (POC). Is `na` until calculated.
vaUp (series int) : int Index of upper Value‑Area bound. Is `na` until calculated.
vaLo (series int) : int Index of lower value‑Area bound. Is `na` until calculated.
median (series float) : float Median price of the volume distribution. Is `na` until calculated.
vwap (series float) : float Profile VWAP (Volume Weighted Average Price). Is `na` until calculated.
stdDev (series float) : float Standard Deviation of volume around the VWAP. Is `na` until calculated.
skewness (series float) : float Skewness of the volume distribution. Is `na` until calculated.
kurtosis (series float) : float Excess Kurtosis of the volume distribution. Is `na` until calculated.
segments (matrix) : matrix A 2-column matrix where each row is an pair. Is `na` until calculated.
WorldCup Dashboard + Institutional Sessions© 2025 NewMeta™ — Educational use only.
# Full, Premium Description
## WorldCup Dashboard + Institutional Sessions
**A trade-ready, intraday framework that combines market structure, real flow, and institutional timing.**
This toolkit fuses **Institutional Sessions** with a **price–volume decision engine** so you can see *who is active*, *where value sits*, and *whether the drive is real*. You get: **CVD/Delta**, volume-weighted **Momentum**, **Aggression** spikes, **FVG (MTF)** with nearest side, **Daily Volume Profile (VAH/POC/VAL)**, **ATR regime**, a **24h position gauge**, classic **candle patterns**, IBH/IBL + **first-hour “true close”** lines, and a **10-vote confluence scoreboard**—all in one view.
---
## What’s inside (and how to trade it)
### 🌍 Institutional Sessions (Sydney • Tokyo • London • New York)
* Session boxes + a highlighted **first hour**.
* Plots the **true close** (first-hour close) as a running line with a label.
**Use:** Many desks anchor risk to this print. Above = bullish bias; below = bearish. **IBH/IBL** breaks during London/NY carry the most signal.
### 📊 CVD / Delta (Flow)
* Net buyer vs seller pressure with smooth trend state.
**Use:** **Rising CVD + acceptance above mid/POC** confirms continuation. Bearish price + rising CVD = caution (possible absorption).
### ⚡ Volume-Weighted Momentum
* Momentum adjusted by participation quality (volume).
**Use:** Momentum>MA and >0 → trend drive is “real”; <0 and falling → distribution risk.
### 🔥 Aggression Detector
* ROC × normalized volume × wick factor to flag **forceful** candles.
**Use:** On spikes, avoid fading blindly—wait for pullbacks into **aligned FVG** or for aggression to cool.
### 🟦🟪 Fair Value Gaps (with MTF)
* Detects up to 3 recent FVGs and marks the **nearest** side to price.
**Use:** Trend pullbacks into **bullish FVG** for longs; bounces into **bearish FVG** for shorts. Optional threshold to filter weak gaps.
### 🧭 24h Gauge (positioning)
* Shows current price across the 24h low⇢high with a mid reference.
**Use:** Above mid and pushing upper third = momentum continuation setups; below mid = sell the rips bias.
### 🧱 Daily Volume Profile (manual per day)
* **VAH / POC / VAL** derived from discretized rows.
**Use:** **POC below** supports longs; **POC above** caps rallies. Fade VAH/VAL in ranges; treat them as break/hold levels in trends.
### 📈 ATR Regime
* **ATR vs ATR-avg** with direction and regime flag (**HIGH / NORMAL / LOW**).
**Use:** HIGH ⇒ give trades room & favor trend following. LOW ⇒ fade edges, scale targets.
### 🕯️ Candle Patterns (contextual, not standalone)
* Engulfings, Morning/Evening Star, 3 Soldiers/Crows, Harami, Hammer/Shooting Star, Double Top/Bottom.
**Use:** Only with session + flow + momentum alignment.
### 🤝 Price–Volume Classification
* Labels each bar as **continuation**, **exhaustion**, **distribution**, or **healthy pullback**.
**Use:** Align continuation reads with trend; treat “Price↑ + Vol↓” as a caution flag.
### 🧪 Confluence Scoreboard & B/S Meter
* Ten elements vote: 🔵 bull, ⚪ neutral, 🟣 bear.
**Use:** Execution filter—take setups when the board’s skew matches your trade direction.
---
## Playbooks (actionable)
**Trend Pullback (Long)**
1. London/NY active, Momentum↑, CVD↑, price above 24h mid & POC.
2. Pullback into **nearest bullish FVG**.
3. Invalidate under FVG low or **true-close** line.
4. Targets: IBH → VAH → 24h high.
**Range Fade (Short)**
1. Asia/quiet regime, **Price↑ + Vol↓** into **VAH**, ATR low.
2. Nearest FVG bearish or scoreboard skew bearish.
3. Invalidate above VAH/IBH.
4. Targets: POC → VAL.
**News/Impulse**
Aggression spike? Don’t chase. Let it pull back into the aligned FVG; require CVD/Momentum agreement before entry.
---
## Alerts (included)
* **Bull/Bear Confluence ≥ 7/10**
* **Intraday Target Achieved** / **Daily Target Achieved**
* **Session True-Close Retests** (Sydney/Tokyo/London/NY)
*(Keep alerts “Once per bar” unless you specifically want intrabar triggers.)*
---
## Setup Tips
* **UTC**: Choose the reference that matches how you track sessions (default UTC+2).
* **Volume threshold**: 2.0× is a strong baseline; raise for noisy alts, lower for majors.
* **CVD smoothing**: 14–24 for scalps; 24–34 for slower markets.
* **ATR lengths**: Keep defaults unless your asset has a persistent regime shift.
---
## Why this framework?
Because **timing (sessions)**, **truth (flow)**, and **location (value/FVG)** together beat any single signal. You get *who is trading*, *how strong the push is*, and *where risk lives*—on one screen—so execution is faster and cleaner.
---
**Disclaimer**: Educational use only. Not financial advice. Markets are risky—backtest and size responsibly.
Previous TPOIndicator Summary
This Pine Script indicator, "Previous TPO," is designed to calculate and display five key price levels from the previous trading day's market activity. It uses a 30-minute TPO (Time Price Opportunity) profile, which is a method of organizing price by time to find areas of high and low activity.
The five levels it plots on the current day are:
1. Previous Value Area High (VAH)
2. Previous Value Area Low (VAL)
3. Previous Point of Control (POC)
4. Previous Initial Balance High (IBH)
5. Previous Initial Balance Low (IBL)
The script is built to be efficient, running its main calculation only once at the beginning of each new day. It also includes an automatic line management system to delete old lines, preventing the "Too many lines" error and keeping the chart clean.
How the Code Works
1. Data Collection: At the start of a new day (00:00), the script looks back at the chart's history. It uses request.security to access 30-minute bar data.
2. Collector Loop: It then loops backward, bar by bar, to find and store 48 unique 30-minute High/Low data points, which represents the full 24-hour range of the previous day.
3. TPO Profile: With this 30-minute data, it builds a TPO profile. It divides the previous day's price range into small bins (price levels) and counts how many 30-minute periods "touched" each price bin.
4. Level Calculation:
o POC: It finds the price bin with the highest TPO count (the most traded price) and sets it as the Point of Control.
o VAH/VAL: It starts at the POC and expands outward, adding the next-most-traded price bins until 70% (or the user-defined percentage) of the day's TPOs are included. The highest and lowest prices of this range are the Value Area High and Value Area Low.
o IBH/IBL: It identifies the high and low of the first hour (the first two 30-minute bars) of the previous day to set the Initial Balance High and Initial Balance Low.
5. Drawing: The script draws these five levels as horizontal lines across the current trading day, providing a constant reference.
6. Line Management: It keeps track of all lines in an array. When the total number of lines exceeds the user's limit (e.g., 50 days * 5 lines = 250), it automatically deletes the oldest lines from the chart.
Usefulness for Trading
This indicator provides a powerful framework for intraday traders by contextualizing the current day's price action against the previous day's "auction."
• Key Support/Resistance: The VAH, VAL, and POC act as significant support and resistance lev-els. Price reacting at these levels can signal mean reversion, while acceptance beyond them can signal a trend or expansion day.
• Value Area as Context: Trading inside the previous day's value area (between VAH and VAL) is often seen as "balanced" or "range-bound" trading. Trading outside of it is "unbalanced" or "trending."
• POC as a "Magnet": The POC, being the area of highest volume/time, often acts as a "magnet" or "center of gravity" for price.
• Opening Range: The Initial Balance (IB) levels show the opening range. A breakout from this range is often a key signal for the day's initial direction.
• 80% Rule: The script contains (currently commented-out) setup logic for the "80% Rule." This is a specific Market Profile strategy where:
1. The market opens inside the previous day's Value Area.
2. The Initial Balance fails to extend outside the VA (e.g., in a short setup, the IB high stays below the VAH).
3. This setup suggests an 80% probability that the price will rotate and test the other side of the Value Area (e.g., test the VAL).
Publication and restrictions
This script is published under the Mozilla Public Licence 2.0 (MPL 2.0) and is therefore suitable for publi-cation as an open source indicator on TradingView.
Timeframe limitation: The indicator is designed for intraday timeframes. Timeframes below 10 minutes do not work and lead to an error. Recommended time frame 30 minutes.
It will not work correctly on:
Time frame under 10 minutes: The data collection loop (max_bars_to_check = 3000) is not large enough to collect the bars required for a full day on a 5-minute chart or smaller.
High time frames (e.g. 1H, 4H, Daily): The script's logic is based on a chart timeframe 30-minute data that it requests. If higher time frames are selected, the script works but the zones are no longer correct or become irrelevant.
Dobrusky Volume PulseWhat it does & who it’s for
Volume Pulse is a lightweight, customizable volume profile overlay that shows traders how volume is distributed across price levels over a chosen lookback window. Unlike standard profiles, it also maps cumulative buy/sell pressure at each level, so you see not just where volume clustered, but which side dominated.
Core ideas
Cumulative volume by price: Builds a horizontal profile of traded volume at each level, based on user-defined depth and resolution.
Directional pressure mapping: At every price level, the script accumulates bullish vs. bearish volume based on candle closes vs. opens, providing a directional read on whether buyers or sellers had the upper hand.
POC: Automatically highlights the Point of Control (POC) — the level with the most activity.
Customizable presentation: Adjustable profile resolution, bar width, offset, colors, and whether to show cumulative, directional, or both.
How the components work together
The profile provides the “where,” while the buy/sell mapping adds the “who.” By combining these, traders can see whether a high-volume node was buyer-driven absorption or seller-driven distribution — a distinction classic profiles don’t reveal. This directional overlay reduces the guesswork of interpreting raw volume clusters.
How to use
Apply the overlay to your chart.
Watch the POC and areas of significant increase or decrease in volume (and pressure) as natural magnets or rejection areas.
When trading intraday, I've found that higher timeframe volume levels act as strong magnets. In the chart, you can see the volume levels I've drawn on the SPY daily chart. These levels are targets I use when trading the 5-minute chart.
Pay attention to color dominance at those zones — green-heavy nodes suggest buyer control; red-heavy nodes suggest seller control.
Combine with time-based volume tools and price-action for a more comprehensive trade plan.
Settings overview
Lookback depth: Number of bars used for profile calculation.
Profile resolution: Number of horizontal bars to split volume across price.
Bar style: Width, offset, and multiplier for scaling.
Toggle layers: Choose cumulative, directional, or both.
POC display: Optional highlight of the most traded level.
Limitations & best practices
This is a contextual overlay, not a trade-signal system.
Works best on liquid instruments (indices, futures, major stocks, liquid crypto) where volume distribution is meaningful.
Directional mapping uses candle body bias (close vs. open), not raw order flow. For full tape analysis, pair with actual order flow data.
Originality justification
Dual profile: combines cumulative volume-by-price and buyer/seller pressure per bin (close vs. open) — not a standard VP clone.
From-scratch binning + POC in a single pass for speed; no reused libraries.
Flexible display (cumulative / directional / both) with independent resolution, width, and offset for intraday or HTF use.
Clear visuals (optional POC, balanced node coloring) and open-source code so traders can audit and extend.
CVD Divergence & Volume ProfileThis Pine Script indicator, named "CVD Divergence & Volume Profile," is designed to identify potential trading opportunities by combining Cumulative Volume Delta (CVD) divergence with Volume Profile levels and an optional Simple Moving Average (SMA) trend filter. It plots signals directly on the price chart.
Here's a breakdown of what each component does and how to potentially trade with it:
1. Cumulative Volume Delta (CVD) Divergence
What it does: CVD measures the cumulative difference between buying and selling volume. A rising CVD indicates more buying pressure, while a falling CVD indicates more selling pressure. Divergence occurs when the price action contradicts the CVD's direction, suggesting a potential shift in momentum or trend reversal.
Bearish Divergence: The price makes a higher high, but the CVD makes a lower high (or fails to make a new high). This suggests that despite the price increasing, the underlying buying pressure is weakening.
Bullish Divergence: The price makes a lower low, but the CVD makes a higher low (or fails to make a new low). This suggests that despite the price decreasing, the underlying selling pressure is weakening.
Visualization:
Red triangle pointing down on the chart indicates a Bearish Divergence signal.
Green triangle pointing up on the chart indicates a Bullish Divergence signal.
2. Volume Profile Levels (VAH, VAL, POC)
What it does: The indicator calculates simplified Volume Profile levels over a user-defined vp_range (number of candles). These levels represent areas where significant trading activity has occurred:
VAH (Value Area High): The upper boundary of the "Value Area," where 70% of the volume traded.
VAL (Value Area Low): The lower boundary of the "Value Area," where 70% of the volume traded.
POC (Point of Control): The price level within the vp_range where the most volume was traded.
Significance: These levels often act as significant support and resistance zones.
Visualization:
Orange lines for VAH and VAL.
Yellow line for POC.
Zone Proximity (zone_thresh): The indicator only generates divergence signals if the current close price is within a specified percentage zone_thresh of either VAH, VAL, or POC. This filters signals to areas of high liquidity and potential turning points.
3. Trend Filter (SMA)
What it does: This is an optional filter (use_trend_filter) that uses a Simple Moving Average (sma_period, default 200).
Significance: It helps ensure that divergence signals are traded in alignment with the broader market trend, potentially increasing their reliability.
For long signals (bullish divergence), the price (close) must be above the SMA (indicating an uptrend).
For short signals (bearish divergence), the price (close) must be below the SMA (indicating a downtrend).
Visualization: A blue line on the chart representing the SMA.
How to Trade with It (Potential Strategies)
The indicator aims to provide high-probability entry points by combining multiple confirming factors. Here's how you might interpret and trade the signals:
Identify Divergence: Look for the triangle signals on your chart (red for bearish, green for bullish).
Confirm Proximity to Volume Profile Levels: The signal itself confirms that the price is near a significant Volume Profile level (VAH, VAL, or POC). These are areas where price often reacts.
Bullish Signal (Green Triangle): This suggests buying momentum is returning after a price decline, especially when the price is near VAL or POC, which might act as support.
Bearish Signal (Red Triangle): This suggests selling momentum is increasing after a price rally, especially when the price is near VAH or POC, which might act as resistance.
Check Trend Alignment (SMA Filter):
For a long trade: You would ideally want to see a green triangle (bullish divergence) while the price is above the blue SMA line. This indicates a bullish divergence confirming a potential bounce within an existing uptrend.
For a short trade: You would ideally want to see a red triangle (bearish divergence) while the price is below the blue SMA line. This indicates a bearish divergence confirming a potential rejection within an existing downtrend.
Entry and Exit Considerations:
Entry: Consider entering a trade on the candle where the signal appears, or on the subsequent candle for confirmation.
Stop Loss: For a long trade, a logical stop-loss could be placed below the lowest point of the divergence, or below the VAL/POC if the signal occurred near it. For a short trade, above the highest point of the divergence or VAH/POC.
Take Profit: Targets could be set at the opposite Volume Profile level, previous swing highs/lows, or using a fixed risk-reward ratio.
Example Trading Scenario:
Long Trade: You see a green triangle (bullish divergence) printed on the chart. You notice the price is currently at the VAL (orange line). You check the blue SMA line and confirm that the price is above it (uptrend). This confluence of factors (bullish divergence, support at VAL, and uptrend) provides a strong potential long entry signal. You might enter, place your stop loss just below VAL, and target VAH or the next resistance level.
Short Trade: You see a red triangle (bearish divergence). The price is at the VAH (orange line). The price is also below the blue SMA line (downtrend). This suggests a potential short entry. You might enter, place your stop loss just above VAH, and target VAL or the next support level.
Realtime Delta Volume Action [LucF]█ OVERVIEW
This indicator displays on-chart, realtime, delta volume and delta ticks information for each bar. It aims to provide traders who trade price action on small timeframes with volume and tick information gathered as updates come in the chart's feed. It builds its own candles, which are optimized to display volume delta information. It only works in realtime.
█ WARNING
This script is intended for traders who can already profitably trade discretionary on small timeframes. The high cost in fees and the excitement of trading at small timeframes have ruined many newcomers to trading. While trading at small timeframes can work magic for adrenaline junkies in search of thrills rather than profits, I DO NOT recommend it to most traders. Only seasoned discretionary traders able to factor in the relatively high cost of such a trading practice can ever hope to take money out of markets in that type of environment, and I would venture they account for an infinitesimal percentage of traders. If you are a newcomer to trading, AVOID THIS TOOL AT ALL COSTS — unless you are interested in experimenting with the interpretation of volume delta combined with price action. No tool currently available on TradingView provides this type of close monitoring of volume delta information, but if you are not already trading small timeframes profitably, please do not let yourself become convinced that it is the missing piece you needed. Avoid becoming a sucker who only contributes by providing liquidity to markets.
The information calculated by the indicator cannot be saved on charts, nor can it be recalculated from historical bars.
If you refresh the chart or restart the script, the accumulated information will be lost.
█ FEATURES
Key values
The script displays the following key values:
• Above the bar: ticks delta (DT), the total ticks for the bar, the percentage of total ticks that DT represents (DT%)
• Below the bar: volume delta (DV), the total volume for the bar, the percentage of total volume that DV represents (DV%).
Candles
Candles are composed of four components:
1. A top shaped like this: ┴, and a bottom shaped like this: ┬ (picture a normal Japanese candle without a body outline; the values used are the same).
2. The candle bodies are filled with the bull/bear color representing the polarity of DV. The intensity of the body's color is determined by the DV% value.
When DV% is 100, the intensity of the fill is brightest. This plays well in interpreting the body colors, as the smaller, less significant DV% values will produce less vivid colors.
3. The bright-colored borders of the candle bodies occur on "strong bars", i.e., bars meeting the criteria selected in the script's inputs, which you can configure.
4. The POC line is a small horizontal line that appears to the left of the candle. It is the volume-weighted average of all price updates during the bar.
Calculations
This script monitors each realtime update of the chart's feed. It first determines if price has moved up or down since the last update. The polarity of the price change, in turn, determines the polarity of the volume and tick for that specific update. If price does not move between consecutive updates, then the last known polarity is used. Using this method, we can calculate a running volume delta and ticks delta for the bar, which becomes the bar's final delta values when the bar closes (you can inspect values of elapsed realtime bars in the Data Window or the indicator's values). Note that these values will all reset if the script re-executes because of a change in inputs or a chart refresh.
While this method of calculating is not perfect, it is by far the most precise way of calculating volume delta available on TradingView at the moment. Calculating more precise results would require scripts to have access to tick data from any chart timeframe. Charts at seconds timeframes do use exchange/broker ticks when the feeds you are using allow for it, and this indicator will run on them, but tick data is not yet available from higher timeframes. Also, note that the method used in this script is far superior to the intrabar inspection technique used on historical bars in my other "Delta Volume" indicators. This is because volume and ticks delta here are calculated from many more realtime updates than the available intrabars in history. Unfortunately, the calculation method used here cannot be used on historical bars, where intrabar inspection remains, in my opinion, the optimal method.
Inputs
The script's inputs provide many ways to personalize all the components: what is displayed, the colors used to display the information, and the marker conditions. Tooltips provide details for many of the inputs; I leave their exploration to you.
Markers
Markers provide a way for you to identify the points of interest of your choice on the chart. You control the set of conditions that trigger each of the five available markers.
You select conditions by entering, in the field for each marker, the number of each condition you want to include, separated by a comma. The conditions are:
1 — The bar's polarity is up/dn.
2 — `close` rises/falls ("rises" means it is higher than its value on the previous bar).
3 — DV's polarity is +/–.
4 — DV% rises (↕).
5 — POC rises/falls.
6 — The quantity of realtime updates rises (↕).
7 — DV > limit (You specify the limit in the inputs. Since DV can be +/–, DV– must be less than `–limit` for a short marker).
8 — DV% > limit (↕).
9 — DV+ rises for a long marker, DV– falls for a short.
10 — Consecutive DV+/DV– on two bars.
11 — Total volume rises (↕).
12 — DT's polarity is +/–.
13 — DT% rises (↕).
14 — DT+ rises for a long marker, DT– falls for a short.
Conditions showing the (↕) symbol do not have symmetrical states; they act more like filters. If you only include condition 4 in a marker's setup, for example, both long and short markers will trigger on bars where DV% rises. To trigger only long or short markers, you must add a condition providing directional differentiation, such as conditions 1 or 2. Accordingly, you would enter "1,4" or "2,4".
For a marker to trigger, ALL the conditions you specified for it must be met. Long markers appear on the chart as "Mx▲" signs under the values displayed below candles. Short markers display "Mx▼" over the number of updates displayed above candles. The marker's number will replace the "x" in "Mx▲". The script loads with five markers that will not trigger because no conditions are associated with them. To activate markers, you will need to select and enter the set of conditions you require for each one.
Alerts
You can configure alerts on this script. They will trigger whenever one of the configured markers triggers. Alerts do not repaint, so they trigger at the bar's close—which is also when the markers will appear.
█ HOW TO USE IT
As a rule, I do not prescribe expected use of my indicators, as traders have proved to be much more creative than me in using them. Additionally, I tend to think that if you expect detailed recommendations from me to be able to use my indicators, it's a sign you are in a precarious situation and should go back to the drawing board and master the necessary basics that will allow you to explore and decide for yourself if my indicators can be useful to you, and how you will use them. I will make an exception for this thing, as it presents fairly novel information. I will use simple logic to surmise potential uses, as contrary to most of my other indicators, I have NOT used this one to actually trade. Markets have a way of throwing wrenches in our seemingly bullet-proof rationalizing, so drive cautiously and please forgive me if the pointers I share here don't pan out.
The first thing to do is to disable your normal bars. You can do this by clicking on the eye icon that appears when you hover over the symbol's name in the upper-left corner of your chart.
The absolute value and polarity of DV mean little without perspective; that's why I include both total volume for the bar and the percentage that DV represents of that total volume. I interpret a low DV% value as indecision. If you share that opinion, you could, let's say, configure one of the markers on "DV% > 80%", for example (to do so you would enter "8" in the condition field of any marker, and "80" in the limit field for condition 8, below the marker conditions).
I also like to analyze price action on the bar with DV%. Small DV% values should often produce small candle bodies. If a small DV% value occurs on a bar with much movement and high volume, I'm thinking "tough battle with potential explosive power when one side wins". Conversely, large bodies with high DV% mean that large volume is breaching through multiple levels, or that nobody is suddenly willing to take the other side of a normal volume of trades.
I find the POC lines really interesting. First, they tell us the price point where the most significant action (taking into account both price occurrences AND volume) during the bar occurred. Second, they can be useful when compared against past values. Third, their color helps us in figuring out which ones are the most significant. Unsurprisingly, bunches of orange POCs tend to appear in consolidation zones, in pauses, and before reversals. It may be useful to often focus more on POC progression than on `close` values. This is not to say that OHLC values are not useful; looking, as is customary, for higher highs or lower lows, or for repeated tests of precise levels can of course still be useful. I do like how POCs add another dimension to chart readings.
What should you do with the ticks delta above bars? Old-time ticker tape readers paid attention to the sounds coming from it (the "ticker" moniker actually comes from the sound they made). They knew activity was picking up when the frequency of the "ticks" increased. My thinking is that the total number of ticks will help you in the same way, since increasing updates usually mean growing interest—and thus perhaps price movement, as increasing volatility or volume would lead us to surmise. Ticks delta can help you figure out when proportionally large, random orders come in from traders with other perspectives than the short-term price action you are typically working with when you use this tool. Just as volume delta, ticks delta are one more informational component that can help you confirm convergence when building your opinions on price action.
What are strong bars? They are an attempt to identify significance. They are like a default marker, except that instead of displaying "Mx▲/▼" below/above the bar, the candle's body is outlined in bright bull/bear color when one is detected. Strong bars require a respectable amount of conditions to be met (you can see and re-configure them in the inputs). Think of them as pushes rather than indications of an upcoming, strong and multi-bar move. Pushes do, for sure, often occur at the beginning of strong trends. You will often see a few strong bars occur at 2-3 bar intervals at the beginning or middle of trends. But they also tend to occur at tops/bottoms, which makes their interpretation problematic. Another pattern that you will see quite frequently is a final strong bar in the direction of the trend, followed a few bars later by another strong bar in the reverse direction. My summary analyses seemed to indicate these were perhaps good points where one could make a bet on an early, risky reversal entry.
The last piece of information displayed by the indicator is the color of the candle bodies. Three possible colors are used. Bull/bear is determined by the polarity of DV, but only when the bar's polarity matches that of DV. When it doesn't, the color is the divergence color (orange, by default). Whichever color is used for the body, its intensity is determined by the DV% value. Maximum intensity occurs when DV%=100, so the more significant DV% values generate more noticeable colors. Body colors can be useful when looking to confirm the convergence of other components. The visual effect this creates hopefully makes it easier to detect patterns on the chart.
One obvious methodology that comes to mind to trade with this tool would be to use another indicator like Technical Ratings at a higher timeframe to identify the larger context's trend, and then use this tool to identify entries for short-term trades in that direction.
█ NOTES AND RAMBLINGS
Instant Calculations
This indicator uses instant values calculated on the bar only. No moving averages or calculations involving historical periods are used. The only exception to this rule is in some of the marker conditions like "Two consecutive DV+ values", where information from the previous bar is used.
Trading Small vs Long Timeframes
I never trade discretionary at the 5sec–5min timeframes this indicator was designed to be used with; I trade discretionary at 1D, 1W and 1M timeframes, and let systems trade at smaller timeframes. The higher the timeframe you trade at, the fewer fees you will pay because you trade less and are not churning trading volume, as is inevitable at smaller timeframes. Trading at higher timeframes is also a good way to gain an instant edge on most of the trading crowd that has its nose to the ground and often tends to forget the big picture. It also makes for a much less demanding trading practice, where you have lots of time to research and build your long-term opinions on potential future outcomes. While the future is always uncertain, I believe trades riding on long-term trends have stronger underlying support from the reality outside markets.
To traders who will ask why I publish an indicator designed for small timeframes, let me say that my main purpose here is to showcase what can be done with Pine. I often see comments by coders who are obviously not aware of what Pine is capable of in 2021. Since its humble beginnings seven years ago, Pine has grown and become a serious programming language. TradingView's growing popularity and its ongoing commitment to keep Pine accessible to newcomers to programming is gradually making Pine more and more of a standard in indicator and strategy programming. The technical barriers to entry for traders interested in owning their trading practice by developing their personal tools to trade have never been so low. I am also publishing this script because I value volume delta information, and I present here what I think is an original way of analyzing it.
Performance
The script puts a heavy load on the Pine runtime and the charting engine. After running the script for a while, you will often notice your chart becoming less responsive, and your chart tab can take longer to activate when you go back to it after using other tabs. That is the reason I encourage you to set the number of historical values displayed on bars to the minimum that meets your needs. When your chart becomes less responsive because the script has been running on it for many hours, refreshing the browser tab will restart everything and bring the chart's speed back up. You will then lose the information displayed on elapsed bars.
Neutral Volume
This script represents a departure from the way I have previously calculated volume delta in my scripts. I used the notion of "neutral volume" when inspecting intrabar timeframes, for bars where price did not move. No longer. While this had little impact when using intrabar inspection because the minimum usable timeframe was 1min (where bars with zero movement are relatively infrequent), a more precise way was required to handle realtime updates, where multiple consecutive prices often have the same value. This will usually happen whenever orders are unable to move across the bid/ask levels, either because of slow action or because a large-volume bid/ask level is taking time to breach. In either case, the proper way to calculate the polarity of volume delta for those updates is to use the last known polarity, which is how I calculate now.
The Order Book
Without access to the order book's levels (the depth of market), we are limited to analyzing transactions that come in the TradingView feed for the chart. That does not mean the volume delta information calculated this way is irrelevant; on the contrary, much of the information calculated here is not available in trading consoles supplied by exchanges/brokers. Yet it's important to realize that without access to the order book, you are forfeiting the valuable information that can be gleaned from it. The order book's levels are always in movement, of course, and some of the information they contain is mere posturing, i.e., attempts to influence the behavior of other players in the market by traders/systems who will often remove their orders when price comes near their order levels. Nonetheless, the order book is an essential tool for serious traders operating at intraday timeframes. It can be used to time entries/exits, to explain the causes of particular price movements, to determine optimal stop levels, to get to know the traders/systems you are betting against (they tend to exhibit behavioral patterns only recognizable through the order book), etc. This tool in no way makes the order book less useful; I encourage all intraday traders to become familiar with it and avoid trading without one.
Trend Telescope v4 Basic Configuration
pine
// Enable only the components you need
Order Flow: ON
Delta Volume: ON
Volume Profile: ON
Cumulative Delta: ON
Volatility Indicator: ON
Momentum Direction: ON
Volatility Compression: ON
📊 Component Breakdown
1. Order Flow Analysis
Purpose: Identifies buying vs selling pressure
Visual: Histogram (Green=Buying, Red=Selling)
Calculation: Volume weighted by price position
Usage: Spot institutional order blocks
2. Delta Volume Values
Purpose: Shows volume imbalance
Bull Volume (Green): Volume on up bars
Bear Volume (Red): Volume on down bars
Usage: Identify volume divergences
3. Anchored Volume Profile
Purpose: Finds high-volume price levels
POC (Point of Control): Price with highest volume
Profile Length: Adjustable (default: 50 bars)
Usage: Identify support/resistance zones
4. Cumulative Volume Delta
Purpose: Tracks net buying/selling pressure over time
Trend Analysis: Rising=Buying pressure, Falling=Selling pressure
Divergence Detection: Price vs Delta divergences
Usage: Confirm trend strength
5. Volatility Indicator
Purpose: Measures market volatility with cycle detection
Volatility Ratio: ATR as percentage of price
Volatility Cycle: SMA of volatility (identifies periods)
Histogram: Difference between current and average volatility
Usage: Adjust position sizing, identify breakout setups
6. Real-time Momentum Direction
Purpose: Multi-factor momentum assessment
Components: Price momentum (50%), RSI momentum (30%), Volume momentum (20%)
Visual: Line plot with color coding
Labels: Clear BULLISH/BEARISH/NEUTRAL signals
Usage: Trend confirmation, reversal detection
7. Volatility Compression Analysis
Purpose: Identifies low-volatility consolidation periods
Compression Detection: True Range below threshold
Strength Meter: How compressed the market is
Histogram: Red when compressed, Gray when normal
Usage: Predict explosive moves, prepare for breakouts
⚙️ Advanced Configuration
Optimal Settings for Different Timeframes
pine
// Scalping (1-15 min)
Profile Length: 20
ATR Period: 10
Momentum Length: 8
Compression Threshold: 0.3
// Day Trading (1H-4H)
Profile Length: 50
ATR Period: 14
Momentum Length: 14
Compression Threshold: 0.5
// Swing Trading (Daily)
Profile Length: 100
ATR Period: 20
Momentum Length: 21
Compression Threshold: 0.7
Alert Setup Guide
Enable "Enable Alerts" in settings
Choose alert types:
Momentum Alerts: When momentum changes direction
Compression Alerts: When volatility compression begins
Set alert frequency to "Once Per Bar"
Configure notification preferences
🎯 Trading Strategies
Strategy 1: Compression Breakout
pine
Entry Conditions:
1. Volatility Compression shows RED histogram
2. Cumulative Delta trending upward
3. Momentum turns BULLISH
4. Price breaks above POC level
Exit: When Momentum turns BEARISH or Compression ends
Strategy 2: Momentum Reversal
pine
Entry Conditions:
1. Strong Order Flow in opposite direction
2. Momentum divergence (price makes new high/low but momentum doesn't)
3. Volume confirms the reversal
Exit: When Order Flow returns to trend direction
Strategy 3: Institutional Accumulation
pine
Identification:
1. High Cumulative Delta but flat/sideways price
2. Consistent Order Flow in one direction
3. Volume Profile shows accumulation at specific levels
Trade: Enter in direction of Order Flow when price breaks level
📈 Interpretation Guide
Bullish Signals
✅ Order Flow consistently green
✅ Cumulative Delta making higher highs
✅ Momentum above zero and rising
✅ Bull Volume > Bear Volume
✅ Price above POC level
Bearish Signals
✅ Order Flow consistently red
✅ Cumulative Delta making lower lows
✅ Momentum below zero and falling
✅ Bear Volume > Bull Volume
✅ Price below POC level
Caution Signals
⚠️ Momentum divergence (price vs indicator)
⚠️ Volatility compression (potential big move coming)
⚠️ Mixed signals across components
🔧 Troubleshooting
Common Issues & Solutions
Problem: Indicators not showing
Solution: Check "Show on Chart" is enabled
Problem: Alerts not triggering
Solution: Verify alert is enabled in both script and TradingView alert panel
Problem: Performance issues
Solution: Reduce number of enabled components or increase timeframe
Problem: Volume Profile not updating
Solution: Adjust Profile Length setting, ensure sufficient historical data
Performance Optimization
Disable unused components
Increase chart timeframe
Reduce historical bar count
Use on lower timeframes with fewer indicators enabled
💡 Pro Tips
Risk Management
Use Volatility Indicator for position sizing
Monitor Cumulative Delta for trend confirmation
Use POC levels for stop-loss placement
Multi-Timeframe Analysis
Use higher timeframe for trend direction
Use current timeframe for entry timing
Correlate signals across timeframes
Market Condition Adaptation
Trending Markets: Focus on Momentum + Order Flow
Ranging Markets: Focus on Volume Profile + Compression
High Volatility: Use smaller position sizes
Low Volatility: Prepare for compression breakouts
📚 Educational Resources
Key Concepts to Master
Volume-price relationships
Market microstructure
Institutional order flow
Volatility regimes
Momentum vs mean reversion
Recommended Learning Path
Start with Order Flow + Momentum only
Add Volume Profile once comfortable
Incorporate Volatility analysis
Master multi-component correlation
🆘 Support
Getting Help
Check component toggles are enabled
Verify sufficient historical data is loaded
Test on major pairs/indices first
Adjust settings for your trading style
Continuous Improvement
Backtest strategies thoroughly
Keep a trading journal
Adjust parameters based on market conditions
Combine with price action analysis
Remember: No indicator is perfect. Use this tool as part of a comprehensive trading plan with proper risk management. Always test strategies in demo accounts before live trading.
Happy Trading! 📈
Volume Voids [theUltimator5]Volume Voids highlights price regions with no or unusually thin participation over a chosen lookback. It bins the lookback’s full price range into equal steps, assigns each bar’s close to a bin, and accumulates volume per bin. Contiguous runs of zero-volume bins are shown as “voids,” while low-volume runs (below a dynamic threshold) mark thin-liquidity “corridors” where price often traverses quickly when revisited.
An optional PoC (Point of Control) line marks the mid-price of the highest-volume bin—commonly treated as a recent “value” area that price may revisit.
What it draws on your chart
Histogram (optional): Right-anchored horizontal volume-by-price bars built from your lookback and bin count. Bars tint green→red via a simple delta proxy (up-bar volume minus down-bar volume) to hint at directional participation inside each price band.
Point of Control (optional): A horizontal line at the highest-volume bin’s mid-price (the PoC).
Zero-Volume Voids: Translucent boxes where no bin volume printed within the window (detected between the first and last non-empty bins ).
Low-Volume Zones: Translucent boxes where bin volume is below a dynamic threshold (see formula below), often acting like low-friction corridors.
How it works
Slice the lookback’s high→low into N equal price bins.
Assign each bar’s closing price to a bin and add that bar’s volume to the bin total. A simple up/down-bar delta proxy drives the histogram’s tinting.
PoC = bin with the maximum accumulated volume.
Zero-Volume Voids = contiguous runs of bins with exactly zero volume (bounded by the first/last occupied bins).
Low-Volume Zones = contiguous runs of bins with volume below:
threshold = total_window_volume ÷ (divisor × number_of_bins)
Lower divisor → more LV boxes; higher divisor → stricter/fewer boxes.
Note: This is a lightweight, chart-native approximation of a volume profile. Volume is binned by bar close (not by tick-level prints or intrabar distribution), so “voids”/“thin” areas reflect this approximation.
Key inputs
Lookback Period: Window for calculations.
Number of Volume Boxes (bins): Histogram resolution.
PoC / Show Histogram / Anchor to Right Side: Visibility and layout controls.
Low-Volume Threshold Divisor: Sensitivity for LV detection.
Colors & Labels: Customize zero-volume / low-volume box colors and optional labels with offsets.
How to use (educational, not signals)
Context: High-volume = acceptance; thin/zero-volume = inefficiency. Price often rotates near acceptance and moves faster through thin areas.
Revisits: On returns to prior voids/LV zones, watch for accelerated moves or fills; PoC can serve as a balance reference.
Confluence: Pair with trend tools (e.g., ADX), VWAP/session markers, or structure levels for timing and risk.
Limitations & performance
Bins use closing price only; intrabar distribution is not modeled.
Detections refresh on the live bar; visuals can be heavy on large lookbacks/high bin counts—reduce bins/lookback or hide labels if needed.
Composite Time ProfileComposite Time Profile Overlay (CTPO) - Market Profile Compositing Tool
Automatically composite multiple time periods to identify key areas of balance and market structure
What is the Composite Time Profile Overlay?
The Composite Time Profile Overlay (CTPO) is a Pine Script indicator that automatically composites multiple time periods to identify key areas of balance and market structure. It's designed for traders who use market profile concepts and need to quickly identify where price is likely to find support or resistance.
The indicator analyzes TPO (Time Price Opportunity) data across different timeframes and merges overlapping profiles to create composite levels that represent the most significant areas of balance. This helps you spot where institutional traders are likely to make decisions based on accumulated price action.
Why Use CTPO for Market Profile Trading?
Eliminate Manual Compositing Work
Instead of manually drawing and compositing profiles across different timeframes, CTPO does this automatically. You get instant access to composite levels without spending time analyzing each individual period.
Spot Areas of Balance Quickly
The indicator highlights the most significant areas of balance by compositing overlapping profiles. These areas often act as support and resistance levels because they represent where the most trading activity occurred across multiple time periods.
Focus on What Matters
Rather than getting lost in individual session profiles, CTPO shows you the composite levels that have been validated across multiple timeframes. This helps you focus on the levels that are most likely to hold.
How CTPO Works for Market Profile Traders
Automatic Profile Compositing
CTPO uses a proprietary algorithm that:
- Identifies period boundaries based on your selected timeframe (sessions, daily, weekly, monthly, or auto-detection)
- Calculates TPO profiles for each period using the C2M (Composite 2 Method) row sizing calculation
- Merges overlapping profiles using configurable overlap thresholds (default 50% overlap required)
- Updates composite levels as new price action develops in real-time
Key Levels for Market Profile Analysis
The indicator displays:
- Value Area High (VAH) and Value Area Low (VAL) levels calculated from composite TPO data
- Point of Control (POC) levels where most trading occurred across all composited periods
- Composite zones representing areas of balance with configurable transparency
- 1.618 Fibonacci extensions for breakout targets based on composite range
Multiple Timeframe Support
- Sessions: For intraday market profile analysis
- Daily: For swing trading with daily profiles
- Weekly: For position trading with weekly structure
- Monthly: For long-term market profile analysis
- Auto: Automatically selects timeframe based on your chart
Trading Applications for Market Profile Users
Support and Resistance Trading
Use composite levels as dynamic support and resistance zones. These levels often hold because they represent areas where significant trading decisions were made across multiple timeframes.
Breakout Trading
When composite levels break, they often lead to significant moves. The indicator calculates 1.618 Fibonacci extensions to give you clear targets for breakout trades.
Mean Reversion Strategies
Value Area levels represent the price range where most trading activity occurred. These levels often act as magnets, drawing price back when it moves too far from the mean.
Institutional Level Analysis
Composite levels represent areas where institutional traders have made significant decisions. These levels often hold more weight than traditional technical analysis levels because they're based on actual trading activity.
Key Features for Market Profile Traders
Smart Compositing Logic
- Automatic overlap detection using price range intersection algorithms
- Configurable overlap thresholds (minimum 50% overlap required for merging)
- Dead composite identification (profiles that become engulfed by newer composites)
- Real-time updates as new price action develops using barstate.islast optimization
Visual Customization
- Customizable colors for active, broken, and dead composites
- Adjustable transparency levels for each composite state
- Premium/Discount zone highlighting based on current price vs composite range
- TPO aggression coloring using TPO distribution analysis to identify buying/selling pressure
- Fibonacci level extensions with 1.618 target calculations based on composite range
Clean Chart Presentation
- Only shows the most relevant composite levels (maximum 10 active composites)
- Eliminates clutter from individual session profiles
- Focuses on areas of balance that matter most to current price action
Real-World Trading Examples
Day Trading with Session Composites
Use session-based composites to identify intraday areas of balance. The VAH and VAL levels often act as natural profit targets and stop-loss levels for scalping strategies.
Swing Trading with Daily Composites
Daily composites provide excellent swing trading levels. Look for price reactions at composite zones and use the 1.618 extensions for profit targets.
Position Trading with Weekly Composites
Weekly composites help identify major trend changes and long-term areas of balance. These levels often hold for months or even years.
Risk Management
Composite levels provide natural stop-loss levels. If a composite level breaks, it often signals a significant shift in market sentiment, making it an ideal place to exit losing positions.
Why Composite Levels Work
Composite levels work because they represent areas where significant trading decisions were made across multiple timeframes. When price returns to these levels, traders often remember the previous price action and make similar decisions, creating self-fulfilling prophecies.
The compositing process uses a proprietary algorithm that ensures only levels validated across multiple time periods are displayed. This means you're looking at levels that have proven their significance through actual market behavior, not just random technical levels.
Technical Foundation
The indicator uses TPO (Time Price Opportunity) data combined with price action analysis to identify areas of balance. The C2M row sizing method ensures accurate profile calculations, while the overlap detection algorithm (minimum 50% price range intersection) ensures only truly significant composites are displayed. The algorithm calculates row size based on ATR (Average True Range) divided by 10, then converts to tick size for precise level calculations.
How the Code Actually Works
1. Period Detection and ATR Calculation
The code first determines the appropriate timeframe based on your chart:
- 1m-5m charts: Session-based profiles
- 15m-2h charts: Daily profiles
- 4h charts: Weekly profiles
- 1D charts: Monthly profiles
For each period type, it calculates the number of bars needed for ATR calculation:
- Sessions: 540 minutes divided by chart timeframe
- Daily: 1440 minutes divided by chart timeframe
- Weekly: 7 days worth of minutes divided by chart timeframe
- Monthly: 30 days worth of minutes divided by chart timeframe
2. C2M Row Size Calculation
The code calculates True Range for each bar in the determined period:
- True Range = max(high-low, |high-prevClose|, |low-prevClose|)
- Averages all True Range values to get ATR
- Row Size = (ATR / 10) converted to tick size
- This ensures each TPO row represents a meaningful price movement
3. TPO Profile Generation
For each period, the code:
- Creates price levels from lowest to highest price in the range
- Each level is separated by the calculated row size
- Counts how many bars touch each price level (TPO count)
- Finds the level with highest count = Point of Control (POC)
- Calculates Value Area by expanding from POC until 68.27% of total TPO blocks are included
4. Overlap Detection Algorithm
When a new profile is created, the code checks if it overlaps with existing composites:
- Calculates overlap range = min(currentVAH, prevVAH) - max(currentVAL, prevVAL)
- Calculates current profile range = currentVAH - currentVAL
- Overlap percentage = (overlap range / current profile range) * 100
- If overlap >= 50%, profiles are merged into a composite
5. Composite Merging Logic
When profiles overlap, the code creates a new composite by:
- Taking the earliest start bar and latest end bar
- Using the wider VAH/VAL range (max of both profiles)
- Keeping the POC from the profile with more TPO blocks
- Marking the composite as "active" until price breaks through
6. Real-Time Updates
The code uses barstate.islast to optimize performance:
- Only recalculates on the last bar of each period
- Updates active composite with live price action if enabled
- Cleans up old composites to prevent memory issues
- Redraws all visual elements from scratch each bar
7. Visual Rendering System
The code uses arrays to manage drawing objects:
- Clears all lines/boxes arrays on every bar
- Iterates through composites array to redraw everything
- Uses different colors for active, broken, and dead composites
- Calculates 1.618 Fibonacci extensions for broken composites
Getting Started with CTPO
Step 1: Choose Your Timeframe
Select the period type that matches your trading style:
- Use "Sessions" for day trading
- Use "Daily" for swing trading
- Use "Weekly" for position trading
- Use "Auto" to let the indicator choose based on your chart timeframe
Step 2: Customize the Display
Adjust colors, transparency, and display options to match your charting preferences. The indicator offers extensive customization options to ensure it fits seamlessly into your existing analysis.
Step 3: Identify Key Levels
Look for:
- Composite zones (blue boxes) - major areas of balance
- VAH/VAL lines - value area boundaries
- POC lines - areas of highest trading activity
- 1.618 extension lines - breakout targets
Step 4: Develop Your Strategy
Use these levels to:
- Set entry points near composite zones
- Place stop losses beyond composite levels
- Take profits at 1.618 extension levels
- Identify trend changes when major composites break
Perfect for Market Profile Traders
If you're already using market profile concepts in your trading, CTPO eliminates the manual work of compositing profiles across different timeframes. Instead of spending time analyzing each individual period, you get instant access to the composite levels that matter most.
The indicator's automated compositing process ensures you're always looking at the most relevant areas of balance, while its real-time updates keep you informed of changes as they happen. Whether you're a day trader looking for intraday levels or a position trader analyzing long-term structure, CTPO provides the market profile intelligence you need to succeed.
Streamline Your Market Profile Analysis
Stop wasting time on manual compositing. Let CTPO do the heavy lifting while you focus on executing profitable trades based on areas of balance that actually matter.
Ready to Streamline Your Market Profile Trading?
Add the Composite Time Profile Overlay to your charts today and experience the difference that automated profile compositing can make in your trading performance.
Value Matrix – Previous Day VAValue Matrix – Previous Day Volume Profile Indicator
Description:
The Value Matrix – Previous Day VA indicator plots the previous trading session’s Volume Profile key levels directly on your chart, providing clear reference points for intraday trading. This indicator calculates the Value Area High (VAH), Value Area Low (VAL), and Point of Control (POC) from the prior session and projects them across the current trading day, helping traders identify potential support, resistance, and high-volume zones.
Features:
Calculates previous day VAH, VAL, and POC based on a user-defined session (default 09:30–16:00).
Uses Volume Profile bins for precise distribution calculation.
Fully customizable line colors for VAH, VAL, and POC.
Lines extend across the current session for easy intraday reference.
Works on any timeframe, optimized for 1-minute charts for precision.
Optional toggles to show/hide VAH, VAL, and POC individually.
Inputs:
Session Time: Define the trading session for which the volume profile is calculated.
Profile Bins: Number of price intervals used to divide the session range.
Value Area %: Percentage of volume to include in the value area (default 70%).
Show POC / VAH & VAL: Toggle visibility of each level.
Line Colors: Customize VAH, VAL, and POC colors.
Use Cases:
Identify previous session support and resistance levels for intraday trading.
Gauge areas of high liquidity and potential market reaction zones.
Combine with other indicators or price action strategies for improved entries and exits.
Recommended Timeframe:
Works on all timeframes; best used on 1-minute or 5-minute charts for precise intraday analysis.
Piman2077: Previous Day Volume Profile levelsPrevious Day Volume Profile Indicator
Description:
Previous Day Volume Profile Indicator plots the previous trading session’s Volume Profile key levels directly on your chart, providing clear reference points for intraday trading. This indicator calculates the Value Area High (VAH), Value Area Low (VAL), and Point of Control (POC) from the prior session and projects them across the current trading day, helping traders identify potential support, resistance, and high-volume zones.
Features:
Calculates previous day VAH, VAL, and POC based on a user-defined session (default 09:30–16:00).
Uses Volume Profile bins for precise distribution calculation.
Fully customizable line colors for VAH, VAL, and POC.
Lines extend across the current session for easy intraday reference.
Works on any timeframe, optimized for 1-minute charts for precision.
Optional toggles to show/hide VAH, VAL, and POC individually.
Inputs:
Session Time: Define the trading session for which the volume profile is calculated.
Profile Bins: Number of price intervals used to divide the session range.
Value Area %: Percentage of volume to include in the value area (default 68%).
Show POC / VAH & VAL: Toggle visibility of each level.
Line Colors: Customize VAH, VAL, and POC colors.
Use Cases:
Identify previous session support and resistance levels for intraday trading.
Gauge areas of high liquidity and potential market reaction zones.
Combine with other indicators or price action strategies for improved entries and exits.
Recommended Timeframe:
Works on all timeframes; best used on 1-minute or 5-minute charts for precise intraday analysis.
RSI with Trend LinesThe RSI with Trend Lines indicator is a tool designed to analyze the behavior of the Relative Strength Index (RSI) combined with dynamic trend lines. This indicator not only provides the standard RSI reading but also identifies pivot points on the RSI and draws bullish and bearish trend lines based on these points. It also includes customizable options for adjusting trend lines, displaying the RSI moving average, and highlighting key levels such as overbought, oversold, and the center line.
This indicator is ideal for finding and identifying clear trends in the RSI and taking advantage of market breakout or consolidation signals. It also includes a table with the POC value, which represents the price level at which the most trading activity has occurred, indicating the highest liquidity and highest trading volume.
Key Features:
1. Basic RSI:
• Calculates the RSI using a configurable period length (default 14).
• Colors the RSI based on its direction (green for rising, red for falling) and its position relative to the center line (50).
2. Key Levels:
• Displays overbought (70 and 80), oversold (20 and 30), and the center line (50) levels for easy visual interpretation.
3. RSI Moving Average:
• Enables and configures an RSI moving average (SMA, EMA, WMA, or ALMA) to smooth out fluctuations and detect clearer trends.
4. Dynamic Trend Lines:
• Identifies pivot points on the RSI and draws bullish and bearish trend lines.
• Trend lines can be extended into the future or limited to the visible range.
• Includes options to display broken lines (trends that are no longer valid) and customize the style (solid or dashed).
5. Pivot Points:
• Displays the high and low pivot points on the chart for a better understanding of trend changes.
6. Advanced Customization:
• Adjust the pivot point period.
• Control the number of pivot points to consider for trend lines.
• Customize the line thickness and style.
How to Use the Indicator:
1. RSI Interpretation:
• Overbought Zone (RSI > 70): Indicates that the asset may be overvalued and could correct downward.
• Oversold Zone (RSI < 30): Suggests that the asset may be undervalued and could rebound.
• Centerline Crossover (50): A cross above 50 indicates bullish strength, while a cross below suggests weakness.
2. Trend Lines:
• Bullish Lines: Drawn when the RSI forms ascending low pivot points. These lines represent dynamic support.
• Bearish Lines: These are drawn when the RSI forms descending high pivot points. These lines represent dynamic resistance.
• Broken Lines: When a trend line becomes invalid (the RSI breaks the line), they are displayed in a dotted style to highlight the breakout.
3. Possible Trading Signals:
• Buy: When the RSI breaks an upward downtrend line.
• Sell: When the RSI breaks a downward uptrend line.
• Trend Confirmation: When the RSI stays within a valid trend line, it suggests that the current trend is strong.
4. A chart with the POC value:
• The point of control is a price level at which the highest trading volume occurs in a given time period. It is a key component of the Volume Profile indicator, which displays volume by price.
• Use of the POC in trading:
• The POC is used to identify areas of high interest and liquidity for trading.
• The POC provides information about the equilibrium point where buyers and sellers are most evenly matched.
• Therefore, it can be considered a zone of interest, meaning it can act as support or resistance.
TPO IQ [TradingIQ]Hello Traders!
Introducing "TPO IQ"!
TPO IQ offers a Time Price Opportunity profile with several customization options that packs several related features to help traders navigate the generated profiles!
Features
TPO Profiles
Single Print identification
Initial Balance Identification
Can be anchored to timeframe change
Can be anchored to fixed time interval
Last profile detailed visuals
Customizable value area percentage
POC identification
Mid-point identification
TPO Profiles
A TPO profile is a market profile visualization that details how much time was spent at each price level throughout the time interval.
The image above further explains what a TPO Profile is!
Each letter corresponds to a candlestick. With this information, traders are able to visualize how much time was spent at each price area.
With customizable gradient colors, specifically in this example, blocks colored red are the earliest times in the profile, blocks colored green are in the beginning half of the time midpoint of the profile. Blue blocks represent the first half of the end of the time period, and purple blocks correspond to the end of the time period.
Please note that this form of TPO profile generation will only occur when the most recent profile uses less than 500 alphabet characters! If more than 500 characters are preset, TPO IQ will revert to using labels!
Initial Balance
TPO IQ also identifies the initial balance range and all alphabet characters that form within it!
The image above exemplifies this feature. The initial balance range is denoted by a a neon-blue line, with a blue circle showing the opening price. All characters within the initial balance range are highlighted blue, which is a feature that can be disabled with customizable colors.
POC
TPO IQ also identifies the point of control (POC) of the TPO Profile.
The point of control for the profile is labeled yellow by default, and shows where price spent the most time throughout the time period.
The image above shows the POC for the time period being identified by TPO IQ.
Value Area
TPO IQ also identifies the value area of the profile. A customizable percentage that is 70% by default, the value area of a TPO profile shows where price traded the majority of the time.
The image above further explains this feature. For this example, with the value area percentage being set to 70%, the value area high and value area low show the price zone that prices traded at 70% of the time throughout the profile.
TPO Midpoint
In addition to the POC, the TPO profile midpoint is also identified by TPO IQ.
The TPO midpoint simply corresponds to the middle price between the session's high and low!
Fixed Interval Mode
By default, TPO IQ recalculates every day, but this can also be changed to a customizable session time, such as 4 hours. If 4 hours is selected, then a new TPO profile will be generated every 4 hours.
However, in Fixed Interval mode, a TPO profile will be generated through a user-defined time range, such as 1300-1700.
In the image above, Fixed Interval mode is applied with a time range of 1300-1700 and, consequently, TPO IQ generates a new profile throughout every 1300-1700 time range!
This feature allows traders to specify time ranges of interest to generate TPO profiles for!
TPO Overview Label
The TPO overview label shows key statistics for the TPO profile generated throughout the trading session!
The "TPO Count" statistic shows how many alphabetical letters were generated for the profile, which is an adequate method to determine the session's volatility and price range.
The "Tick Levels" statistic shows how many tick levels were used to create the profile - another method to determine the volatility and price range of the session.
The "Top Letter" statistic shows which letter appears most throughout the profile. In this example, the top letter was "f", which means throughout creation of the profile, the letter "f" appeared the most!
And that's all for now!
If you have any feedback or new feature ideas for TPO IQ please feel free to share them with us!
Thank you traders!
Volume profile [Signals] - By Leviathan [Mindyourbuisness]Market Sessions and Volume Profile with Sweep Signals - Based on Leviathan's Volume Profile
This indicator is an enhanced version of Leviathan's Volume Profile indicator, adding session-based value area analysis and sweep detection signals. It combines volume profile analysis with market structure concepts to identify potential reversal opportunities.
Features
- Session-based volume profiles (Daily, Weekly, Monthly, Quarterly, Yearly)
- Forex sessions support (Tokyo, London, New York)
- Value Area analysis with POC, VAH, and VAL levels
- Extended level visualization for the last completed session
- Sweep detection signals for key value area levels
Sweep Signals Explanation
The indicator detects two types of sweeps at VAH, VAL, and POC levels:
Bearish Sweeps (Red Triangle Down)
Conditions:
- Price makes a high above the level (VAH/VAL/POC)
- Closes below the level
- Closes below the previous candle's low
- Previous candle must be bullish
Trading Implication: Suggests a failed breakout and potential reversal to the downside. These sweeps often indicate stop-loss hunting above key levels followed by institutional selling.
Bullish Sweeps (Green Triangle Up)
Conditions:
- Price makes a low below the level (VAH/VAL/POC)
- Closes above the level
- Closes above the previous candle's high
- Previous candle must be bearish
Trading Implication: Suggests a failed breakdown and potential reversal to the upside. These sweeps often indicate stop-loss hunting below key levels followed by institutional buying.
Trading Guidelines
1. Use sweep signals in conjunction with the overall trend
2. Look for additional confirmation like:
- Volume surge during the sweep
- Price action patterns
- Support/resistance levels
3. Consider the session's volatility and time of day
4. More reliable signals often occur at VAH and VAL levels
5. POC sweeps might indicate stronger reversals due to their significance as fair value levels
Notes
- The indicator works best on higher timeframes (1H and above)
- Sweep signals are more reliable during active market hours
- Consider using multiple timeframe analysis for better confirmation
- Past performance is not indicative of future results
Credits: Original Volume Profile indicator by Leviathan
footprint_typeLibrary "footprint_type"
Contains all types for calculating and rendering footprints
Inputs
Inputs objects
Fields:
inbalance_percent (series int) : percentage coefficient to determine the Imbalance of price levels
stacked_input (series int) : minimum number of consecutive Imbalance levels required to draw extended lines
show_summary_footprint (series bool) : bool input for show summary footprint
procent_volume_area (series int) : definition size Value area
show_vah (series bool) : bool input for show VAH
show_poc (series bool) : bool input for show POC
show_val (series bool) : bool input for show VAL
color_vah (series color) : color VAH line
color_poc (series color) : color POC line
color_val (series color) : color VAL line
show_volume_profile (series bool)
new_imbalance_cond (series bool) : bool input for setup alert on new imbalance buy and sell
new_imbalance_line_cond (series bool) : bool input for setup alert on new imbalance line buy and sell
stop_past_imbalance_line_cond (series bool) : bool input for setup alert on stop past imbalance line buy and sell
Constants
Constants all Constants objects
Fields:
imbalance_high_char (series string) : char for printing buy imbalance
imbalance_low_char (series string) : char for printing sell imbalance
color_title_sell (series color) : color for footprint sell
color_title_buy (series color) : color for footprint buy
color_line_sell (series color) : color for sell line
color_line_buy (series color) : color for buy line
color_title_none (series color) : color None
Calculation_data
Calculation_data data for calculating
Fields:
detail_open (array) : array open from calculation timeframe
detail_high (array) : array high from calculation timeframe
detail_low (array) : array low from calculation timeframe
detail_close (array) : array close from calculation timeframe
detail_vol (array) : array volume from calculation timeframe
previos_detail_close (array) : array close from calculation timeframe
isBuyVolume (series bool) : attribute previosly bar buy or sell
Footprint_row
Footprint_row objects one footprint row
Fields:
price (series float) : row price
buy_vol (series float) : buy volume
sell_vol (series float) : sell volume
imbalance_buy (series bool) : attribute buy inbalance
imbalance_sell (series bool) : attribute sell imbalance
buy_vol_box (series box) : for ptinting buy volume
sell_vol_box (series box) : for printing sell volume
buy_vp_box (series box) : for ptinting volume profile buy
sell_vp_box (series box) : for ptinting volume profile sell
row_line (series label) : for ptinting row price
empty (series bool) : = true attribute row with zero volume buy and zero volume sell
Value_area
Value_area objects for calculating and printing Value area
Fields:
vah_price (series float) : VAH price
poc_price (series float) : POC price
val_price (series float) : VAL price
vah_label (series label) : label for VAH
poc_label (series label) : label for POC
val_label (series label) : label for VAL
vah_line (series line) : line for VAH
poc_level (series line) : line for POC
val_line (series line) : line for VAL
Imbalance_line_var_object
Imbalance_line_var_object var objects printing and calculation imbalance line
Fields:
cum_buy_line (array) : line array for saving all history buy imbalance line
cum_sell_line (array) : line array for saving all history sell imbalance line
Imbalance_line
Imbalance_line objects printing and calculation imbalance line
Fields:
buy_price_line (array) : float array for saving buy imbalance price level
sell_price_line (array) : float array for saving sell imbalance price level
var_imba_line (Imbalance_line_var_object) : var objects this type
Footprint_info_var_object
Footprint_info_var_object var objects for info printing
Fields:
cum_delta (series float) : var delta volume
cum_total (series float) : var total volume
cum_buy_vol (series float) : var buy volume
cum_sell_vol (series float) : var sell volume
cum_info (series table) : table for ptinting
Footprint_info
Footprint_info objects for info printing
Fields:
var_info (Footprint_info_var_object) : var objects this type
total (series label) : total volume
delta (series label) : delta volume
summary_label (series label) : label for ptinting
Footprint_bar
Footprint_bar all objects one bar with footprint
Fields:
foot_rows (array) : objects one row footprint
val_area (Value_area) : objects Value area
imba_line (Imbalance_line) : objects imbalance line
info (Footprint_info) : objects info - table,label and their variable
row_size (series float) : size rows
total_vol (series float) : total volume one footprint bar
foot_buy_vol (series float) : buy volume one footprint bar
foot_sell_vol (series float) : sell volume one footprint bar
foot_max_price_vol (map) : map with one value - price row with max volume buy + sell
calc_data (Calculation_data) : objects with detail data from calculation resolution
Support_objects
Support_objects support object for footprint calculation
Fields:
consts (Constants) : all consts objects
inp (Inputs) : all input objects
bar_index_show_condition (series bool) : calculation bool value for show all objects footprint
row_line_color (series color) : calculation value - color for row price
Volume Profile Histogram [SS]I usually (and by usually, I mean the past year xD) release a significant indicator as my Christmas gift to the community on Christmas Eve. Last year, it was the Z-Score buy and sell signal; this year, it's something a little more conventional. So here is this year’s gift—hope you like it! 🎁
Seems like everyone has their take on Volume Profiles (aka SVP or VSP). I decided to create one, and in true Steversteves fashion, you can expect to find all the goodies that come with most of my stuff, including a volume profile presented in a bell-curve/histogram style (chart above) and statistical frequency tables showing the cases by ranges:
And it wouldn't be a true Steversteves indicator without some kind of ATR thing:
So, what does it do?
At the end of the day, it is a form of an SVP indicator. However, it is meant to operate on a larger scale, sorting volume in a traditional bell-curve style. In addition to displaying volume, it breaks down buying vs. selling volume. Selling volume is classified as such when the open is greater than close, while buying is when close is greater than open. This breakdown allows you to see the distribution, by price range, of where selling and buying occur.
This permits the indicator to provide 2 Points of Control (POCs). A POC is defined as an area of high volume activity. Because buying and selling volumes are broken down into two, we can identify areas with high selling and areas with high buying. Sometimes they coincide, sometimes they differ.
If we look at SQQQ, for example:
We can see that the bearish point of control is one point below the bullish POC. This is interesting because it essentially shows where people may be "panic selling" or setting their stop-outs. If SQQQ drops below 18.8, then it's likely to trigger panic selling, as indicated by the histogram.
Conversely, we can observe that traders tend to position long between $18 and $24. The POC is noted in the stats table and also displayed on the chart. Bullish POC is shown in purple, bearish in yellow. These, of course, can be toggled off.
The Frequency Table:
The frequency table shows how many observations were obtained in each price range. The histogram illustrates the cumulative volume traded, while the frequency simply counts how many cases occurred over the lookback period.
ATR Range Analytics by Volume:
The indicator also has the ability to display range analytics by volume. When you toggle on the range analytics by volume option, a range chart will appear:
www.tradingview.com
The range chart goes from the minimum recorded volume to the maximum recorded volume in the period, showing the average range and direction associated with this volume. This is crucial to pay attention to because not all stocks behave the same way.
For example, in the chart above (AMD), we can see that low volume produces a general bearish bias, and high volume produces a general bullish bias. However, if we look at the range analytics for SPY:
Low volume has the inverse effect. Low volume is associated with a more bullish bias, and high volume indicates a more bearish bias. In the ATR chart, the threshold volume to transition from bullish bias to bearish bias is approximately > 78,607,268 traded shares.
The Stats Table:
The stats table can be toggled on or off. It simply displays the POCs and the time range for the VSP. The default time range is 1 trading year (252 days), assuming you are on the daily timeframe. However, you can use this on any timeframe.
The percentages displayed in the histogram is the cumulative percent of buying and selling volume independently. So when you see the percentage on the selling histogram, its the percent of cumulative selling only. Same for the buying.
And that's the indicator! I hope you enjoy it. Let me know your thoughts. I hope you all have safe holidays, a Merry Christmas for you North Americans, and a Happy Christmas for you UKers, and whatever else you celebrate/care about and do! Safe trades, everyone, and enjoy your holidays! 🎁🎄🎄🎄⭐⭐⭐ 🕎 🕎 🕎
Dynamic Liquidity HeatMap Profile [BigBeluga]🔵 OVERVIEW
The Dynamic Liquidity HeatMap Profile is a smart-flow liquidity tracker that maps where stop-loss clusters and resting limit orders are likely positioned.
Instead of traditional volume profiles based only on executed transactions, this tool projects probable liquidity pools — areas where traders are trapped or positioned and where smart money may hunt stops or fill orders.
It dynamically scans recent price swings, builds liquidity zones above and below price, and visualizes them as a heat map + histogram — highlighting areas with the greatest liquidity attraction.
Orange highlights the highest-concentration liquidity (POC), making potential sweep targets obvious.
🔵 CONCEPTS
Liquidity pools form above swing highs (buy stops) and below swing lows (sell stops).
Market makers & large players often push price into these zones to trigger stops and capture liquidity.
The indicator uses recent volatility + volume expansion to estimate where these pools exist.
Horizontal heat bars show depth and intensity of probable liquidity.
Profile side histogram displays buy-side vs sell-side liquidity distribution.
🔵 FEATURES
Dynamic Liquidity Detection — finds potential stop-loss clusters from recent swing behavior.
Dual-Side Heatmap — split liquidity view above (short stops) and below (long stops) current price.
Volume-Weighted Levels — higher volatility & volume = deeper liquidity expectation.
Real-Time Heat Coloring
• Lime = liquidity below price (potential buy-side fuel)
• Blue = liquidity above price (potential sell-side fuel)
• Orange = peak liquidity (POC)
Liquidity Profile Histogram — plotted at right side, layered by strength.
Auto-Cleaning Engine — removes invalidated liquidity after breaks.
Adjustable lookback window and bin resolution .
🔵 HOW TO USE
Look for price moving toward dense liquidity zones — high probability of wick raids or sweeps.
Orange POC often acts as magnet — strong target zone for smart money.
Combine with SFP / BOS logic to time reversals after liquidity hunts.
In trend, price repeatedly sweeps opposite-side liquidity before continuation.
Use liquidity walls as bias filters — heavy liquidity above often precedes downward move, and vice-versa.
Great for scalping sessions, indices, FX, BTC, ETH.
🔵 CONCLUSION
The Dynamic Liquidity HeatMap Profile gives traders a tactical edge by revealing where the market’s hidden liquidity resides.
It highlights where shorts and longs are positioned, identifies likely sweep zones, and marks the most attractive liquidity magnet (POC).
Use it to anticipate stop hunts, avoid getting trapped, and align with smart-money flow instead of fighting it.
Prev Day Volume ProfileWhat the script does
Calculates yesterday’s Volume Profile from the bars on your chart (not tick data) and derives:
POC (Point of Control)
VAL (Value Area Low)
VAH (Value Area High)
Draws three horizontal lines for today:
POC in orange
VAL and VAH in purple
Adds labels on the right edge that show the level name and the exact price (e.g., POC 1.2345).
Why it’s bar-based (not tick-based)
Pine Script can’t fetch external tick/aggTrades data. The script approximates a volume profile by distributing each bar’s volume across the price bins that the bar’s high–low range covers. For “yesterday”, this produces a stable, TV-native approximation that’s usually sufficient for intraday trading.
Key inputs
Value Area %: Defaults to 0.70 (70%)—the typical value area range.
TZ Offset vs Exchange (hours): Shifts the day boundary to match your desired session (e.g., Europe/Berlin: +1 winter / +2 summer). This ensures “yesterday” means 00:00–24:00 in your target timezone.
Row Size: Manual? / Manual Row Size: If enabled, you can set the price bin size yourself. Otherwise, the script chooses a TV-like step from syminfo.mintick.
Colors & Line width: POC orange; VAL/VAH purple; configurable width.
Volume Profile Grid [Alpha Extract]A sophisticated volume distribution analysis system that transforms market activity into institutional-grade visual profiles, revealing hidden support/resistance zones and market participant behavior. Utilizing advanced price level segmentation, bullish/bearish volume separation, and dynamic range analysis, the Volume Profile Grid delivers comprehensive market structure insights with Point of Control (POC) identification, Value Area boundaries, and volume delta analysis. The system features intelligent visualization modes, real-time sentiment analysis, and flexible range selection to provide traders with clear, actionable volume-based market context.
🔶 Dynamic Range Analysis Engine
Implements dual-mode range selection with visible chart analysis and fixed period lookback, automatically adjusting to current market view or analyzing specified historical periods. The system intelligently calculates optimal bar counts while maintaining performance through configurable maximum limits, ensuring responsive profile generation across all timeframes with institutional-grade precision.
// Dynamic period calculation with intelligent caching
get_analysis_period() =>
if i_use_visible_range
chart_start_time = chart.left_visible_bar_time
current_time = last_bar_time
time_span = current_time - chart_start_time
tf_seconds = timeframe.in_seconds()
estimated_bars = time_span / (tf_seconds * 1000)
range_bars = math.floor(estimated_bars)
final_bars = math.min(range_bars, i_max_visible_bars)
math.max(final_bars, 50) // Minimum threshold
else
math.max(i_periods, 50)
🔶 Advanced Bull/Bear Volume Separation
Employs sophisticated candle classification algorithms to separate bullish and bearish volume at each price level, with weighted distribution based on bar intersection ratios. The system analyzes open/close relationships to determine volume direction, applying proportional allocation for doji patterns and ensuring accurate representation of buying versus selling pressure across the entire price spectrum.
🔶 Multi-Mode Volume Visualization
Features three distinct display modes for bull/bear volume representation: Split mode creates mirrored profiles from a central axis, Side by Side mode displays sequential bull/bear segments, and Stacked mode separates volumes vertically. Each mode offers unique insights into market participant behavior with customizable width, thickness, and color parameters for optimal visual clarity.
// Bull/Bear volume calculation with weighted distribution
for bar_offset = 0 to actual_periods - 1
bar_high = high
bar_low = low
bar_volume = volume
// Calculate intersection weight
weight = math.min(bar_high, next_level) - math.max(bar_low, current_level)
weight := weight / (bar_high - bar_low)
weighted_volume = bar_volume * weight
// Classify volume direction
if bar_close > bar_open
level_bull_volume += weighted_volume
else if bar_close < bar_open
level_bear_volume += weighted_volume
else // Doji handling
level_bull_volume += weighted_volume * 0.5
level_bear_volume += weighted_volume * 0.5
🔶 Point of Control & Value Area Detection
Implements institutional-standard POC identification by locating the price level with maximum volume accumulation, providing critical support/resistance zones. The Value Area calculation uses sophisticated sorting algorithms to identify the price range containing 70% of trading volume, revealing the market's accepted value zone where institutional participants concentrate their activity.
🔶 Volume Delta Analysis System
Incorporates real-time volume delta calculation with configurable dominance thresholds to identify significant bull/bear imbalances. The system visually highlights price levels where buying or selling pressure exceeds threshold percentages, providing immediate insight into directional volume flow and potential reversal zones through color-coded delta indicators.
// Value Area calculation using 70% volume accumulation
total_volume_sum = array.sum(total_volumes)
target_volume = total_volume_sum * 0.70
// Sort volumes to find highest activity zones
for i = 0 to array.size(sorted_volumes) - 2
for j = i + 1 to array.size(sorted_volumes) - 1
if array.get(sorted_volumes, j) > array.get(sorted_volumes, i)
// Swap and track indices for value area boundaries
// Accumulate until 70% threshold reached
for i = 0 to array.size(sorted_indices) - 1
accumulated_volume += vol
array.push(va_levels, array.get(volume_levels, idx))
if accumulated_volume >= target_volume
break
❓How It Works
🔶 Weighted Volume Distribution
Implements proportional volume allocation based on the percentage of each bar that intersects with price levels. When a bar spans multiple levels, volume is distributed proportionally based on the intersection ratio, ensuring precise representation of trading activity across the entire price spectrum without double-counting or volume loss.
🔶 Real-Time Profile Generation
Profiles regenerate on each bar close when in visible range mode, automatically adapting to chart zoom and scroll actions. The system maintains optimal performance through intelligent caching mechanisms and selective line updates, ensuring smooth operation even with maximum resolution settings and extended analysis periods.
🔶 Market Sentiment Analysis
Features comprehensive volume analysis table displaying total volume metrics, bullish/bearish percentages, and overall market sentiment classification. The system calculates volume dominance ratios in real-time, providing immediate insight into whether buyers or sellers control the current price structure with percentage-based sentiment thresholds.
🔶 Visual Profile Mapping
Provides multi-layered visual feedback through colored volume bars, POC line highlighting, Value Area boundaries, and optional delta indicators. The system supports profile mirroring for alternative perspectives, line extension for future reference, and customizable label positioning with detailed price information at critical levels.
Why Choose Volume Profile Grid
The Volume Profile Grid represents the evolution of volume analysis tools, combining traditional volume profile concepts with modern visualization techniques and intelligent analysis algorithms. By integrating dynamic range selection, sophisticated bull/bear separation, and multi-mode visualization with POC/Value Area detection, it provides traders with institutional-quality market structure analysis that adapts to any trading style. The comprehensive delta analysis and sentiment monitoring system eliminates guesswork while the flexible visualization options ensure optimal clarity across all market conditions, making it an essential tool for traders seeking to understand true market dynamics through volume-based price discovery.
Volume Profile (Simple)Simple Volume Profile (Simple)
Master the Market's Structure with a Clear View of Volume
by mercaderoaurum
The Simple Volume Profile (Simple) indicator removes the guesswork by showing you exactly where the most significant trading activity has occurred. By visualizing the Point of Control (POC) and Value Area (VA) for today and yesterday, you can instantly identify the price levels that matter most, giving you a critical edge in your intraday trading.
This tool is specifically optimized for day trading SPY on a 1-minute chart, but it's fully customizable for any symbol or timeframe.
Key Features
Multi-Day Analysis: Automatically plots the volume profiles for the current and previous trading sessions, allowing you to see how today's market is reacting to yesterday's key levels.
Automatic Key Level Plotting: Instantly see the most important levels from each session:
Point of Control (POC): The single price level with the highest traded volume, acting as a powerful magnet for price.
Value Area High (VAH): The upper boundary of the area where 50% of the volume was traded. It often acts as resistance.
Value Area Low (VAL): The lower boundary of the 50% value area, often acting as support.
Extended Levels: The POC, VAH, and VAL from previous sessions are automatically extended into the current day, providing a clear map of potential support and resistance zones.
Customizable Sessions: While optimized for the US stock market, you can define any session time and time zone, making it a versatile tool for forex, crypto, and futures traders.
Core Trading Strategies
The Simple Volume Profile helps you understand market context. Instead of trading blind, you can now make decisions based on where the market has shown the most interest.
1. Identifying Support and Resistance
This is the most direct way to use the indicator. The extended lines from the previous day are your roadmap for the current session.
Previous Day's POC (pPOC): This is the most significant level. Watch for price to react strongly here. It can act as powerful support if approached from above or strong resistance if approached from below.
Previous Day's VAH (pVAH): Expect this level to act as initial resistance. A clean break above pVAH can signal a strong bullish trend.
Previous Day's VAL (pVAL): Expect this level to act as initial support. A firm break below pVAL can indicate a strong bearish trend.
Example Strategy: If SPY opens and rallies up to the previous day's VAH and stalls, this is a high-probability area to look for a short entry, with a stop loss just above the level.
2. The "Open-Drive" Rejection
How the market opens in relation to the previous day's value area is a powerful tell.
Open Above Yesterday's Value Area: If the market opens above the pVAH, it signals strength. The first pullback to test the pVAH is often a key long entry point. The level is expected to flip from resistance to support.
Open Below Yesterday's Value Area: If the market opens below the pVAL, it signals weakness. The first rally to test the pVAL is a potential short entry, as the level is likely to act as new resistance.
3. Fading the Extremes
When price pushes far outside the previous day's value area, it can become overextended.
Reversal at Highs: If price rallies significantly above the pVAH and then starts to lose momentum (e.g., forming bearish divergence on RSI or a topping pattern), it could be an opportunity to short the market, targeting a move back toward the pVAH or pPOC.
Reversal at Lows: Conversely, if price drops far below the pVAL and shows signs of bottoming, it can be a good opportunity to look for a long entry, targeting a reversion back to the value area.
Recommended Settings (SPY Intraday)
These settings are the default and are optimized for scalping or day trading SPY on a 1-minute chart.
Value Area (%): 50%. This creates a tighter, more sensitive value area, perfect for identifying the most critical intraday zones.
Number of Rows: 1000. This high resolution is essential for a low-volatility instrument like SPY, ensuring that the profile is detailed and the levels are precise.
Session Time: 0400-1800 in America/New_York. This captures the full pre-market and core session, which is crucial for understanding the day's complete volume story.
Ready to trade with an edge? Add the Simple Volume Profile (Multi-Day) to your chart now and see the market in a new light!






















