Introduction

Reference documentation for configuration options and methods of the Volume by Price Indicator a suite of technical analysis data visualization tools for MetaTrader 4 and 5 platforms:

Configurations are made via the indicator properties window 'Inputs' tab by setting parameters.

The properties window opens after attaching an indicator instance to a chart:
menubar insert indicators custom volume by price

To open the properties window of an instance already attached:
menubar charts indicators list edit volume by price

The basic approach is to select graphical object types, e.g., set parameter Object Main = Market Profile TPO - Marker Letter, Object Column = Volume Profile Total and Object Column Mini = Volume Profile - Histogram, and positions, e.g., Anchor Main = Segment - Start, Anchor Column = Segment - Start Left and Anchor Column Mini = Right.

For the dataset, set range, segmentation, price level and TPO parameters, e.g., Dataset Range = 10 Days, Dataset Segment = Session Chart Symbol, Dataset Price Level = 100 Symbol Points and Dataset Market Profile TPO = 48.

For further indications, select by on-object visualization, e.g., Indication Main Market Profile TPO = Sequence and Indication Column Mini Volume Profile = Value Area, and/or by visualization method, e.g., Indication Main Marker POC = Box Border and Indication Main Marker VA = Box Border. For the Main object select additional indication elements, e.g., Indication Main IB, Indication Main OHLC and Indication Main VWAP. For the built-in Extension object select type and indication, e.g., Extension Volume by Time Object = Histogram or Extension Volume by Time Object = Bubble Graph, and Extension Volume by Time Indication = Delta.

Set styling parameters by object type and/or visualization method. Size histogram and line graph object types of segments for absolute or relative indications, e.g., Style Column Size Mini Histogram = Relative. Indication context class color parameters, e.g., Style Main Color (positive) and Style Main Color (negative) for Indication Main Volume Profile = Value Area to indicate Value Area and the range(s) higher and/or lower, or for Indication Main Volume Profile = Delta with Evaluation Volume Profile Class = Price High/Low volume classes by close prices higher and lower. Set color list parameters with presets, or specify as text value to type or create with included resources, e.g., Style Main Marker Color Sequence = Green,White,Gray and Style Background Color Gradient = Blue-Green-Red.

Chart property parameters for integrated chart control, i.e., settings of the chart properties window, and to make additional changes, e.g., to hide native price chart and/or scales. Default configuration with indicator keyboard shortcuts, optional on-chart control buttons, to toggle display of objects, switch types of the Main and Panel object, and to adjust price level size. For dataset range Drag & Drop to focus the range selection lines back into view.

Panel object for numeric indications and details on dataset compilation. Default dataset compilation with prices of millisecond accumulated real-time data ticks and lowest chart timeframe period historical data. Data Source API for more data connectivity and storage options, and integration with third-party data feeds and exports. Historical price tick data, Time and Sales (T&S) real-time and historical trade operation tick data with volume classification by order type, and Depth Of Market (DOM) data with the Tick Volumes and Order Book data connectors.

For high resolution price level Volume Profile, i.e., small price level size, especially on low chart timeframe or price scale, it is imperative to have sufficient data available for price level data points to have value, e.g., dataset range of 15 minutes on 1-minute timeframe chart can fill only 15 price levels at most with lowest chart timeframe period historical data whereas price tick data at times can provide 1500 values to distribute. Maximum use of historical price chart timeframe data of a broker is set with Max bars property via the options window 'Charts' tab. To apply changes restart the terminal.

Data Environment API for programmatic access to dimensions and metrics. Advanced setups by specifying environment variable names as values of text input parameters with additional properties and options, e.g., Indication Main Custom = VP_POC_MEDIAN:Label1,MP_POC_MEDIAN:Label2 for line visualization of Volume Point of Control and Market Profile TPO Point of Control with custom text labels, and Object Panel = Label1=%VP_POC_MEDIAN%;Label2=%MP_POC_MEDIAN% for custom Panel object. Tracing, Notifications and Reports extensions for historical record and to closely follow development of environment variable values, e.g., Extension Tracing 1 = VP_POC_MEDIAN, Extension Tracing 2 = VP_VA_HIGH and Extension Tracing 3 = VP_VA_LOW for line visualization of Developing Volume Point Of Control and Value Area, and Extension Notifications 1 = BID > VP_VA_HIGH & VOLUME_TOTAL > 10000 as condition for desktop and/or mobile notification.

Default configuration with safe modes enabled to prevent unintended high system resource usage such as with time based segmentation methods on change to higher chart timeframe or time scale. Warnings are displayed whether memory was overextended, segmentation parameters were adjusted and/or dataset compilation quality was lowered. Preemptively favor speed over quality of historical price chart timeframe period data distribution with the Balanced and Performance plans adaptive data timeframe period selection.

Graphical Objects

Input Parameters:  Object

Main

enumenumeration

Keyboard shortcut: To switch types, press T.

  • Volume Profile - Histogram
  • Volume Profile - Line Graph
  • Market Profile TPO - Histogram
  • Market Profile TPO - Line Graph
  • Market Profile TPO - Marker Letter
  • Market Profile TPO - Marker Block

Column

enum,stringenumeration, string

Minimum price level size for text to display is 8 pixels. Note: Align text characters vertically with a monospaced font, e.g., set Style Column Font Text to Consolas. Note: Display as stacked bar or table with Style Column Fill and/or Style Column Border.

  • Price High
  • Price Low
  • Price Median
  • Volume Profile Total
  • Volume Profile Delta
  • Volume Profile Positive ; Volume Profile Negative
  • Market Profile TPO Total
  • Volume Profile Total ; Volume Profile Delta
  • Volume Profile Total ; Market Profile TPO Total
  • Volume Profile Total ; Price Median
  • Volume Profile Delta ; Price Median
  • Market Profile TPO Total ; Price Median
  • Market Profile TPO Total ; Market Profile TPO Letters
  • Market Profile TPO Total ; Market Profile TPO Indices
  • Specified Format: Environment variable names enclosed with per cent sign (%). Use a semicolon (;) to specify columns.

Column Mini

