OPEN-SOURCE SCRIPT
Mis à jour Color Coded Volume Indicator

Color Coded Volume Indicator
Overview
Splits each bar’s total volume into estimated buy-side vs. sell-side components and displays them as stacked two-tone columns (red = sell, green = buy). Axis labels and tooltips use “K”/“M” formatting.
Features
How It Works
Usage
Interpretation
Overview
Splits each bar’s total volume into estimated buy-side vs. sell-side components and displays them as stacked two-tone columns (red = sell, green = buy). Axis labels and tooltips use “K”/“M” formatting.
Features
- []Stacked Two-Tone Columns
- []Red Base: estimated sell volume (50% opacity)
[]Green Top: remaining buy volume (50% opacity)
[]Zero Baseline for clean reference at zero
[]Positive-Only Bars (no negatives) - []Red Base: estimated sell volume (50% opacity)
How It Works
- []True-Range Guard
Skips bars where [code]high == low[/code] to avoid divide-by-zero.
[]Volume SplitBuyVol = Volume × (Close − Low) / (High − Low)
SellVol = Volume × (High − Close) / (High − Low)
Both series clamped ≥ 0. - Layered Plot
Draw semi-transparent green at full height, then overlay red sell portion.
Usage
- []Open TradingView’s Pine Editor
[]Paste in the full script
[]Click “Save & Add to Chart”
[]In the Publish dialog, title it “Color Coded Volume Indicator” and paste this description.
Interpretation
- []Green-dominant bars → strong buying pressure
[]Red-dominant bars → strong selling pressure - Equal halves → balanced activity
Notes de version
Added Normalize volume on opening and closing candles to reduce the size of the opening and closing candles, which almost always are unusually large, but don't add a lot of value to most users. When you normalize, it reduces their size and adds a text label to still show you the size.Notes de version
Color Coded Volume IndicatorNormalize session extremes to 15:58 volume
This indicator splits each bar's volume into buy (green) and sell (red) components and, optionally, normalizes the first and last two session candles to the previous-1 bar's volume (i.e. the 15:58 bar on a 1-min chart).
Use on intraday charts up to 5-min. When Normalize volume on session extremes to 15:58 volume is enabled, the 9:30, 15:59, and 16:00 bars plot at the 15:58 volume level, preserving each bar's original buy/sell ratio. Labels show the actual raw volume (K/M format).
- InputsNormalize volume on session extremes to 15:58 volume (bool): Enable cap on 9:30, 15:59 & 16:00 bars
- Volume SplitBuy volume = max(volume * (close - low) / (high - low), 0)
Sell volume = max(volume * (high - close) / (high - low), 0) - Normalization LogicDetect 15:58 candle → latch its rawTotal as reference
Session extremes = 9:30, 15:59, 16:00 bars
On extremes: plot total = reference; plot sell = reference * (sell/total)
All other bars: plot actual rawTotal/split - Labels
- Plain text (no box) above each extreme bar
- Shows actual raw volume in K/M format
- Plain text (no box) above each extreme bar
Notes de version
Color Coded Volume IndicatorNormalize session extremes to 15:58 volume
This indicator splits each bar's volume into buy (green) and sell (red) components and, optionally, normalizes the first and last two session candles to the previous-1 bar's volume (i.e. the 15:58 bar on a 1-min chart).
Use on intraday charts up to 5-min. When Normalize volume on session extremes to 15:58 volume is enabled, the 9:30, 15:59, and 16:00 bars plot at the 15:58 volume level, preserving each bar's original buy/sell ratio. Labels show the actual raw volume (K/M format).
- InputsNormalize volume on session extremes to 15:58 volume (bool): Enable cap on 9:30, 15:59 & 16:00 bars
- Volume SplitBuy volume = max(volume * (close - low) / (high - low), 0)
Sell volume = max(volume * (high - close) / (high - low), 0) - Normalization LogicDetect 15:58 candle → latch its rawTotal as reference
Session extremes = 9:30, 15:59, 16:00 bars
On extremes: plot total = reference; plot sell = reference * (sell/total)
All other bars: plot actual rawTotal/split - Labels
- Plain text (no box) above each extreme bar
- Shows actual raw volume in K/M format
- Plain text (no box) above each extreme bar
Notes de version
Color Coded Volume IndicatorNormalize session extremes to 15:58 volume
This indicator splits each bar's volume into buy (green) and sell (red) components and, optionally, normalizes the first and last two session candles to the previous-1 bar's volume (i.e. the 15:58 bar on a 1-min chart).
Use on intraday charts up to 5-min. When Normalize volume on session extremes to 15:58 volume is enabled, the 9:30, 15:59, and 16:00 bars plot at the 15:58 volume level, preserving each bar's original buy/sell ratio. Labels show the actual raw volume (K/M format).
- InputsNormalize volume on session extremes to 15:58 volume (bool): Enable cap on 9:30, 15:59 & 16:00 bars
- Volume SplitBuy volume = max(volume * (close - low) / (high - low), 0)
Sell volume = max(volume * (high - close) / (high - low), 0) - Normalization LogicDetect 15:58 candle → latch its rawTotal as reference
Session extremes = 9:30, 15:59, 16:00 bars
On extremes: plot total = reference; plot sell = reference * (sell/total)
All other bars: plot actual rawTotal/split - Labels
- Plain text (no box) above each extreme bar
- Shows actual raw volume in K/M format
- Plain text (no box) above each extreme bar
Notes de version
Color Coded Volume IndicatorNormalize session extremes to 15:58 volume
This indicator splits each bar's volume into buy (green) and sell (red) components and, optionally, normalizes the first and last two session candles to the previous-1 bar's volume (i.e. the 15:58 bar on a 1-min chart).
Use on intraday charts up to 5-min. When Normalize volume on session extremes to 15:58 volume is enabled, the 9:30, 15:59, and 16:00 bars plot at the 15:58 volume level, preserving each bar's original buy/sell ratio. Labels show the actual raw volume (K/M format).
- InputsNormalize volume on session extremes to 15:58 volume (bool): Enable cap on 9:30, 15:59 & 16:00 bars
- Volume SplitBuy volume = max(volume * (close - low) / (high - low), 0)
Sell volume = max(volume * (high - close) / (high - low), 0) - Normalization LogicDetect 15:58 candle → latch its rawTotal as reference
Session extremes = 9:30, 15:59, 16:00 bars
On extremes: plot total = reference; plot sell = reference * (sell/total)
All other bars: plot actual rawTotal/split - Labels
- Plain text (no box) above each extreme bar
- Shows actual raw volume in K/M format
- Plain text (no box) above each extreme bar
Notes de version
Color Coded Volume IndicatorNormalize session extremes to 15:58 volume
This indicator splits each bar's volume into buy (green) and sell (red) components and, optionally, normalizes the first and last two session candles to the previous-1 bar's volume (i.e. the 15:58 bar on a 1-min chart).
Use on intraday charts up to 5-min. When Normalize volume on session extremes to 15:58 volume is enabled, the 9:30, 15:59, and 16:00 bars plot at the 15:58 volume level, preserving each bar's original buy/sell ratio. Labels show the actual raw volume (K/M format).
- InputsNormalize volume on session extremes to 15:58 volume (bool): Enable cap on 9:30, 15:59 & 16:00 bars
- Volume SplitBuy volume = max(volume * (close - low) / (high - low), 0)
Sell volume = max(volume * (high - close) / (high - low), 0) - Normalization LogicDetect 15:58 candle → latch its rawTotal as reference
Session extremes = 9:30, 15:59, 16:00 bars
On extremes: plot total = reference; plot sell = reference * (sell/total)
All other bars: plot actual rawTotal/split - Labels
- Plain text (no box) above each extreme bar
- Shows actual raw volume in K/M format
- Plain text (no box) above each extreme bar
Notes de version
Color Coded Volume IndicatorNormalize session extremes to 15:58 volume
This indicator splits each bar's volume into buy (green) and sell (red) components and, optionally, normalizes the first and last two session candles to the previous-1 bar's volume (i.e. the 15:58 bar on a 1-min chart).
Use on intraday charts up to 5-min. When Normalize volume on session extremes to 15:58 volume is enabled, the 9:30, 15:59, and 16:00 bars plot at the 15:58 volume level, preserving each bar's original buy/sell ratio. Labels show the actual raw volume (K/M format).
- InputsNormalize volume on session extremes to 15:58 volume (bool): Enable cap on 9:30, 15:59 & 16:00 bars
- Volume SplitBuy volume = max(volume * (close - low) / (high - low), 0)
Sell volume = max(volume * (high - close) / (high - low), 0) - Normalization LogicDetect 15:58 candle → latch its rawTotal as reference
Session extremes = 9:30, 15:59, 16:00 bars
On extremes: plot total = reference; plot sell = reference * (sell/total)
All other bars: plot actual rawTotal/split - Labels
- Plain text (no box) above each extreme bar
- Shows actual raw volume in K/M format
- Plain text (no box) above each extreme bar
Notes de version
Update v1.1- Added moving average with selectable type (SMA, EMA, WMA, VWMA) and adjustable length — works just like the built-in Volume indicator.
- Improved the opening bar normalization: the 9:30 bar is now sized using the average volume of the 9:31 bar over the last 5 sessions, rather than the previous day's 3:58 bar. This provides a more relevant reference for the opening spike.
Why shorten session extreme bars?
The 9:30 open and 4:00 close bars typically have 5-10x normal volume due to order accumulation (overnight orders executing at open, MOC orders at close). Left unscaled, these bars dominate the y-axis and compress all other bars into an unreadable sliver. By capping their display height to a reference volume — while preserving the buy/sell ratio and labeling the actual volume — you get a readable chart without losing information.
Script open-source
Dans l'esprit TradingView, le créateur de ce script l'a rendu open source afin que les traders puissent examiner et vérifier ses fonctionnalités. Bravo à l'auteur! Bien que vous puissiez l'utiliser gratuitement, n'oubliez pas que la republication du code est soumise à nos Règles.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.
Script open-source
Dans l'esprit TradingView, le créateur de ce script l'a rendu open source afin que les traders puissent examiner et vérifier ses fonctionnalités. Bravo à l'auteur! Bien que vous puissiez l'utiliser gratuitement, n'oubliez pas que la republication du code est soumise à nos Règles.
Clause de non-responsabilité
Les informations et publications ne sont pas destinées à être, et ne constituent pas, des conseils ou recommandations financiers, d'investissement, de trading ou autres fournis ou approuvés par TradingView. Pour en savoir plus, consultez les Conditions d'utilisation.