Skip to main content

mzVolumeProfile

The mzVolumeProfile indicator displays horizontal volume distribution across price levels overlaid on the NinjaTrader chart. It supports Volume Profile, TPO (Market Profile), and combined VP+TPO modes. Profiles can be created per session, daily, weekly, monthly, or by custom criteria, with up to 3 independent stacked profiles on the chart right margin.

Data required: Level 1 (tick data). Tick Replay is optional — enable for precise delta on historical data, or disable and use Minute accuracy for faster loading.

Key Features

  • Multiple profile creation modes — Session, Daily, Weekly, Monthly, Quarterly, Yearly, Composite, Custom, Volume-based, Delta-based, Tick-based, Continuous, RTH/ETH
  • 3 profile views — Ladders, Area, Contour
  • 4 profile types — Volume, BuySell, Delta, VolumeDelta
  • TPO (Market Profile) with letters/blocks, Initial Balance, halfback, open/close markers
  • POC and Value Area (VAH/VAL) with 6 level modes — Off, On, Naked, Extended, Developing, DevelopingNaked
  • VWAP with configurable standard deviations
  • 3 TPO level groups with 10 level types each (Open, Close, High, Low, Mid, IB High, IB Low, TPO POC, TPO VAL, TPO VAH)
  • 3 independent stacked profiles on the chart right margin
  • Profile statistics — Volume, Delta, High/Low, Range, POC, VAH/VAL, VWAP, Begin/End, TPOs
  • Custom profiles with mouse interaction — add, divide, merge, unmerge, split
  • 5 color modes — Solid, Saturation, Heatmap, GrayScaleHeatmap, Custom
  • Profile accuracy — Tick (precise) or Minute (fast)
  • Working time filter with start/stop time
  • Custom S/R levels with alerts (licensed builds)

Profile Creation Modes

ModeDescription
SessionOne profile per trading session
DailyOne profile per calendar day
WeeklyOne profile per week
MonthlyOne profile per month
QuarterlyOne profile per quarter
YearlyOne profile per year
CompositeCumulative profile for all chart data
BarOne profile per bar
BarsOne profile per N bars (set N via Creation value)
SessionsCumulated profile for N last sessions (stacked profiles only)
DaysCumulated profile for N last days (stacked profiles only)
WeeksCumulated profile for N last weeks (stacked profiles only)
MonthsCumulated profile for N last months (stacked profiles only)
VolumeNew profile when cumulative volume reaches Creation value
DeltaNew profile when cumulative delta reaches Creation value
TickNew profile every N ticks
CustomManually add profiles with mouse click
ContinuousSingle continuous profile — use with Working time filter
RTH_ETHSeparate profiles for RTH and ETH sessions
NoneNo profile

Profile Views

ViewDescription
LaddersHorizontal histogram bars showing volume at each price level
AreaFilled area shape
ContourOutline only

Profile Types

TypeDescription
VolumeTotal volume histogram
BuySellSeparate buy and sell volume ladders
DeltaBid/ask delta histogram
VolumeDeltaVolume ladders colored by delta direction
NoneProfile hidden

Color Modes

ModeDescription
SolidUniform color for all ladders
SaturationColor intensity scales with value — higher values are more saturated
HeatmapMulti-color gradient from cool to hot
GrayScaleHeatmapMonochrome intensity gradient
CustomUser-defined color thresholds — Percent or Value based

Custom Color Mode

When Color mode is set to Custom, you choose between two sub-modes:

Percent — 10 percentage-based tiers, each with its own color. Each ladder is colored based on its value as a percentage of the profile's maximum:

TierDefault Color
0–10%DarkRed
10–20%Red
20–30%Chocolate
30–40%DarkOrange
40–50%Orange
50–60%Yellow
60–70%Green
70–80%LightGreen
80–90%Teal
90–100%DodgerBlue

Value — 5 absolute value thresholds:

ThresholdDefault Color
>= 0DarkRed
>= 1,000Red
>= 10,000Orange
>= 20,000Yellow
>= 40,000DodgerBlue

Settings Reference

Common

SettingDefaultDescription
Chart profilesVPProfile type displayed on chart — TPO, VP, VP_TPO, or None
Chart profile modeSessionHow profiles are created (see Profile Creation Modes)
RTH begin08:30Regular Trading Hours start time
RTH end15:15Regular Trading Hours end time
ETHtrueEnable Extended Trading Hours
ETH begin17:30Extended Trading Hours start time
ETH end08:30Extended Trading Hours end time
Profile creation value5Creation threshold for value-based modes (Volume, Delta, Tick, Bars)
Session breaktrueNew session breaks profile when mode = Bars
Profile accuracyTickTick (precise, slower) or Minute (fast, approximate)
Ticks per level1Price level aggregation — set to 2+ to merge adjacent levels
BordertrueShow profile border
BorderCyan, Dot, 1pxBorder line style
BackgroundfalseShow profile background fill
BackgroundDarkSlateBlueBackground color
Background opacity, %10Background transparency
ButtonstrueShow toolbar buttons
Buttons fontMontserrat, 10ptToolbar button font