enumenumeration
  • Volume Profile - Histogram

Background

enumenumeration
  • Volume Profile

Panel

enum,stringenumeration, string

Keyboard shortcut: To switch types, press L.

  • Summary
  • Extended Summary
  • Data Coverage
  • Price Level and TPO Precision
  • Specified Format: Environment variable names enclosed with per cent sign (%). Use a semicolon (;) to specify line breaks, for horizontal rules three three hyphens and a semicolon (---;). Set direct or by file. Values longer than 229 characters can only be set by file. Note: Resource pack includes example and built-in preset reference configuration files. Example: Set Panel to %TIME_START%-%TIME_END%;TPOC=%MP_POC_MEDIAN% VPOC=%VP_POC_MEDIAN% Example: Set Panel to Folder\Panel.txt
    create file named Panel.txt at path C:\Program Files\MetaTrader 5\MQL5\Files\Folder\Panel.txt
    edit file to content %TIME_START%-%TIME_END%;TPOC=%MP_POC_MEDIAN% VPOC=%VP_POC_MEDIAN%

Grid

enumenumeration

Minimum price level size to display is 3 pixels.

  • Segment
  • Window

Separator

enumenumeration

Keyboard shortcut: To toggle display, press X.

  • Start
  • End
  • Start/End

Input Parameters:  Object Position

Anchor Main

enumenumeration
  • Window Note: Window side with Direction Main.
  • Segment - Start
  • Segment - End

Anchor Column

enumenumeration
  • Window - Left
  • Window - Right
  • Segment - Start Left
  • Segment - Start Right
  • Segment - End Left
  • Segment - End Right

Anchor Column Mini

enumenumeration
  • Right
  • Left

Anchor Panel

enumenumeration
  • Window
  • Window, Segment - Start
  • Segment - Bottom, Segment - Start

Direction Main

enumenumeration
  • Left-to-Right
  • Right-to-Left

Direction Column Mini

enumenumeration
  • Left-to-Right
  • Right-to-Left

Offset Main

intinteger

Pixels.

Offset Column

intinteger

Pixels.

Margin Column Mini

intinteger

Pixels.

Offset Panel

stringstring

Pixels. Format: Top and left comma separated.

Layer Main

enumenumeration

Keyboard shortcut: To toggle options, press B. Note: Control native price chart layer with Chart on foreground via the chart properties window (keyboard shortcut F8) 'Common' tab.

  • Foreground
  • Background

Layer Column

enumenumeration
  • Foreground
  • Background

Subwindow Panel

enumenumeration

Note: Extension pack includes Window application file for dedicated sub window. add-on

Input Parameters:  Dataset

Feed

enumenumeration

Volume Profile

enumenumeration
  • Tick Volume
  • Real Volume *

* Available for MetaTrader 4 via the Data Source API

Market Profile TPO

uintunsigned integer

Amount of indexed TPO periods. TPO period size is segment range divided by amount of TPO periods. Block marker structures up to 65025. Letter marker structures up to 230. Default is 52 (upper and lower case alphabet) increase and/or customize character sequence with Style Main Marker Character Letter. Note: Inspect TPO period size with Panel preset Price Level and TPO Precision. Example: 15-minute TPO for Europe, London (07:00-16:00)
calculate periods required by dividing session duration by required TPO period size
(9-hour session duration / 15-minute TPO = 36)
set Market Profile TPO to 36

Price Real-time

enumenumeration

Real-time price tick data distributions. High-performance, low-latency in-memory storage. Reinitialization on dataset range, chart timeframe and price level grid changes. Note: Inspect real-time price tick data coverage with Panel preset Data Coverage. Note: Order Book and Tick Volumes extensions for persistent disk storage of price tick data. add-on

  • 1 Millisecond
  • 10 Milliseconds
  • 100 Milliseconds
  • 300 Milliseconds
  • 600 Milliseconds
  • 1 Second

Price History

enumenumeration

Historical price chart timeframe period data distributions. Fallback to higher timeframes if unavailable. Note: Inspect historical price chart timeframe period data coverage with Panel preset Data Coverage. Note: Control the terminal's historical data limit with Max bars via the options window (keyboard shortcut Ctrl-O) 'Charts' tab. To preload historical data and build time series data request the required range on the required lower timeframe period(s) of the chart before attaching an indicator instance to a chart. Note: Resource pack includes History Bars application file to load and build time series data of all chart timeframe periods. add-on

  • All Available Timeframes
  • 1 Minute (M1)
  • 2 Minutes (M2) *
  • 3 Minutes (M3) *
  • 4 Minutes (M4) *
  • 5 Minutes (M5)
  • 6 Minutes (M6) *
  • 10 Minutes (M10) *
  • 12 Minutes (M12) *
  • 15 Minutes (M15)
  • 20 Minutes (M20) *
  • 30 Minutes (M30)
  • 1 Hour (H1)
  • 2 Hours (H2) *
  • 3 Hours (H3) *
  • 4 Hours (H4)
  • 6 Hours (H6) *
  • 8 Hours (H8) *
  • 12 Hours (H12) *
  • Daily (D1)
  • Weekly (W1)
  • Chart Timeframe

* Available for MetaTrader 5

Price History Plan

enumenumeration

Historical data timeframe period limit by maximum bars and coverage.

  • Performance
  • Balanced
  • Quality

Price Level

enum,uintenumeration, unsigned integer

Adjusted by chart height and price scale for 'pixel perfect' price level visualizations. Underlying price calculations with not less than 8 digits. Minimum price level size for Market Profile TPO marker structures is 8 pixels. Keyboard shortcut: To increase, press Q. To decrease, press W. Note: Inspect actual price level size in pixels and symbol points with Panel preset Price Level and TPO Precision. If actual size not exactly matches Specified Symbol Points it can be set by adjusting chart height and/or price scale. This is a general software/hardware limitation regarding the 'pixel perfect' concept. Note: Resource pack includes Scale Fix application file to validate chart dimensions and set price scale by specified price level size in pixels and symbol points. add-on

  • Specified Pixels
  • Specified Symbol Points

Price Level Grid

enum,floatenumeration, float

