Volume Profile Indicator

Created 25 Jan 2024 · Updated 28 Mar 2025

The Volume Profile indicator is a Free NinjaTrader 8 indicator with the following features. An Advanced Premium version with additional features is also available.

Prerequisites

To properly use this indicator you should have the following prerequisites available.


Description

  • Display of volume profile on each bar (or a period of bars)
  • Display of volume profile on each trading session, with an optional time interval setting
  • Calculation and display of the value area on each volume profile
  • Splitting of volume profile clusters interactively with a mouse click
  • Merging and grouping (composition) of volume profiles interactively with a mouse click
  • Unique auto-composition of volume profiles based on value area overlapping
  • Works seamlessly with or without OrderFlow data or Tick Replay
  • Works seamlessly on any timeframe, including Renko bars
  • Precise visualization of price discovery and balance areas

Examples

Auto-detecting ranges based on value area confluence

The most basic usage of the indicator is to display volume profiles on each bar of the chart. The volume profiles show value areas calculated on a parametrizable percentage, and with Auto Merge enabled, the indicator can define price ranges based on volume activity on each range. This automatic range detection can generate range breakout signals when a bar breaks out long or short from the last range formed.

Auto-detecting ranges based on value area confluence
Click to enlarge
Volume Profile on Renko charts

The built-in NinjaTrader 8 OrderFlow Volume Profile indicator is great but has limitations — it can't be used on Renko charts, and requires the costly NinjaTrader Lifetime license. Our Volume Profile indicator doesn't have these limitations: it's a free indicator usable even without OrderFlow data enabled, and works on both regular candlestick charts and any type of Renko chart.

Volume Profile on a Renko chart
Click to enlarge
Entry strategy example

One trading strategy that can be built on the session-based volume profile is an opening range strategy: a volume profile is calculated between 01:00 and 09:00 Eastern Time, 30 minutes before market open, defining a range between its value area levels. When price breaks from that range, the breakout can be followed to enter long or short.

Entry strategy example on the session-based volume profile
Click to enlarge

Parameters

We always try to keep the parameters to a minimum.

General
Use OrderFlow DataTells 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
  • Left: draws the profile from the left side to the right side of the candle bar(s)
  • Right: draws the profile from the right side to the left side of the candle bar(s)
Width %The profile width as a percentage of the total width of the candle bar(s) — 100 fills the whole area.
Profile Period
  • Bars: draws a volume profile for each bar on the chart
  • Sessions: draws one volume profile per trading session
Bars PeriodOnly available when Profile Period is Bars — 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.
Time Zone The time zone used for the Session Interval parameter below.
  • EST or Local Time
Session Interval (hh:mm-hh:mm)Only available when Profile Period is Sessions — the time interval that defines the trading session. For an RTH session profile, use 09:30-16:15.
Ticks Per LevelGroups multiple ticks per level, aggregating volume for each price level instead of showing each individual tick — useful on markets with high trading volumes such as the Nasdaq (NQ or MNQ).
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 — e.g. 40% — can be used.
Auto Merge ProfilesEnables/disables automatic composition of adjacent profiles based on value area overlap — useful for automatically detecting ranges of balance and breakouts into price discovery mode.
Rendering
Profile OpacityThe opacity to render the body of the profile.
Value Area OpacityThe opacity to render the value area of the profile — generally set slightly higher than the body opacity for contrast.
Profile Body ColorDraw color of profile levels other than the POC and value area levels.
POC ColorDraw color of the POC level.
Value Area ColorDraw color of the value area levels.
Show POCEnables/disables highlighting the POC level with its own color.
Show Value AreaEnables/disables highlighting the value area levels with their own colors.
Show Labels / Font SizeEnables/disables pivot level labels, and their font size.

Interactive Commands

Interactive commands are merge/split operations applied to volume profiles by right-clicking on them.

Merge Right
Merge Right command
Click to enlarge

Accessible by right-clicking a volume profile that has a successor profile — concatenates the clicked profile with its right-hand neighbor into one composite profile, which can be further composed with its remaining neighbors.

Profile before merge:

Profile before the Merge Right command
Click to enlarge

Profile after merge:

Profile after the Merge Right command
Click to enlarge
Merge Left
Merge Left command
Click to enlarge

Accessible by right-clicking a volume profile that has a predecessor profile — concatenates the clicked profile with its left-hand neighbor into one composite profile, which can be further composed with its remaining neighbors.

Split Profile
Split Profile command
Click to enlarge

Visible when the clicked profile is composed of more than one candlestick — splits it into multiple unit profiles, which can be re-merged afterward.

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.

Important: This is a Free product — no paid subscription is required to run it live, though creating an account is still required to get your license.
Download
Sign in to download this file.
Latest Version v1.7.0.3 · Published 1 year ago
This file was downloaded 4006 times. Last download was 1 day ago.

You can also download this strategy — and every other automated-trading.ch strategy or indicator — anytime from your centralized Downloads page.

Installation Steps
1
Import the downloaded .zip file into NinjaTrader using the Import NinjaScript menu item.
2
Open a new chart window.
3
If you intend to use the indicator without OrderFlow data (NinjaTrader Lifetime License), enable the Tick Replay checkbox on the new chart's settings (if you don't see it, go to Tools → Options → Market Data and enable Show Tick Replay). If OrderFlow data is enabled on your NinjaTrader license, the indicator works seamlessly with or without Tick Replay — just make sure to check the Use OrderFlow Data parameter.
4
Right-click the chart and choose Indicators... to add the indicator to the chart.
5
Copy/paste your license key, found on the billing page, into the license parameter.
6
After adding the indicator to the chart, it runs on the chart's historical data first, then continues running on live market data.

Frequently Asked Questions

General

Yes — if you have an idea that you believe can improve this indicator, use the contact page to send us a message.

No, the source code of the indicator is protected for copyright reasons.

No, this indicator only does rendering and doesn't provide data that can be used from within a strategy — check out our other strategies for one based on this same concept.

Yes, you can use this indicator without TickReplay, but bear in mind that in this case the indicator will not detect events on historical candles — it will only start detecting them on real-time volume and price data.

Release Notes

  • Fix Bug: error calculating Value Area on condensed profile; Fix drawing of profile on higher ticker-per-level values

  • Fix Bug: crash calculating value area on aggregated profile; Fix lagging on NQ/MNQ

  • POC/Value area lines changed to Solid instead of dashed; Fixed glitch on session mode with close intervals

  • Rewrite of rendering algorithm fixing glitch/blinking/lag on NQ and MNQ

  • Bug Fix: false "License not recognized" error; Session mode completely rewritten

  • Refresh Rate removed

  • Refresh Rate applied to chart drawing rather than calculations

  • Added EST/Local Time timezone options for session profiles; Added Min Refresh Rate (Seconds) parameter; More performance optimization; Better license management

  • Fixing Serialization of properties when saving templates; Fix detecting start/end of session

  • First Release of the indicator
discord
Join our Discord community
Questions, feedback, or just want to chat with other traders? Come say hi.
Join Discord
Quick Facts
Platform NinjaTrader 8
Category Indicator
Plan Required Free
Latest Version v1.7.0.3
Last Updated 1 year ago
Downloads 4006