Volume Profile

SettingDefaultDescription
Profile typeVolumeVolume, BuySell, Delta, VolumeDelta, or None
Profile viewLaddersLadders, Area, or Contour
VA, %68Value Area percentage
Show last N profiles-1Show only last N profiles (-1 = all)
PositionLeftProfile placement — Left, Right, or RightOnChartMargin
Width, %50Profile width as percentage of bar space (-100 to 100)
Relative widthfalseScale width of profiles relative to each other across all chart profiles
Profile: left margin, px0Left margin in pixels
Profile: right margin, px10Right margin in pixels
Color modeSolidSolid, Saturation, Heatmap, GrayScaleHeatmap, or Custom
Custom color modePercentPercent (10 tiers) or Value (5 thresholds)
VA colorRoyalBlueValue Area ladder color
VAH/VAL colorGrayLadders outside Value Area
Buy colorLightGreenBuy-side ladder color (BuySell mode)
Sell colorRedSell-side ladder color (BuySell mode)
Opacity, %50Ladder fill transparency
Values: showNoneDisplay values on ladders — Volume, Delta, BidAsk, or None
Values: 1K dividertrueDivide displayed values by 1,000
Values: colorWhiteValues text color
Values: fontMontserrat, 10ptValues font
Delta: showfalseShow delta histogram alongside profile
Delta: % of profile width20Delta histogram width relative to profile (-100 to 100)
Delta: positiveLimeGreenPositive delta color
Delta: negativeRedNegative delta color
Delta: opacity, %100Delta histogram transparency
Delta: saturationfalseEnable delta color saturation
Profile: developing borderYellow, Dot, 1pxBorder style for the developing (current) profile
Profile: ladders bordersfalseShow borders around individual ladders
Profile: labels fontMontserrat, 11ptProfile label font
Custom profile: unique settingsfalseEach custom profile has unique settings accessible via buttons
Custom profile: add = Mouse Left +LeftCtrlKey modifier to add a custom profile

Volume Profile Levels

SettingDefaultDescription
POC: modeOnPOC level mode — Off, On, Naked, Extended, Developing, DevelopingNaked
POC: lineDarkOrange, Dash, 2pxPOC line style
Developing Tick POCfalseShow developing Tick POC line
Tick POC: lineRed, Dash, 2pxTick POC line style
VAH/VAL: modeOnVAH/VAL level mode — Off, On, Naked, Extended, Developing, DevelopingNaked
VAH/VAL: lineGray, Dash, 1pxVAH/VAL line style
Levels valuesPriceValue displayed at level lines — Price, Volume, Delta, or None

Level Modes Explained

ModeDescription
OffLevel not displayed
OnLevel drawn within profile boundaries only
ExtendedLevel extends from profile to chart right edge
NakedLevel extends until price touches it (then disappears)
DevelopingLevel updates in real time as the profile builds
DevelopingNakedDeveloping + disappears when price touches the level

Volume Profile VWAP

SettingDefaultDescription
VWAP: modeDynamicLast, Dynamic, DynamicStdDev1, DynamicStdDev2, or None
VWAP: lineSteelBlue, Dash, 2pxVWAP line style
VWAP: Sigma 11First standard deviation multiplier
VWAP: Std deviation #1RoyalBlue, 1pxFirst deviation band line style
VWAP: Sigma 22Second standard deviation multiplier
VWAP: Std deviation #2Brown, 1pxSecond deviation band line style

TPO (Market Profile)

TPO (Time Price Opportunity) displays the time distribution of price activity using letters or blocks. Each letter/block represents one time period (default 30 minutes) during which a price level was traded.