Dynamic fix by window or dataset range. Implicit or explicit static fix by fractional part of decimal number. Note: Maintain price level grid with a price level size greater than or equal to one symbol point of chart with dimensions where price level size in symbol points is divisible by price level size in pixels. Control chart price scale with Scale Fix via the chart properties window (keyboard shortcut F8) 'Common' tab. Note: Resource pack includes Scale Fix application file to validate chart dimensions and normalize price scale for price level size symbol points. add-on

  • Static
  • Dynamic - Window
  • Dynamic - Dataset

Range

enumenumeration
  • Window
  • Drag & Drop Time
  • Drag & Drop Time/Price
  • Specified Date/Time
  • Specified Days
  • Specified Bars
  • Specified Minutes
  • Current Day
  • Previous Day
  • Current Week
  • Previous Week
  • Current Month
  • Previous Month
  • Current Quarter
  • Previous Quarter
  • Current Year
  • Previous Year

Range Drag & Drop

enumenumeration

Time/price and time based methods. Default is window visible range. Reinitialization on chart timeframe changes. Persistent with specified User Interface Drag & Drop ID. Keyboard shortcut: To toggle display of range selection line, press G. To reset to the visible range, press R. Note: Range selection for multiple indicator instances with shared User Interface Drag & Drop ID. Range selection line and area style with User Interface Drag & Drop Size Line, Color Line and Color Fill.

Range Window

uintunsigned integer

Window visible range in percentage. Updates range if current bar is not visible. Keyboard shortcut: To update range if current bar is visible, press R.

Range Date/Time

date/timedate/time

Date/time picker.

Range Days

stringstring

Format: Start and optional end colon (:) separated. Negate for future range end. Example: Previous and current day
set Range, Days to 2
Example: Previous, current and upcoming three days
set Range, Days to 2:-3

Range Bars

stringstring

Format: Start and optional end colon (:) separated. Negate for future range end. Example: Previous 96 bars, current and upcoming 47 bars.
set Range, Bars to 97:-47

Range Minutes

stringstring

Adjusted for chart timeframe period. Format: Start and optional end colon (:) separated. Negate for future range end. Example: Previous 480 minutes, current and upcoming 239 minutes.
set Range, Minutes to 481:-239

Range Repeat

boolboolean

Reinitialize relative range selections on end. Keyboard shortcut: To reinitialize range manually, press R.

Segment

enum,stringenumeration, string

Time and chart timeframe period based methods. Adjusted dataset and segment ranges respectively for division without remainder.

  • Specified Session
  • Specified Divisor Format: Prefix with equal sign (=) to specify as product in seconds, minutes, hours or days (s, m, h and d). Example: Single segment, previous two days
    set Range, Days to 3:2
    set Segment to Specified Divisor
    set Segment Divisor to 1
    Example: Single segment, previous two day sessions
    set Range, Days to 3:2
    set Segment to Specified Session
    set Segment Session Group to 2
    Example: 12 x 4-hour segments, previous and current day
    set Range, Days to 2
    set Segment to Specified Divisor
    set Segment Divisor to =4h

Segment Session

enum,stringenumeration, string

Chart timeframe up to Daily (D1). Built-in presets Coordinated Universal Time (UTC) intended. Default minimum segment width to display is 24 pixels decrease with Safe Mode Segment Width.

  • Chart Symbol
  • Pacific, Sydney (22:00-07:00)
  • Asia, Tokyo (23:00-08:00)
  • Europe, London (07:00-16:00)
  • South-America, Sao Paolo (11:00-17:15)
  • North-America, New York (12:00-20:00)
  • Specified Format: 24-hour (hh:mm). Week day names (full or abbreviated) comma separated or by hyphen (-) to specify as range.

Segment Session Offset

enumenumeration

Offset specified and built-in preset sessions.

Segment Session Group

uintunsigned integer

Concatenation of sessions.

  • Any
  • Consecutive

Segment Session Group TPO

enumenumeration

Indexing of TPO periods.

  • Group
  • Session

Input Parameters:  Indication

Main Volume Profile

enumenumeration
  • Value Area
  • Total - Gradient
  • Delta
  • Delta - Stack
  • Delta - Stack Ordered

Main Market Profile TPO

enumenumeration
  • Value Area
  • Total - Gradient
  • Sequence
  • Sequence - Gradient

Column Volume Profile

enumenumeration
  • Total - Opacity
  • Delta - Opacity

Column Mini Volume Profile

enumenumeration
  • Nodes
  • Value Area
  • Delta
  • Delta - Stack

Background Volume Profile

enumenumeration
  • Total - Gradient
  • Total - Opacity
  • Total - Contour
  • Delta - Opacity
  • Delta - Contour

Input Parameters:  Indication Main

Current

enumenumeration
  • true
  • true - Line

Median

enumenumeration
  • true - Line

Balance

enumenumeration
  • true - Line

Imbalance

enumenumeration
  • true - Background Fill

POC

enumenumeration

Point of Control.

  • true
  • true - Line Note: Line visualization of both Volume Profile and Market Profile TPO metrics with Indication Main Custom.
  • true - Background Fill

VA

enumenumeration

Value Area. Note: On-object visualization with Indication Main.

  • true - Background Fill

VAH/VAL

enumenumeration

Value Area High and Low.

  • true
  • true - Line Note: Line visualization of both Volume Profile and Market Profile TPO metrics with Indication Main Custom.

LVN

enumenumeration

Low Volume Nodes.

  • true
  • true - Background Fill

HVN

enumenumeration

High Volume Nodes.

  • true
  • true - Background Fill

IB

enumenumeration

Initial Balance.

  • true
  • true - Line

OHLC

boolboolean

Keyboard shortcut: To toggle display, press C.

Open, High, Low and Close.

VWAP

boolboolean

Volume Weighted Average Price.

Custom

stringstring

