Volume Profile Indicator [Advanced]
Created 30 Mar 2025
·
Updated 27 Dec 2025
The Volume Profile indicator [Advanced] is a Premium NinjaTrader 8 indicator with the following features.
Prerequisites
To properly use this indicator you should have the following prerequisites available.
- NinjaTrader 8, with any license type. Click here to download
- Order Flow data is not required to use this indicator — you don't need a Lifetime license.
- An automated-trading.ch account with an active Premium Subscription
Description
-
Display of volume profile in 3 modes:
- Session Mode: displays a volume profile defined on a time interval for each trading session
- Bars Mode: displays a volume profile on each bar or an aggregate of bars, with auto-merging support
- Click & Drag Mode: interactively creates volume profiles on the chart using mouse clicks
- Calculation and display of the value area on each volume profile
- Merging and grouping (composition) of volume profiles interactively with a mouse click
- Splitting of volume profile clusters interactively with a mouse click
- Unique auto-composition of volume profiles based on value area overlapping
- Works seamlessly with or without OrderFlow data (no OrderFlow data requires Tick Replay)
- Works seamlessly on any timeframe, including Renko bars
- Uses a Machine Learning algorithm to classify profile types (P-Shape, D-Shape, b-Shape)
- Displays POC and Value Areas as progressing lines through the volume profile
- Shows Value Area Gaps, the volume version of Fair Value Gaps
Examples
RTH Session Volume Profile
The most straightforward usage of the indicator is to lay out RTH session volume profiles and trade on POC and Value Area levels of the previous day's volume profile. The session time interval can be adjusted to whatever suits the instrument, and works on both time-based timeframes and price-based ones such as Renko or Range bars. Two separate intervals for the same trading session can be tracked by adding two instances of the indicator, each with its own session interval.
Auto-detecting ranges based on value area confluence
Displaying volume profiles on each bar shows value areas calculated on a parametrizable percentage. The confluence between the value area bounds, the open/close prices, and the point of control can highlight opportunities for short-term scalping. This mode also modifies the volume profile sequence according to a merging algorithm based on value area overlap — profiles can also be manually merged or unmerged by right-clicking on a volume profile and using the context menu.
Bars-based volume profiles with automatic type detection
The volume profile can have three main types: P shape (most volume at the top of the profile — a hint that price may continue higher when confirmed by price action), D shape (most volume in the middle — no directional bias confirmed), and b shape (most volume at the bottom — a hint that price may continue lower). The profile type can be used to confirm a directional bias, for example a "b" cluster followed by price breaking down, or a "P" profile marking a price reversal.
Click & Drag manual drawing of volume profiles
Under Click & Drag mode, click once on a start anchor on the chart — a rectangle is drawn following the mouse movement — then click a second time where the volume profile should end. The resulting profile can be transformed (click to activate, then drag), removed (right-click → Remove Profile), or extended into the latest bar to keep it active and recalculating with new live price bars.
POC and Value Area as progressive plots for Sessions and Bar based profiles
With the POC and Value Area render modes set to "Progress" instead of "Last Value", the lines are drawn progressively for each bar — visualizing how volume changed inside the profile's bar cluster, which can create trading opportunities when price action revisits those levels.
Value Area Gaps
Value Area Gaps are the volume equivalent of Fair Value Gaps, and provide more accurate reference levels. They're created when price leaves a value area up or down without mitigating it, marking a zone that can act as a support/resistance zone when price returns to it. One should observe the behavior of price around a Value Area Gap before deciding to trade it — if the zone acts as support or resistance, it's a good indication the zone is worth watching. Value Area Gaps sometimes overlap with Fair Value Gaps, but not always; in practice, price tends to respect Value Area Gaps more than Fair Value Gaps.
Parameters
We always try to keep the parameters to a minimum.
| General | |
| Use OrderFlow Data | Tells the indicator whether you have OrderFlow data enabled (NinjaTrader Lifetime license). Check this if you have OrderFlow; uncheck it if you don't — in which case you should enable TickReplay on your chart. |
| Align |
|
| Profile Period |
|
| Visible only when Profile Period is Sessions | |
| Time Zone |
The time zone used for the Session Interval parameter below.
|
| Session Interval (hh:mm-hh:mm) | The time interval that defines the trading session — e.g. 09:30-16:15 for RTH. |
| Visible only when Profile Period is Bars | |
| Aggregate Bars Period | The number of bars per volume profile — 1 draws a profile per bar, 2 draws one profile per pair of bars, and so on. Bars can be merged or split manually afterward. |
| Ticks Per Level | Groups multiple ticks per level, aggregating volume for each price level instead of showing each individual tick — useful on markets with high volatility and wide prices such as the Nasdaq (NQ or MNQ). |
| Show POC | Enables/disables highlighting the POC level with its own color. |
| Show Value Area | Enables/disables highlighting the value area levels with their own colors. |
| Value Area % | The percentage of trading volume used to calculate the value area around the POC. The standard value is 68% (a normal distribution's value area), but any percentage can be used. |
| Show Profile Body | Enables/disables highlighting the profile body with a distinguishing color. |
| Auto Merge Profiles | Enables/disables automatic composition of adjacent profiles based on value area overlap — useful for automatically detecting ranges of balance and breakouts into price discovery mode. |
| Machine Learning | |
| Classify Profile Type | Enables classifying and displaying each volume profile's type using a Machine Learning algorithm. |
| Profile Type Text Position | Where to render the profile type — Top or Bottom. |
| Text Font Size / Profile Type Brush / Text Opacity (1-100) | Font size, color, and opacity of the profile type text. |
| Value Area Gaps | |
| Show Value Area Gaps | Enables/disables drawing of Value Area Gaps. |
| Mitigation Method |
|
| Stop Showing Mitigated | Hides VAG drawings once mitigated, for a cleaner chart. |
| Stop Extending @ New Day | Stops the VAG zone from extending into a new day even if not mitigated. |
| Show 50% Level | Draws the consequent encroachment (50%) level on the VAG zone. |
| Shrink VAG | Shrinks the VAG drawing each time it's touched by a candle wick. |
| Bullish Color / Bearish Color | Brush color to draw bullish/bearish VAGs. |
| Render Opacity (1-100) | Brush opacity to draw VAGs, from 1 (transparent) to 100 (opaque). |
| Rendering | |
| Profile Width % | The profile width as a percentage of the total width of the candle bar(s) — 100 fills the whole area. |
| Profile Opacity | The opacity to render the body of the profile. |
| POC Render Mode |
|
| Value Area Render Mode |
|
| Value Area Opacity | The opacity to render the value area of the profile. |
| Profile Body Color | Draw color of profile levels other than the POC and value area levels. |
| POC Color / POC Opacity | Draw color and opacity of the POC level. |
| Value Area Lines Thickness / POC Thickness | Line thickness of the value area lines and the POC line. |
| Value Area Color / Value Area Line Opacity | Draw color and opacity of the value area levels. |
| Show Labels / Label Font Size | Enables/disables pivot level labels, and their font size. |
Interactive Commands
Interactive commands on the Click & Drag mode
Extend To Last Bar extends the clicked volume profile until the most recent bar on the chart — the profile stays active, extending to new bars and recalculating at each new tick. Stop Extending marks the clicked profile as inactive, so it stops extending to new bars. Remove Profile removes the profile from the chart entirely — needed since the "Delete" keyboard button can't be used to remove a profile.
Interactive commands on the Bars mode
Interactive commands are merge/split operations applied to volume profiles by right-clicking on them. Merge Right and Merge Left concatenate the clicked profile with its successor/predecessor profile (visible only when one exists) — the resultant composite profile can be further composed with its neighbors. Split Profile, visible when the clicked profile is composed of more than one candlestick, splits it into multiple unit profiles, which can be re-merged afterward.
Signals & Usage in Strategy Builder
Starting from version 2.0.0.0, this indicator can no longer be used as a signal generator on other platforms.
Download & Installation Instructions
License Requirements
At automated-trading.ch you can choose to either purchase a monthly subscription to use our premium products, or use our free products without subscribing.
In both cases, you need to create an account so you can get a License you can use for both premium and free products.
To obtain your license, simply sign up and then get your license on the billing page.
Download
You can also download this strategy — and every other automated-trading.ch strategy or indicator — anytime from your centralized Downloads page.
Installation Steps
Frequently Asked Questions
General
Release Notes
- On Bars mode, stop volume profile at session end to avoid inconsistent intraday volume aggregation
- Fix bug: start-of-session volume profile one bar prior on >1min timeframes; Fix bug: session volume profile not shown when chart ends before session end
- Fix bug: value area gaps not showing
- Added Value Area Gaps
- Fix bug: chart drawing freezes indicator when switching to realtime
- Fix Bug: last bar not calculated when Bars mode selected and switching to real time
- Added 100% asynchronous data loading (lag/freeze proof); Added progress bar for realtime processing; Added POC/Value area line opacity params; Added POC/Value area line thickness params; Added POC and Value area progress render mode on click and drag; Various stability fixes
- Fix Bug: indicator hides Grid lines when added to chart
- Bug Fix: profiles not showing in CET timezone
- Bug Fix drawing Volume profiles on bars mode
- Fix POC & Value Area progress mode on Bars period Tick Replay; Speed up POC Progress mode calc
- First Release of the indicator