SettingDefaultDescription
Letter period, min30Duration of one TPO letter/block period
PresentationLetterDisplay as Letter or Block
SplitfalseUnfold (split) each TPO period separately
StretchedfalseStretch TPO to fill available width
Width, %80Maximum TPO width as percentage (1–100)
PositionLeftTPO placement — Left, Right, or RightOnChartMargin
Rotate colorsfalseCycle through 6 colors for consecutive periods
Letter/block color 1–6Red, Orange, Yellow, LimeGreen, DodgerBlue, SiennaSix rotating TPO colors
Letters fontMontserrat, 12ptTPO letters font
Open: lettertrueHighlight the opening letter
Close: lettertrueHighlight the closing letter
Open: markertrueShow open price marker
Close: markertrueShow close price marker
Open period colorLimeColor for the opening period
Close period colorMagentaColor for the closing period
Open/close profile colorWhiteColor for open/close markers on the profile
Show POCfalseHighlight the TPO POC row
POC: letters/blocksfalseUse distinct color for POC letters/blocks
POC colorGoldenrodTPO POC highlight color
VA, %68TPO Value Area percentage
VA boxtrueDraw a box around the Value Area
VA letters/blockstrueUse distinct color for VA letters/blocks
VA colorDodgerBlueTPO Value Area color
POC/VA opacity, %15POC/VA highlight transparency
Show IBtrueShow Initial Balance range
IB, min60Initial Balance period in minutes
IB colorChocolateInitial Balance highlight color
Show HalfbackfalseShow halfback (midpoint) level
Halfback colorSaddleBrownHalfback color

Notes:

  • TPO letters rotate through 6 colors when Rotate colors is enabled
  • When there is not enough room for letters, blocks are rendered automatically
  • Split (unfold) shows each TPO period separately side by side
  • IB (Initial Balance) = the first N minutes of the session (default 60 min)

TPO Levels

TPO levels project key price levels from profiles as horizontal lines across the chart. There are 3 independent level groups, each configurable to track different profiles.

T-Index Concept

Profiles are indexed using T-index: the most recent profile is T0, the one before it is T1, and so on. T-index determines which profile's levels are drawn.