Line visualization of metrics. Format: Environment variable names comma separated. Optional custom text labels colon (:) separated, for style append name-value pairs (propSize, propOpacity and/or propColor) semicolon (;) separated. Set direct or by file. Values longer than 229 characters can only be set by file. Note: Resource pack includes Main Line application file for user interface to create input files. add-on Note: Default style with Style Indication Line Size, Opacity and Size. Display text labels with Style Indication Line Label. Example: Market Profile TPO and Volume Profile Point of Control
set Custom to MP_POC_MEDIAN,VP_POC_MEDIAN
Example: Market Profile TPO and Volume Profile Point of Control with custom text labels set by file.
set Custom to Folder\Line.txt
create file named Line.txt at path C:\Program Files\MetaTrader 5\MQL5\Files\Folder\Line.txt
edit file to content MP_POC_MEDIAN:Label1,VP_POC_MEDIAN:Label2
Example: Volume Profile Value Area High and Low with style per metric.
set Custom to VP_VA_LOW:;propColor=clrRed;propSize=3,VP_VA_HIGH:;propColor=clrBlue;propSize=3

Input Parameters:  Indication Main Marker

POC

enumenumeration
  • true - Box Border
  • true - Box

VA

enumenumeration
  • true - Bracket
  • true - Box Border
  • true - Box

Start

boolboolean

End

boolboolean

Start Row

enumenumeration
  • true - Underline
  • true - Box Border
  • true - Dot

End Row

enumenumeration
  • true - Underline
  • true - Box Border
  • true - Dot

Letter Start

stringstring

First TPO marker replacement character.

Letter End

stringstring

Last TPO marker replacement character.

Letter POC

stringstring

Additional marker character at row's end.

Input Parameters:  Evaluation

Volume Profile Class

enumenumeration

Volume classification.

  • Price High/Low
  • Data Source API Note: Order Book extension to feed real-time and historical Time and Sales (T&S) trade operation tick data with volume classification by order type. add-on

Volume Profile Total

uintunsigned integer

Highest price level value. Effective if greater than dataset segment highest price level value.

Market Profile TPO Total

uintunsigned integer

Highest price level value. Effective if greater than dataset segment highest price level value.

Price Level

enumenumeration

Price level range inclusion.

  • High
  • Low

Imbalance

enumenumeration
  • POC
  • Median

Imbalance

enumenumeration
  • Include
  • Exclude

VA

uintunsigned integer

Percentage.

VA

enumenumeration
  • POC
  • Median

VA

enumenumeration
  • Any
  • Exceed

VA TPO

enumenumeration
  • Price High
  • Price Low
  • TPO High
  • TPO Low

LVN/HVN

enumenumeration
  • Volume Profile
  • Market Profile TPO

LVN/HVN VA

boolboolean

Separate evaluation ranges based on Value Area.

LVN

uintunsigned integer

Maximum percentage of highest price level value.

HVN

uintunsigned integer

Minimum percentage of highest price level value.

LVN Limit

uintunsigned integer

Limit by total amount of price levels. Note: Up to three separate evaluation ranges with LVN/HVN VA.

HVN Limit

uintunsigned integer

Limit by total amount of price levels. Note: Up to three separate evaluation ranges with LVN/HVN VA.

IB

uintunsigned integer

Minutes.

IB TPO

boolboolean

Open at first TPO period.

Input Parameters:  Evaluation Column

Volume Profile

intinteger

Filter by price level value. Format: Positive value for 'greater than or equal' condition, negative value for 'less than or equal' condition.

Market Profile TPO

intinteger

Filter by price level value. Format: Positive value for 'greater than or equal' condition, negative value for 'less than or equal' condition.

Price Level

enum,stringenumeration, string

Filter by price level metric types.

Input Parameters:  Style Main

Size

enumenumeration

Histogram and line graph object size relation between segments. Absolute for each segment or relative to the dataset segment with the highest price level value. Note: Scaling with relative object sizes and if chart width available for segment is less than required for pixel ratioed scale visualization. Underlying scale calculations with not less than 8 digits. Rounding in scale calculations might cause minor visual distribution changes. Note: Prevent coarse initial size and color visualization of the dataset's first segment with Evaluation Volume Profile Total and Evaluation Market Profile TPO Total

  • Relative
  • Absolute

Size

enum,uintenumeration, unsigned integer

Keyboard shortcut: To switch options, press S.

  • Small
  • Medium
  • Large
  • Specified Pixels

Color (total) (positive) (negative)

colorcolor

Color Gradient

enum,stringenumeration, string
  • Blue-Red
  • Yellow-Red
  • Green-Red
  • Blue-Green-Red
  • Blue-Green-Orange
  • Blue-Purple
  • Blue-Purple-Yellow
  • Specified Format: Color list.

Input Parameters:  Style Main Histogram

Border

boolboolean

Border Merge

boolboolean

Overlap of bar borders, i.e., 1 pixel inaccuracy, for aesthetics. Effective if price level size is greater than 2 pixels.

Color Border (positive, total) (negative)

colorcolor

Input Parameters:  Style Main Line Graph

Area

boolboolean

Size Line

enumenumeration

Opacity Area

enumenumeration

Color Area

colorcolor

Smooth/Interpolate TPO

enumenumeration

Factor for removal of data points and cubic spline interpolation.

Style Line Smooth/Interpolate TPO

enumenumeration
  • Solid
  • Dashed

Input Parameters:  Style Main Marker

Anchor Letter Time

enumenumeration

Adjusted for alignment to chart timeframe period.

Character Letter

stringstring

Format: ASCII characters.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789#@
Additional ASCII and selected ANSI characters.
(Windows-1252 CP intended, code 128 and above, 'nonprintables' with unique replacement symbol)
Set direct or by file. Values longer than 229 characters can only be set by file.
Note: Resource pack includes Main Marker application file for user interface to create input files. add-on Note: Code pages are used by operating systems to display symbols (characters) by codes. Windows US-English systems have as default code page (ANSI) CP-1252. Maximum amount of unique characters usable might be lower than 230.

Style Letter

enumenumeration
  • Regular
  • Bold

Size Letter

enum,uintenumeration, unsigned integer
  • Small
  • Medium
  • Large
  • Specified Pixels

Spacing Letter

enumenumeration

Note: Negative options for strong condensed structures.

Style Block

enumenumeration
  • Solid
  • Outline

Size Block

enum,uintenumeration, unsigned integer
  • Small
  • Medium
  • Large
  • Specified Pixels

Padding Block

enumenumeration

Color

colorcolor

Color used for markers without on-object visualization.

Color Sequence

stringstring

Default 26 unique colors repeated once. Format: Color list. Note: Resource pack includes Main Marker application file for user interface to create input files. add-on

Color Sequence Groups

stringstring

Grouping of TPO periods for color visualization. Format: Comma separated. Example: First two hours green, third hour white and remaining hours gray, with 30-minute TPO
set Indication Main Market Profile TPO to Sequence
set Style Main Marker Color Sequence Groups to 4,2
(4 x 30-minute for first group and 2 x 30-minute for remaining groups)
set Style Main Marker Color Sequence to Green,White
set Style Main Marker Color to Gray

Color Gradient Sequence

stringstring

Format: Color list. Note: Resource pack includes Main Marker application file for user interface to create input files. add-on

Color Gradient Sequence Groups

stringstring

Grouping of TPO periods for color visualization with gradual progression between group colors by gradient shades. Format: Comma separated.

Input Parameters:  Style Column

Size

stringstring

Minimum column widths in pixels. Format: Comma separated. Example: Three columns. First and second column 200 pixels. Third column by text length.
set Column to %VOLUME_DELTA%;%VOLUME_TOTAL%;%PRICE_MEDIAN%
set Style Column Size to 200,200,0

Padding

enumenumeration

Text

boolboolean

Fill

enumenumeration

Single cell fill color or visualization of volume classes by multiple colors.

  • true
  • true - Class

Border

enumenumeration
  • true
  • true - Window

Border Row

boolboolean

Size Text

enumenumeration

Size Mini Histogram

enumenumeration

Size relation between segments. Absolute for each segment or relative to the dataset segment with the highest price level value. Note: Scaling with relative object sizes and if chart width available for segment is less than required for pixel ratioed scale visualization. Underlying scale calculations with not less than 8 digits. Rounding in scale calculations might cause minor visual distribution changes. Note: Prevent coarse initial size and color visualization of the dataset's first segment with Evaluation Volume Profile Total.

  • Relative
  • Absolute

Size Mini Histogram

enum,uintenumeration, unsigned integer

Size in pixels or as percentage of the Main histogram and line graph object size.

  • Specified Pixels
  • Specified Percentage

Opacity Fill

enumenumeration

Color Text

colorcolor

Color Text Current

colorcolor

Color Fill

colorcolor

Color Fill Current

colorcolor

Color Fill (total) (positive) (negative)

colorcolor

Color Border

colorcolor

Color Border Row

colorcolor

Color Mini Histogram Nodes

enumenumeration

Color visualization relation between segments. Absolute for each segment or relative to the dataset segment with the highest price level value.

  • Relative
  • Absolute

Color Mini Histogram Nodes

stringstring

Color visualization of price level value by ranging in percentages. Format: Comma separated. Example: Nodes 0-30%, 30-60% and 60-100%
set Indication Column Mini Volume Profile to Nodes
set Style Column Color Mini Histogram Nodes to 30,60,100

Color Mini Histogram Nodes

stringstring

Format: Color list.

Font Text

enum,stringenumeration, string

Align Text

stringstring

Horizontal alignments of cell texts. Format: Comma separated.

Format Text Number

enumenumeration
  • Hundred (h)
  • Thousand (k)
  • Million (M)

Format Text Number Digits

uintunsigned integer

Format Text Number Limit

boolboolean

Format for scale resulting with at least one near whole number.

Format Text TPO Index

stringstring

Default enclosement with brackets. Format: Left, right and trailing character.

Format Text TPO Index Padding

boolboolean

Pad TPO indices numbers texts with spaces to equal largest length used.

Input Parameters:  Style Background

Opacity

enumenumeration

Shade

enumenumeration
  • Left-to-Right
  • Right-to-Left

Color

colorcolor

Background fill color for contour visualizations.

Color (total) (positive) (negative)

colorcolor

Color Gradient

enum,stringenumeration, string
  • Blue-Red
  • Yellow-Red
  • Green-Red
  • Blue-Green-Red
  • Blue-Green-Orange
  • Blue-Purple
  • Blue-Purple-Yellow
  • Specified Format: Color list.

Input Parameters:  Style Panel

Size Text

enumenumeration

Color Text

colorcolor

Color Fill

colorcolor

Color Border

colorcolor

Font Text

enum,stringenumeration, string

Format Text Number

enumenumeration
  • Hundred (h)
  • Thousand (k)
  • Million (M)

Format Text Number Digits

uintunsigned integer

Format Text Date/Time

stringstring

Format Text Date/Time Offset

enumenumeration

Input Parameters:  Style Grid

Style

enumenumeration
  • Solid
  • Dashed

Opacity

enumenumeration

Color

colorcolor

Input Parameters:  Style Separator

Style Start

enumenumeration
  • Solid
  • Dashed

Style End

enumenumeration
  • Solid
  • Dashed

Color Start

colorcolor

Color End

colorcolor

Input Parameters:  Style Indication

Fill Histogram

boolboolean

Histogram bar fill in addition to border.

Opacity Background Fill

enumenumeration

Ray Background Fill

boolboolean

Shade Background Fill

enumenumeration
  • Left-to-Right
  • Right-to-Left

Color Current

colorcolor

Color Median

colorcolor

Color Balance

colorcolor

Color Imbalance (positive) (negative)

colorcolor

Color POC

colorcolor

Color VAH

colorcolor

Color VAL

colorcolor

Color VA (positive) (negative)

colorcolor

Color LVN

colorcolor

Color HVN (positive) (negative)

colorcolor

Size IB

enumenumeration
  • Small
  • Medium
  • Large

Offset IB

intinteger

Pixels.

Size OHLC

enumenumeration
  • Small
  • Medium
  • Large

Offset OHLC

intinteger

Pixels.

Color IB

colorcolor

Color OHLC (positive) (negative)

colorcolor

Color Wick OHLC (positive) (negative)