Per-Group Settings (repeated for groups #1, #2, #3)

SettingDefaultDescription
Enable#1: true, #2/#3: falseEnable this level group
Attach toAllAttach levels to a specific T-index profile (T) or all profiles (All)
Attach to T -0T-index of the profile to attach to (when Attach to = T)
Naked byAnyHow naked levels are canceled — by specific T profile (T), next profile (Next), or any profile (Any)
Naked by T -0T-index for naked cancellation (when Naked by = T)
End of DaytrueCancel naked levels at end of day
Value positionNone (#1), AboveRight (default)Position of value labels on level lines

Each group has 10 level types, each set to Disabled, Extended, or Naked:

Level Type#1 DefaultDescription
OpenDisabledSession/profile open price
CloseDisabledSession/profile close price
HighDisabledSession/profile high
LowDisabledSession/profile low
Mid/HalfbackDisabledMidpoint between high and low
IB HighDisabledInitial Balance high
IB LowDisabledInitial Balance low
TPO POCNakedTPO Point of Control
TPO VALNakedTPO Value Area Low
TPO VAHNakedTPO Value Area High

Shared Line Styles

SettingDefaultDescription
Open lineDodgerBlue, 1pxOpen level line style
Close lineBlue, 1pxClose level line style
High lineRed, 2pxHigh level line style
Low lineLimeGreen, 2pxLow level line style
Mid lineNavy, 2pxMid/Halfback level line style
IB High lineOrange, 1pxIB High level line style
IB Low lineDarkOrange, 1pxIB Low level line style
TPO POC lineGoldenrod, 2pxTPO POC level line style
TPO VAL lineForestGreen, Dash, 2pxTPO VAL level line style
TPO VAH lineCrimson, Dash, 2pxTPO VAH level line style
Value colorLightGrayLevel value text color
Value fontMontserrat, 11ptLevel value font

Profile Statistics

Summary information displayed above each profile.

SettingDefaultDescription
VolumetrueShow total volume
DeltaDeltaDelta display mode — Delta, BidAsk, or None
High/LowtrueShow profile high and low prices
Range, points/ticksfalseShow price range in points and ticks
POCfalseShow POC price
VAH/VALfalseShow VAH and VAL prices
VWAPfalseShow VWAP price
Begin/EndfalseShow profile begin and end times
TPOstrueShow TPO count

Stacked Profiles

Up to 3 independent volume profiles rendered on the chart right margin. Each stacked profile can display a different time period, creation mode, and profile type. Stacked profiles support cumulation and time shifting.

Per-Profile Settings (repeated for #1, #2, #3)

SettingDefault (#1)Description
ShowVPProfile type — TPO, VP, VP_TPO, or None
ModeSessionProfile creation mode
Creation value0N for cumulated/shifted profiles (e.g., Sessions[2] = last 2 sessions)
TypeVolumeVolume, BuySell, Delta, VolumeDelta, or None
PresentationAreaLadders, Area, or Contour
POC/VAH/VAL modeExtendedOff, On, or Extended
POCRoyalBlue, Dash, 3pxPOC line style
VAH/VALCoral, Dash, 2pxVAH/VAL line style
DeltafalseShow delta alongside stacked profile

Stacked profiles #2 and #3 default to None (disabled).

Shared Stacked Settings

SettingDefaultDescription
Delta width, %80Delta histogram width relative to stacked profile (-100 to 100)
Left margin, px50Left margin for stacked profiles
Right margin, px0Right margin for stacked profiles
LegendtrueShow profile legend

Creation Value Examples

  • Sessions[2] — cumulated profile for the last 2 sessions
  • Daily[1] — profile for 1 day ago
  • Monthly[0] — current month's profile
  • Session[0] — current session (developing profile)

A stacked profile is "developing" if it contains the last chart bar.

Extended POC/VAH/VAL lines from stacked profiles start at the profile edge and continue to the right.

Profile Interaction

Profile interaction features let you modify profiles directly on the chart via toolbar buttons.

  • Splitting (unfolding) — unfold TPO profiles to show each period separately
  • Dividing — click the Divide button, then click a bar to split the profile at that point
  • Merging — merge a profile with its left or right neighbor
  • Unmerging — undo a merge (not available in Custom mode)

Profile interaction is not available in Composite modes.

Custom Profiles

When Chart profile mode is set to Custom:

  • Add a profile by holding Mouse Left + LeftCtrl (configurable) and clicking on the chart
  • Enable Custom profile: unique settings to give each custom profile its own type, view, and color settings (accessible via on-chart buttons)
  • The last added custom profile has T-index = 0

Profile Accuracy and Calculate Modes

Loading TimeReal-time PerformanceCalculateHistorical ResolutionReal-time Resolution
NormalNormalOnEachTick1 Tick1 Tick
FastNormalOnEachTick1 Minute1 Tick
FastFastOnBarClose1 Minute1 Minute

Tick accuracy:

  • Provides the most precise volume distribution and delta
  • Enable Tick Replay for accurate delta on historical data
  • Higher CPU and loading time

Minute accuracy:

  • Disable Tick Replay and use a minute-based chart period (e.g., 30 Min)
  • Historical volumes are spread proportionally across each minute bar's price range; up-bar volume = buy, down-bar volume = sell
  • Significantly reduces loading time
  • Recommended for large profiles (weekly, monthly, yearly, TPO)

Working Time

Filter when the indicator processes market data using General > Working time filter with Start time / Stop time.

  • Supports overnight sessions (Stop time falls on the next day)
  • Recommended to use with Continuous profile mode when Working time filter is enabled
SettingDefaultDescription
Working timefalseEnable working time filter
Start time08:30Data processing start time
Stop time15:30Data processing stop time

Levels (Licensed Builds)

Custom support/resistance levels drawn on the chart with mouse interaction.

SettingDefaultDescription
EnablefalseEnable custom S/R levels
Support levelLightGreen, Opacity 25Support level line style
Resistance levelRed, Opacity 25Resistance level line style
Value positionAboveRightLabel placement on level lines
Value/Label colorLightGrayLevel label text color
Value/Label fontArial, 10ptLevel label font
AlerttrueEnable sound alerts
Alert onLevelCrossAlert trigger event
RearmtrueRe-enable alert after firing
Rearm interval, sec3Seconds before alert can fire again
Soundcrossed.wavAlert sound file
Add/remove: Mouse Left +LeftShiftKey modifier to add or remove a level
Modify: Mouse Left +LeftAltKey modifier to move a level
Drag with MousetrueEnable drag-and-drop level repositioning
tip

See Sound Files for the full list of pre-installed sounds and how to add custom WAV files.

Performance Tips

  • Set Ticks per level to 2+ for instruments with many price levels
  • Set Profile accuracy to Minute for large profiles (weekly, monthly, yearly)
  • Use OnBarClose calculate mode with Minute accuracy for maximum performance
  • Toggle TPO visibility via the eye button when TPO is not needed
  • Set MaximalRenderMs to 20–50 ms for responsive charts (chart may flash briefly)
  • Close unused shadow workspaces and remove unused indicators

Non-Bid/Ask Data Support

Some markets (Forex, cryptocurrencies, NSE/Indian stock market) do not provide historical bid/ask data. Without it, all historical trades appear on the Bid side only.

Solution: Set Orderflow > Calculation mode to UpDownTick for these instruments.

Hybrid mode (NSE): NSE data providers do not transmit historical bid/ask data. Use Hybrid mode, which applies UpDownTick calculation for historical data and BidAsk for real-time data.

Recommendation: For Forex pairs, use the relevant futures contract (e.g., 6E for EURUSD) to get accurate bid/ask data and full order flow features.