colorcolor

Color VWAP

colorcolor

Input Parameters:  Style Indication Marker

Size Line

enumenumeration

Opacity Box

enumenumeration

Color Box POC

colorcolor

Color Box Border POC

colorcolor

Color Box VA

colorcolor

Color Box Border VA

colorcolor

Color Bracket VA

colorcolor

Color Start

colorcolor

Color End

colorcolor

Color Start Row

colorcolor

Color End Row

colorcolor

Color Letter POC

colorcolor

Input Parameters:  Style Indication Line

Style

enumenumeration
  • Solid
  • Dashed

Label

boolboolean

Size

enumenumeration

Size Label

enumenumeration

Margin

intinteger

Pixels.

Margin Label

intinteger

Pixels.

Opacity

enumenumeration

Ray

boolboolean

Color

colorcolor

Color Label Text

colorcolor

Color Label Fill

colorcolor

Font Label Text

enum,stringenumeration, string

Align Vertical Label Text

enumenumeration
  • Top
  • Middle
  • Bottom

Align Horizontal Label Text

enumenumeration
  • Right
  • Left

Input Parameters:  Extension Volume by Time

Object

enumenumeration
  • Histogram
  • Bubble Graph

Segment

boolboolean

Single segment for Dataset Range or separate ranges by Dataset Segment.

Time Period

enum,uintenumeration, unsigned integer
  • Specified Bars
  • 1 Minute
  • 5 Minutes
  • 15 Minutes
  • 30 Minutes
  • 1 Hour
  • 4 Hours
  • Daily
  • Weekly

Indication

enumenumeration
  • Total - Gradient Horizontal
  • Total - Gradient Vertical
  • Delta
  • Delta - Stack
  • Delta - Stack Ordered

Indication Opacity

enumenumeration

Color opacity visualization of time period value.

Color (positive, total) (negative)

colorcolor

Color Border (positive, total) (negative)

colorcolor

Color Gradient

enum,stringenumeration, string
  • Blue-Red
  • Yellow-Red
  • Green-Red
  • Blue-Green-Red
  • Blue-Green-Orange
  • Blue-Purple
  • Blue-Purple-Yellow
  • Specified Format: Color list.

Anchor Histogram Price

boolboolean

Anchor histogram to bottom of range selection with Range Drag & Drop Time/Price.

Anchor Bubble

enumenumeration
  • Start
  • End
  • Median

Anchor Bubble Price

enumenumeration
  • Close
  • High
  • Low
  • Median
  • Axis

Layer

enumenumeration
  • Foreground
  • Background

Subwindow

enumenumeration

Note: Extension pack includes Window application file for dedicated sub window. add-on

Size

enum,uintenumeration, unsigned integer
  • Small
  • Medium
  • Large
  • Specified Pixels

Border

boolboolean

Border Merge Histogram

boolboolean

Overlap of histogram bar borders, i.e., 1 pixel inaccuracy, for aesthetics. Effective if time period size is greater than 2 pixels.

Input Parameters:  Chart Properties

Color Scheme

enumenumeration
  • default
  • Gray On Black
  • White On Black
  • Color On Black
  • Gray On White
  • Black On White
  • Color On White

Price Chart

enumenumeration
  • default
  • Hide
  • Show

Price Chart Layer

enumenumeration
  • default
  • Foreground
  • Background

Common Period Separator

enumenumeration
  • default
  • Hide
  • Show

Common Grid

enumenumeration
  • default
  • Hide
  • Show

Common Y-axis

enumenumeration
  • default
  • Hide
  • Show

Common X-axis

enumenumeration
  • default
  • Hide
  • Show

Indicator Z-order

uintunsigned integer

Object mouse click and hover event priority base number.

References
"Object Properties - MQL5 Reference" https://www.mql5.com/en/docs/constants/objectconstants/enum_object_property
"Object Properties - MQL4 Reference" https://docs.mql4.com/constants/objectconstants/enum_object_property

Input Parameters:  User Interface

On-Chart Controls

stringstring

Configuration file on-chart controls. To enable/disable set to true/false, or specify a configuration file. Default 'osc.ini'. Note: Configuration files are located in the terminal directory. For quick access use command 'Open Data Folder' in the File menu.

Keyboard Shortcuts

stringstring

Configuration file keyboard shortcuts. To enable/disable set to true/false, or specify a configuration file. Default 'hotkeys.ini'. Note: Configuration files are located in the terminal directory. For quick access use command 'Open Data Folder' in the File menu.

Drag & Drop ID

uintunsigned integer

Drag & Drop Size Line

enumenumeration
  • Small
  • Medium
  • Large

Drag & Drop Color Line

colorcolor

Drag & Drop Color Fill

colorcolor

Drag & Drop Anchor Panel

boolboolean

Anchor panel to top-left corner of range selection with Range Drag & Drop Time/Price.

Input Parameters:  Application Program Interface

Data Source

stringstring

Dataset feed source data file input. Default file name is chart symbol Market Watch name prefixed by 'VBP' underscore separated. Format: Data Source Format 1 comma delimited file.
<EPOCHTIME>,<CLOSE>,<TICKVOL>,<VOLCLASSA>,<VOLCLASSB>
Format: Data Source Format 4 comma delimited file.
<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<TICKVOL>,<VOL>,<VOLCLASSA>,<VOLCLASSB>
Format: Data Source Format 5 tab delimited file.
<DATE> <TIME> <OPEN> <HIGH> <LOW> <CLOSE> <TICKVOL> <VOL> <SPREAD> <VOLCLASSA> <VOLCLASSB>
Note: Data files are located in the terminal directory by default, optionally in the common directory for use with multiple or separate terminal instances. For quick access to the terminal directory use command 'Open Data Folder' in the File menu. For quick access to the common directory use command 'Open Common Data Folder' in the File menu of the MetaEditor. Note: Order Book extension to feed real-time and historical Time and Sales (T&S) trade operation tick data with volume classification by order type. Tick Volumes extension to feed real-time and historical Tick Volume price tick data with volume classification by price action. add-on Example: File name 'Data.csv'
set Dataset Feed to Data Source API
set Data Source to Data.csv
content file at path C:\Program Files\MetaTrader 5\MQL5\Files\Data.csv
Example: File name 'Data.csv' with common file folder location
set Dataset Feed to Data Source API
set Data Source to Data.csv
set Data Source Common Folder to true
content file at path C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\Common\Files\Data.csv
Example: Data Source Format 5 content file 4 rows, 6 ticks, 8 buy and 5 sell orders 2022.09.14  18:52   3950.75 3950.75 3950.50 3950.75 1   1   25 1
2022.09.14  18:52   3950.75 3950.75 3950.50 3950.50 1   1   25 0
2022.09.14  18:52   3950.75 3950.75 3950.50 3950.75 2   8   25 6
2022.09.14  18:52   3950.75 3950.75 3950.50 3950.75 2   3   25 1
Example: Data Source Format 4 content file 6 rows, 6 ticks, 8 buy and 5 sell orders 2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,1,1
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.50,1,1,0
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,6,6
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.50,1,2,0
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,1,1
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.70,1,2,0

References
"Files and Folders - MetaTrader 5 Help" https://www.metatrader5.com/en/terminal/help/start_advanced/structure
"Terminal Start and Data Structure - MetaTrader 4 Help" https://www.metatrader4.com/en/trading-platform/help/userguide/start_comm

Data Environment

stringstring

Dimensions and metrics data Global Variables output. To enable/disable set to true/false, or specify an environment name. Optional filter query. Global Variable names are prefixed by 'VBP', and if specified environment name, underscore separated. Segment index, starting at zero and omitted for first, is appended enclosed with brackets. Note: For a snapshot of dimensions and metrics available to the terminal use command 'Global Variables' in the Tools menu. Note: Tracing extension for price metric data iCustom Buffers output. add-on Note: Resource pack includes code samples to access metrics with the GlobalVariable, iCustom and CopyBuffer functions. Example: Environment name 'Env1' with variable filter
set Data Environment to Env1?filter=MP,VP,IB
(metrics of segments accessible as 'VBP_ENV1_MP_POC_MEDIAN', 'VBP_ENV1[1]_MP_POC_MEDIAN', etc)
Example: Code sample to access volume, TPO and price metrics with the GlobalVariable function. long metric1 = GlobalVariableGet("VBP_VP_VOLUME_COUNT_DELTA");
int metric2 = GlobalVariableGet("VBP_MP_TPO_COUNT_DELTA");
double metric3 = GlobalVariableGet("VBP_VP_POC_MEDIAN");
double metric4 = GlobalVariableGet("VBP_MP_POC_MEDIAN");

References
"Global Variables of the Terminal - MQL5 Reference" https://www.mql5.com/en/docs/globals
"Global Variables of the Terminal - MQL4 Reference" https://docs.mql4.com/globals
"CopyBuffer - MQL5 Reference" https://www.mql5.com/en/docs/series/copybuffer
"iCustom - MQL5 Reference" https://www.mql5.com/en/docs/indicators/icustom
"iCustom - MQL4 Reference" https://docs.mql4.com/indicators/icustom

Input Parameters:  Extension Order Book - Time and Sales add-on

Feed

enumenumeration
  • Chart Symbol

Range

enumenumeration

Output

strstring

Input Parameters:  Extension Order Book - Depth Of Market add-on

Feed

enumenumeration
  • Chart Symbol

Output

strstring

Input Parameters:  Extension Tick Volumes add-on

Feed

enumenumeration
  • Chart Symbol

Range

enumenumeration

Output

strstring

Input Parameters:  Extension Tracing add-on

Data Environment

strstring

1 to 21

enumenumeration
  • VP_HIGH
  • VP_LOW
  • VP_MEDIAN
  • VP_BALANCE
  • VP_POC_MEDIAN
  • VP_POC_HIGH
  • VP_POC_LOW
  • VP_VA_HIGH
  • VP_VA_LOW
  • MP_HIGH
  • MP_LOW
  • MP_MEDIAN
  • MP_BALANCE
  • MP_POC_MEDIAN
  • MP_POC_HIGH
  • MP_POC_LOW
  • MP_VA_HIGH
  • MP_VA_LOW
  • IB_HIGH
  • IB_LOW
  • VWAP

Input Parameters:  Extension Notifications add-on

Data Environment

strstring

1 to 3 (left value) (right value)

enum,floatenumeration, float
  • BID
  • ASK
  • VOLUME_TOTAL
  • VOLUME_DELTA
  • VOLUME_DELTA_N
  • VOLUME_POSITIVE
  • VOLUME_NEGATIVE
  • MP_TPO_TOTAL
  • VP_RANGE
  • VP_MEDIAN
  • VP_BALANCE
  • VP_POC_MEDIAN
  • VP_POC_LOW
  • VP_POC_HIGH
  • VP_VA_LOW
  • VP_VA_HIGH
  • VP_VA_RANGE
  • VP_VOLUME_COUNT_DELTA
  • VP_VOLUME_COUNT_DELTA_N
  • VP_VOLUME_COUNT_POSITIVE
  • VP_VOLUME_COUNT_NEGATIVE
  • MP_RANGE
  • MP_MEDIAN
  • MP_BALANCE
  • MP_POC_MEDIAN
  • MP_POC_LOW
  • MP_POC_HIGH
  • MP_VA_LOW
  • MP_VA_HIGH
  • MP_VA_RANGE
  • MP_VOLUME_COUNT_DELTA
  • MP_VOLUME_COUNT_DELTA_N
  • MP_VOLUME_COUNT_POSITIVE
  • MP_VOLUME_COUNT_NEGATIVE
  • IB_LOW
  • IB_HIGH
  • IB_RANGE
  • VWAP
  • Specified Value

1 to 3 (comparison operator)

enumenumeration
  • Equal to
  • Less than
  • Greater than

1-2, 2-3 (logical operator)

enumenumeration
  • And
  • Or

Input Parameters:  Extension Reports add-on

Data Environment

strstring

Output

strstring

Output Template

strstring

Format: Environment variable names enclosed with per cent sign (%). For signed and unsigned change values append 'CHG' and 'CHG_N' underscore separated to names. For HTML format literal boolean and arrow symbol values with 'CHG_L' and 'CHG_S'. Note: Configuration files are located in the terminal directory. For quick access use command 'Open Data Folder' in the File menu.

Data Source and Environment

Extension and user specified file dataset feed setups via the Data Source API. Timeframe period and trade operation based data row processing methods. MetaTrader 4 and 5 Market Watch bar data default export file formats based Data Source Format 4 and 5 options for both platforms. MetaTrader 4 format extended by an additional column to use with Real Volume. Volume classification by a last additional column to use with Evaluation Volume Profile Class. Minimal file size format option Data Source Format 1. Built time series data stored in-memory. Reinitialization on chart timeframe changes.

Extension and developer utilization of dimensions and metrics data via the Data Environment API. For indicator setups environment variables can be specified by name as values of text input parameters with additional properties and options.

Name Usage Global Variable Main Custom Column Evaluation Column Panel
Time range
TIME_START x x
TIME_END x x
DAY_START x
DAY_END x
SESSION x
DAY_START_NLONG Long formatted literal x
DAY_END_NLONG Long formatted literal x
SESSION_NLONG Long formatted literal x
Real-time price tick data total accumulated
CSIZE Data rows reference x x
Real-time price tick data last accumulated
CTIME x x
CPRICE x x
CPRICE_CHG x
CPRICE_CHG_N Symbol points size x
CPRICE_CHG_LED Class colored circle symbol, first entry of line x
Volume Profile
VOLUME_TOTAL x x x
VOLUME_POSITIVE x x x
VOLUME_NEGATIVE x x x
VOLUME_DELTA Class signed number x x x
VOLUME_DELTA_N x x x
VP_LOW x x x
VP_HIGH x x x
VP_RANGE Symbol points size x x
VP_MEDIAN x x x
VP_BALANCE x x x
VP_POC x
VP_POC_MEDIAN x x x
VP_POC_LOW x x x
VP_POC_HIGH x x x
VP_VA_LOW x x x x
VP_VA_HIGH x x x x
VP_VA_RANGE Symbol points size x x
VP_VOLUME_COUNT_POSITIVE x x
VP_VOLUME_COUNT_NEGATIVE x x
VP_VOLUME_COUNT_DELTA Class signed number x x
VP_VOLUME_COUNT_DELTA_N x x
PRICE_SET Input parameter reference x x
PRICE_MEDIAN x
PRICE_LOW x
PRICE_HIGH x
HVN x
LVN x
Volume Profile - Real-time price tick data last accumulated
CVOLUME_TOTAL x
CVOLUME_POSITIVE x
CVOLUME_NEGATIVE x
CVOLUME_DELTA x
CVOLUME_DELTA_LED Class colored circle symbol, first entry of line x
Volume Profile - Real-time price tick data last bar
BVOLUME_TOTAL x
BVOLUME_POSITIVE x
BVOLUME_NEGATIVE x
BVOLUME_DELTA Class signed number x
BVOLUME_DELTA_N x
Market Profile TPO
MP_TPO_SET Input parameter reference x x
MP_TPO_TIME x x
MP_TPO_TIME_NSHORT Short formatted literal x
MP_TPO_TIME_NLONG Long formatted literal x
MP_TPO_TOTAL x x x
MP_TPO_INDEX x
MP_TPO_LETTER x
MP_LOW x x x
MP_HIGH x x x
MP_RANGE Symbol points size x x
MP_MEDIAN x x x
MP_BALANCE x x x
MP_POC x
MP_POC_MEDIAN x x x
MP_POC_LOW x x x
MP_POC_HIGH x x x
MP_VA_LOW x x x x
MP_VA_HIGH x x x x
MP_VA_RANGE Symbol points size x x
MP_BODY x
MP_TAIL x
MP_TPO_COUNT_POSITIVE x x
MP_TPO_COUNT_NEGATIVE x x
MP_TPO_COUNT_DELTA Class signed number x x
MP_TPO_COUNT_DELTA_N x x
PRICE_SET Input parameter reference x x
PRICE_MEDIAN x
PRICE_LOW x
PRICE_HIGH x
HVN x
LVN x
Initial Balance
IB_LOW x x x
IB_HIGH x x x
IB_RANGE Symbol points size x x
Volume Weighted Average Price
VWAP x x x
Depth Of Market *
VOLUME_PENDING x
VOLUME_PENDING_POSITIVE x
VOLUME_PENDING_NEGATIVE x

* Available via the Order Book extension

Add-on Extensions

Shortcut Controls

Shortcut controls for selected parameters. Enable/disable and customize with On-Chart Controls and Keyboard Shortcuts parameters.

Default Key Usage
RInitialize Range
QIncrease Price Level
WDecrease Price Level
TSwitch Type Main
LSwitch Type Panel
BToggle Layer Main
SSwitch Style Size Main
HToggle Display All
XToggle Display Separator
CToggle Display OHLC
GToggle Display Range Selection Line

Color Lists

Color lists to specify sequences and gradient bases as value of text input parameters.

Create color list file 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

Format: MQL color names, e.g., clrPurple,clrGold or literal RGB values, e.g., C'235,64,52',C'33,102,176'. Comma or hyphen separated. Lists longer than 229 characters can only be set by file. Example: Set parameter, e.g., Style Background Color Gradient, to clrRed,clrWhite,clrBlue Example: Set parameter, e.g., Style Main Marker Color Sequence, to ColorList.txt
content file at path C:\Program Files\MetaTrader 5\MQL5\Files\Volume by Price Indicator\ColorList.txt

References
"Web Colors - MQL5 Reference" https://www.mql5.com/en/docs/constants/objectconstants/webcolors
"Web Colors - MQL4 Reference" https://docs.mql4.com/constants/objectconstants/webcolors
"Color Type - MQL5 Reference" https://www.mql5.com/en/docs/basis/types/integer/color
"Color Type - MQL4 Reference" https://docs.mql4.com/basis/types/integer/color

Updated: 2023.05.25 Published: 2017.11.24