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 Total and Object Column = Volume Profile - Histogram, and positions, e.g., Anchor Main = Segment - Start and Anchor Column = Segment - Start Left.

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

For further indications, select by on-object visualization, e.g., Highlight Main Market Profile TPO = Sequence and Highlight Column Volume Profile = Value Area, and/or by visualization method, e.g., Highlight Main Marker POC = Box Border and Highlight Main Marker VA = Box Border. For the Main object select additional indication elements, e.g., Highlight Main IB = Bar, Highlight Main OHLC = Candle and Highlight Main VWAP = Line. Display the Main Line objects as horizontal line, or line graph by chart timeframe period data points, e.g., Style Main Line Trace = true. For the 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 Highlight = Delta. Panel object for numeric indications and details on dataset compilation, e.g., Panel = Summary Extended - Table and Panel = Dataset Information - Feed Statistics.

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 Histogram = Relative. Indication context class color parameters, e.g., Style Main Color (positive) and Style Main Color (negative) for Highlight Main Volume Profile = Value Area to indicate Value Area and the range(s) higher and/or lower, or for Highlight Main Volume Profile = Delta with Evaluation Volume Buy/Sell = Price High/Low volume classes by close prices higher and lower. Set color parameters with the color picker. Default configuration with a palette of five colors a positive, negative, neutral, foreground and background color. For contrast on both dark and light themed charts, the foreground and background color parameter values, set to Gray, are automatically substituted to the chart's respective colors with Style Color Default Foreground/Background. 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. Layer graphical objects above or below the native price chart, e.g., Layer Main = Background and Layer Column = Foreground. Composition multiple indicator instances from top to bottom by the order of attaching to the chart. Panel object display as text lines, table column rows or dashboards on the chart or a separate subwindow, e.g., Panel = Summary Extended - Line, Style Panel Raster Line = true and Style Highlight Panel Color Fill = Signed.

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 reset the range selection lines to the window visible range. Pair multiple Drag & Drop indicator instances with a shared Drag & Drop ID.

Default dataset compilation with millisecond accumulated real-time data ticks and lowest chart timeframe period historical data with Dataset Real-time Ticks Accumulation = 100 Milliseconds and Dataset History Bars = All Timeframes. Historical 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) real-time pending order data with the included Tick Volumes and Order Book data connectors via the Data Source API, e.g., attach a data connector instance to a chart and set indicator parameter Dataset Feed = Indicator API. Feed MetaTrader 5 terminal broker exclusive data, i.e., historical price tick and trade operation tick data, to MetaTrader 4 terminals, e.g., additionally set indicator parameter Data Source Common Folder = true, and Extension Order Book Output Common Folder = true and Extension Order Book Output Format = 4. Availability and scope of Order Book Time and Sales (T&S) and Depth Of Market (DOM) extension data by MetaTrader 5 terminal account brokerage provisioning for select Exchange Future chart symbols. Alternatively, feed user specified third party tick-by-tick or bar data files, e.g., stream of real-time tick-by-tick data or download of historical bar data Data Source = Feed.csv.

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 tick data at times can provide 1500 values to distribute. Maximum use of historical chart timeframe data of a broker is set with Max bars property via the terminal options window 'Charts' tab. To apply changes to the Max bars property restart the terminal.

Default configuration safe modes 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 chart timeframe period data distribution with the adaptive data timeframe period selection modes or select a single timeframe period, e.g., on high scale 4-hour timeframe chart Dataset History Bars Plan = Performance or Dataset History Bars = 15 Minutes.

Data Environment API for extension and developer programmatic access to dimensions and metrics. Data output as Global Variables with extensions included to stream data to files in HTML, CSV, JSON and SQL formats, and output price metrics as iCustom Buffers. Environment variable names can be specified as values of input parameters with additional properties and options, e.g., line visualization with user specified labels and style per metric Highlight Main Custom = VP_POC_MEDIAN:Volume Point of Control;propSize=3;propDash=1, etc, data statistics table Object Panel = Volume Point of Control %VP_POC_MEDIAN%; etc, and evaluation condition Extension Notifications Condition = VOLUME_DELTA > 500, etc. Developer resources include a framework for automated algorithmic trading strategies. Global Variables and iCustom Buffers Data Environment API clients and an event-model extension.

Indicator data and configuration files are located in the terminal directory by default, optionally in the Common Folder for shared use with other terminals. Values of text input parameters can be set by reference to a configuration file. Specified paths are relative with optional use of chart property names for automatic data and configuration association, e.g., Market Profile TPO marker configuration Style Main Marker Character Letter = Market Profile TPO Letters.ini and Style Highlight Marker Color Sequence = Market Profile TPO Colors.ini, or dynamic segmentation configuration with automatic association by chart symbol name and timeframe period Dataset Segment Divisor = %SYMBOL%_%TIMEFRAME%.ini. For quick access to the terminal directory use command 'Open Data Folder' in the File menu of the terminal. For quick access to the Common Folder use command 'Open Common Data Folder' in the File menu of the MetaEditor.

For security reasons, work with files is strictly controlled in the MQL4 and MQL5 programming languages. MetaTrader terminals utilize the highest user security and privacy standards, i.e., file sandbox for all applications types, no read or write permissions outside of the MQL4|MQL5\Files subfolder, no DLL import without explicit user approval via the application properties window, and no internet access without explicit user approval via the terminal options window.

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.

  • Price High
  • Price Low
  • Price Median
  • Volume Total
  • Volume Delta
  • Volume Buy ; Volume Sell
  • TPO Total
  • Volume Total ; Volume Delta
  • Volume Total ; Volume Buy ; Volume Sell
  • Volume Total ; TPO Total
  • Volume Total ; Price Median
  • Volume Delta ; Price Median
  • Volume Buy ; Volume Sell ; Price Median
  • TPO Total ; Price Median
  • Specified Format: Environment variable names enclosed with per cent sign (%). Aliases by option name case sensitive. Use a semicolon (;) to specify columns. Example: Set Column to %PRICE_MEDIAN%;%VOLUME_TOTAL%;%TPO_TOTAL%

Column

enumenumeration
  • Volume Profile - Histogram
  • Market Profile TPO - Marker Letter
  • Market Profile TPO - Marker Index

Background

enumenumeration
  • Volume Profile - Histogram
  • Volume Profile - Fill

Panel

enum,stringenumeration, string

Keyboard shortcut To switch types, press L.

  • Summary - Line
  • Summary Extended - Line
  • Summary Extended - Table
  • Dataset Information - Feed Statistics
  • Dataset Information - Price Level and TPO Period
  • Specified Format: Environment variable names enclosed with per cent sign (%). Use a semicolon (;) to specify line breaks. Use a vertical slash (|) to specify line breaks effective for Style Panel Raster Line only. Set direct or by file. Values longer than 229 characters can only be set by file. Note: Resources include example configuration files. Example: Set Panel to %TIME_START%-%TIME_END%;TPOC=%MP_POC_MEDIAN% VPOC=%VP_POC_MEDIAN% Example: Set Panel to Panel.ini
    create file named Panel.ini at path C:\Program Files\MetaTrader 5\MQL5\Files\Volume by Price Indicator\Panel.ini
    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 - Left
  • Window - Right
  • Segment - Start
  • Segment - End

Anchor Column

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

Anchor Panel

enumenumeration
  • Window - Top
  • Window - Bottom
  • Segment - Top
  • Segment - Bottom
  • Segment - Top/Bottom

Anchor Panel

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

Direction Main

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

Direction Column

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

Offset Main

intinteger

Pixels.

Offset Column

intinteger

Pixels.

Offset Column

stringstring

Pixels. First and second histogram object and/or marker structure. Format: First and second comma separated.

Offset Panel

stringstring

Pixels. Format: Top and left comma separated.

Layer Main

enumenumeration

Keyboard shortcut To toggle options, press B.

  • Foreground
  • Background

Layer Main Line

enumenumeration
  • Foreground
  • Background

Layer Column

enumenumeration
  • Foreground
  • Background

Layer Column

enumenumeration

Histogram objects and/or marker structures.

  • Foreground
  • Background

Subwindow Panel

enumenumeration

Note: Window extension for dedicated subwindow.

Input Parameters:  Dataset

Feed

enumenumeration

Real-time and historical tick-by-tick data with the Order Book and Tick Volumes extensions, and user data files via the Data Source API.

  • History Bars + Real-time Ticks Accumulation
  • History Ticks + Real-time Ticks - Indicator API

Real-time Ticks Accumulation

enumenumeration

Real-time tick data distributions stored in-memory. Reinitialization on dataset range, chart timeframe and price level grid changes. Note: Inspect tick data coverage with Panel preset Dataset Information - Feed Statistics. Note: Order Book and Tick Volumes extensions for disk storage tick data persistent on reinitialization.

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

History Bars

enumenumeration

Historical chart timeframe period data distributions. Fallback to higher timeframes if unavailable. Note: Inspect historical chart timeframe period data coverage with Panel preset Dataset Information - Feed Statistics. Note: Control the terminal's historical data limit with Max bars via the terminal 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: Resources include History Bars application to load and build time series data of all chart timeframe periods.

  • All 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

History Bars Plan

enumenumeration

Historical data timeframe period limit by maximum bars and coverage.

  • Performance
  • Balanced
  • Quality

Volume Profile

enumenumeration
  • Tick Volume
  • Real Volume * Note: Order Book extension for cross-platform terminal data feeds.

* Available for MetaTrader 4 via the Data Source API

Market Profile TPO

strstring

Amount or size of indexed TPO periods. First parameter for histogram and line graph object types. Second for block and letter marker structures. Set letter marker character sequence with Style Main Marker Character Letter. Format: Amount as divisor, or prefix with equal sign (=) to specify size as product in seconds, minutes, hours or days (s, m, h and d). Note: Inspect TPO period size with Panel preset Dataset Information - Price Level and TPO Period. Example: 15-minute TPO for Europe, London (07:00-16:00) set by amount
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
Example: 15-minute TPO set by size
set Market Profile TPO to =15m

Price Level

enum,uintenumeration, unsigned integer

Keyboard shortcut To increase, press Q. To decrease, press W.

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 letter and block marker structures is 6 and 4 pixels respectively. Note: Inspect actual price level size in pixels and symbol points with Panel preset Dataset Information - Price Level and TPO Period. 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: Resources include Scale Fix application to validate chart dimensions and set price scale by specified price level size in pixels and symbol points.

  • 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: Resources include Scale Fix application to validate chart dimensions and normalize price scale for price level size symbol points.

  • 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

Keyboard shortcut To toggle display of range selection line, press G. To reset to the visible range, press R.

Time/price and time based methods. Default is window visible range. Reinitialization on chart timeframe changes. Persistent with specified User Interface Drag & Drop ID. Range selection for multiple indicator instances with shared ID.

Range Window

uintunsigned integer

Keyboard shortcut To update range if current bar is visible, press R.

Window visible range in percentage. Updates range if current bar is not visible.

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

Keyboard shortcut To reinitialize relative ranges manually, press R.

Reinitialize relative range selections on end.

Segment

enum,stringenumeration, string

Keyboard shortcut To segment flexible ranges at current bar, press F.

Static, dynamic and flexible range segmentation. Time and chart timeframe period based methods. Static ranges with adjusted dataset and segment ranges respectively for division without remainder. Default minimum segment width to display is 24 pixels lower with Segment Minimum Pixels.

  • Specified Session
  • Specified Divisor Format: Divisor, or prefix with equal sign (=) to specify as product in seconds, minutes, hours or days (s, m, h and d). To enable flexible user and application program interface segmentation use the letter 'f' lowercase before the unit letter. Set by file and use the letter 'D' uppercase for dynamic segmentation specified sequential as Unix date/time (seconds from Epoch). Sequence comma separated. Values longer than 229 characters can only be set by file. File name with optional use of chart property names (ID, SYMBOL and TIMEFRAME) enclosed with per cent sign (%) to substitute to the respective variable values. Note: Resources include example indicators to dynamically segment by volume and price crosses. 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
    Example: 1 x 8-hour segment and 4 x 4-hour segments, current day
    set Range, Days to 1
    set Segment to Specified Divisor
    set Segment Divisor to =8h,4h
    Example: Default 4-hour segments with option to start a new segment at the current bar with Shortcut Controls, current day
    set Range, Days to 1
    set Segment to Specified Divisor
    set Segment Divisor to =4fh
    Example: Segments by date/time values output by intermediate indicator calculations with maximum 8-hour segments, current day, indicator managed file name
    set Range, Days to 1
    set Segment to Specified Divisor
    set Segment Divisor to VBP_%ID%_IND.DAT
    content file at path C:\Program Files\MetaTrader 5\MQL5\Files\Volume by Price Indicator\Segment Divisor\VBP_133292464797120627_IND.DAT
    (output file to content as '=8h D,1704153600,1704160500,1704182340, etc')
    Example: Code sample to start a new segment at the current bar with the GlobalVariable function. GlobalVariableSet("VBP_CTRL_SEGMENT_RANGE",true);

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

Segment Session

enum,stringenumeration, string

Chart timeframe up to Daily (D1).

  • Market Watch
  • 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

Specified sessions offset.

Segment Session Group

uintunsigned integer

Sessions concatenation.

  • Any
  • Consecutive

Segment Session Group TPO

enumenumeration

TPO periods indexing.

  • Group
  • Session

Segment Minimum Bars

uintunsigned integer

Segment exclusion.

Segment Minimum Pixels

uintunsigned integer

Segment adjustment or exclusion for Segment Divisor and Session respectively.

Input Parameters:  Highlight

Main Volume Profile

enumenumeration
  • Total
  • Total - Gradient
  • Buy/Sell
  • Buy/Sell - Ordered
  • Delta
  • Imbalance
  • Count
  • Value Area

Main Market Profile TPO

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

Column Volume

enumenumeration
  • Total - Opacity
  • Delta - Opacity
  • Imbalance
  • Imbalance - Opacity
  • High And Low Volume Nodes

Column Volume Profile

enumenumeration
  • Total
  • Buy
  • Sell
  • Buy/Sell
  • Delta
  • Value Area
  • High And Low Volume Nodes

Background Volume Profile

enumenumeration
  • Total
  • Total - Gradient
  • Delta

Input Parameters:  Highlight Main

Current

enumenumeration
  • true
  • true - Line

Median

enumenumeration
  • true - Line

Balance

enumenumeration
  • true - Line

Count

enumenumeration
  • true - Bar
  • true - Background Fill

POC

enumenumeration

Point of Control.

  • true
  • true - Line
  • true - Background Fill

VA

enumenumeration

Value Area.

  • true - Background Fill

VAH/VAL

enumenumeration

Value Area High and Low.

  • true
  • true - Line

LVN

enumenumeration

Low Volume Nodes.

  • true
  • true - Background Fill

HVN

enumenumeration

High Volume Nodes.

  • true
  • true - Background Fill

IB

enumenumeration

Initial Balance.

  • true - Bar
  • true - Line

OHLC

boolboolean

Keyboard shortcut To toggle display, press C.

Open, High, Low and Close.

  • true - Candle

VWAP

boolboolean

Volume Weighted Average Price.

  • true - Line

Custom

stringstring

Metrics line visualization. Default style with Style Main Line Size, Dash, Opacity and Color. Display text labels with Style Main Line Label. Format: Environment variable names comma separated. Aliases by type and parameter name underscore separated. Optional custom text labels colon (:) separated. For line style append name-value pairs propSize (1 to 5), propDash (0 to 1), propOpacity (0 to 255) and/or propColor (Web color name, MQL literal RGB or integer) equals sign defined semicolon (;) separated. Set direct or by file. Values longer than 229 characters can only be set by file. Note: Resources include example configuration files and Main Line application for user interface to create configuration files. 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 user specified text labels set by file.
set Custom to Line.ini
create file named Line.ini at path C:\Program Files\MetaTrader 5\MQL5\Files\Volume by Price Indicator\Line.ini
edit file to content MP_POC_MEDIAN:Label1 %PRICE%,VP_POC_MEDIAN:Label2 %PRICE%
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

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

Input Parameters:  Highlight 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 period marker replacement character.

Letter End

stringstring

Last TPO period marker replacement character.

Letter POC

stringstring

Additional marker character at row's end.

Input Parameters:  Style Main

Size

enum,uintenumeration, unsigned integer

Keyboard shortcut To switch options, press S.

  • Small
  • Medium
  • Large
  • Specified Pixels

Size Segment

enumenumeration

Histogram and line graph object segment absolute or dataset highest price level value relation. 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 price level sizes and color visualizations of initial distribution absolute size objects segments and the dataset's first relative size object segment with Evaluation Volume Total, Evaluation Volume Delta and Evaluation Market Profile TPO Total

  • Relative
  • Absolute

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: Web color name, MQL literal RGB or integer values. Comma or hyphen separated.

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

Input Parameters:  Style Main Histogram

Border

boolboolean

Border Merge

boolboolean

Bar borders overlap, 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

Dash Line

boolboolean

Opacity Area

enumenumeration

Color Area

colorcolor

Input Parameters:  Style Main Marker

Character Letter

stringstring

TPO period markers character sequence. Default is upper case alphabet. Format: ASCII and selected ANSI characters. Set direct or by file. Values longer than 229 characters can only be set by file.

Font Letter

enum,stringenumeration, string

Format: Font family name and optional weight (Thin, Regular, Bold and Heavy) comma separated.

Size Letter

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

Padding Letter

enumenumeration

Note: Negative options for strong condensed structures.

Fill Block

enumenumeration

Size Block

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

Padding Block

enumenumeration

Note: Null option to display as histogram with marker on-object visualization.

Anchor Time

enumenumeration

Adjusted for alignment to chart timeframe period.

Color

colorcolor

TPO period markers without on-object visualization color.

Input Parameters:  Style Main Line

Trace

boolboolean

Chart timeframe period data points.

Interconnect

boolboolean

Data points change interconnection.

Label

boolboolean

Text label price and name. Default environment variable names. Specify with Highlight Main Custom.

Size

enumenumeration

Dash

boolboolean

Size Label

enumenumeration

Margin

intinteger

Pixels. Format: Positive value for margin right or negative value for margin left.

Margin Label

intinteger

Pixels. Margin right or left by Align Horizontal Label Text.

Opacity

enumenumeration

Ray

boolboolean

Color

colorcolor

Color Label Text

colorcolor

Color Label Fill

colorcolor

Font Label Text

enum,stringenumeration, string

Format: Font family name and optional weight (Thin, Regular, Bold and Heavy) comma separated.

Align Vertical Label Text

enumenumeration
  • Top
  • Middle
  • Bottom

Align Horizontal Label Text

enumenumeration
  • Right
  • Left

Input Parameters:  Style Column

Text

boolboolean

Fill

boolboolean

Size

stringstring

Pixels minimum column widths. Format: Comma separated.

Padding

enumenumeration

Border Vertical

enumenumeration

Segment price range or window span left and right cell borders.

  • true
  • true - Window

Border Horizontal

boolboolean

Top and bottom cell borders.

Size Text

enumenumeration

Opacity Fill

enumenumeration

Color Text

colorcolor

Color Text (total) (positive) (negative)

colorcolor

Color Fill

colorcolor

Color Fill (total) (positive) (negative)

colorcolor

Color Border Vertical

colorcolor

Color Border Horizontal

colorcolor

Color Segment

enumenumeration

Cell text and fill High and Low Volume Nodes segment absolute or dataset highest price level value relation.

  • Relative
  • Absolute

Font Text

enum,stringenumeration, string

Format: Font family name and optional weight (Thin, Regular, Bold and Heavy) comma separated. Note: Align text characters vertically with a monospaced font, e.g., Consolas.

Align Text

stringstring

Cell texts horizontal alignments. Format: Left or right comma separated.

Number Text

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

Number Digits Text

uintunsigned integer

Number Threshold Text

boolboolean

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

Input Parameters:  Style Column Histogram

Size

enum,uintenumeration, unsigned integer

Pixels or percentage relative to the Main object size.

  • Specified Pixels
  • Specified Percentage

Size Segment

enumenumeration

Segment absolute or dataset highest price level value relation. 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 price level sizes and color visualizations of initial distribution absolute size objects segments and the dataset's first relative size object segment with Evaluation Volume Total and Evaluation Volume Delta.

  • Relative
  • Absolute

Border

boolboolean

Border Merge

boolboolean

Bar borders overlap, i.e., 1 pixel inaccuracy, for aesthetics. Effective if time period size is greater than 2 pixels.

Color Border

colorcolor

Input Parameters:  Style Column Marker

Character Index

stringstring

Format: Left, padding, right and trailing character.

Padding

intinteger

Color

colorcolor

Input Parameters:  Style Background

Opacity

enumenumeration

Shade

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

Color

colorcolor

Contour visualization background fill color.

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: Web color name, MQL literal RGB or integer values. Comma or hyphen separated.

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

Input Parameters:  Style Panel

Size

intinteger

Pixels minimum width.

Size Text

enumenumeration

Size Line

intinteger

Pixels minimum line height.

Raster Text

boolboolean

Increase text size for lines with one or two values.

Raster Line

boolboolean

Format as table column(s) for lines with one or two values. Align cell texts left and right for two values if the first value is a word. Align center if the values are numbers. Explicitly center align single value lines by using the vertical slash '|' as line break character.

Color Text

colorcolor

Color Text (total) (positive) (negative)

colorcolor

Color Fill

colorcolor

Color Fill (total) (positive) (negative)

colorcolor

Color Border

colorcolor

Font Text

enum,stringenumeration, string

Format: Font family name and optional weight (Thin, Regular, Bold and Heavy) comma separated.

Number

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

Number Digits Text

uintunsigned integer

Date/Time Text

stringstring

Format: Date year, month and day numbers (Y, M and D). Day name (d). Time hour and minute (h and m). Single or double characters to specify short or long notations.

Date/Time Offset Text

enumenumeration

Input Parameters:  Style Grid

Dash

boolboolean

Opacity

enumenumeration

Color

colorcolor

Input Parameters:  Style Separator

Dash Start

boolboolean

Dash End

boolboolean

Color Start

colorcolor

Color End

colorcolor

Input Parameters:  Style Highlight

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 Count (positive) (negative)

colorcolor

Color POC

colorcolor

Color VA (positive) (negative)

colorcolor

Color VAH

colorcolor

Color VAL

colorcolor

Color LVN

colorcolor

Color HVN (positive) (negative)

colorcolor

Size Bar Count

enumenumeration
  • Small
  • Medium
  • Large

Offset Bar Count

intinteger

Pixels.

Size Bar IB

enumenumeration
  • Small
  • Medium
  • Large

Offset Bar IB

intinteger

Pixels.

Size Candle OHLC

enumenumeration
  • Small
  • Medium
  • Large

Offset Candle OHLC

intinteger

Pixels.

Color IB (positive) (negative)

colorcolor

Color OHLC (positive) (negative)

colorcolor

Color Wick OHLC (positive) (negative)

colorcolor

Color VWAP

colorcolor

Input Parameters:  Style Highlight

Color Fill

boolboolean

Histogram bar fill instead of border.

Input Parameters:  Style Highlight Marker

Color Sequence

stringstring

TPO period markers color sequence. Default 26 unique colors repeated once. Set color groups with Evaluation Marker Sequence. Format: Web color name, MQL literal RGB or integer values. Comma or hyphen separated. Set direct or by file. Values longer than 229 characters can only be set by file. Note: Resources include Main Marker application for user interface to create configuration files.

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

Color Sequence Gradient

stringstring

TPO period markers color gradient bases. Minimum group size to display is 3 TPO periods. Set color groups with Evaluation Marker Sequence Gradient. Format: Web color name, MQL literal RGB or integer values. Comma or hyphen separated. Set direct or by file. Values longer than 229 characters can only be set by file. Note: Resources include Main Marker application for user interface to create configuration files.

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

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 Highlight Column

Color Text Current

colorcolor

Color Fill Current

colorcolor

Color Text LVN/HVN

stringstring

Price level value range colors. Format: Web color name, MQL literal RGB or integer values. Comma or hyphen separated.

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

Color Fill LVN/HVN

stringstring

Price level value range colors. Format: Web color name, MQL literal RGB or integer values. Comma or hyphen separated.

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

Input Parameters:  Style Highlight Column Histogram

Color LVN/HVN

stringstring

Price level value range colors. Format: Web color name, MQL literal RGB or integer values. Comma or hyphen separated.

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

Input Parameters:  Style Highlight Panel

Color Text

enumenumeration

Class metrics values text color. Inverted text and background fill class color parameters.

  • true
  • true - Signed

Color Fill

enumenumeration

Class metrics values text background fill color.

  • true
  • true - Signed

Input Parameters:  Evaluation

Volume Total

uintunsigned integer

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

Volume Delta

uintunsigned integer

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

Volume Buy/Sell

enumenumeration

Volume classification by price action, or order type via Data Source API.

  • Price High/Low
  • Order Buy/Sell - Indicator 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.

TPO Total

uintunsigned integer

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

Price Level

enumenumeration

Price level range inclusion.

  • High
  • Low

Count

enumenumeration
  • POC
  • Median

Count

enumenumeration
  • Include
  • Exclude

Count

intinteger

Percentage of color visualization. Set to zero for binary product with class color opacity visualization.

Count

enumenumeration
  • Any
  • Fill

Count

enumenumeration

Start of color visualization.

  • Inner
  • Outer

Count

enumenumeration

Total absolute or class value percentage product relation.

  • Relative
  • Absolute

VA

uintunsigned integer

Percentage.

VA

enumenumeration
  • POC
  • Median

VA

enumenumeration
  • Any
  • Fill

VA TPO

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

Imbalance

intinteger

Percentage.

Imbalance

enumenumeration

Total absolute or class value percentage product relation.

  • Relative
  • Absolute

LVN/HVN

enumenumeration
  • Volume
  • 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

uintunsigned integer

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

HVN

uintunsigned integer

Limit by total amount of price levels. 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 Line Graph

Smooth/Interpolate TPO

enumenumeration

Data points removal and cubic spline interpolation.

Input Parameters:  Evaluation Marker

Sequence

stringstring

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

Sequence Gradient

stringstring

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

Input Parameters:  Evaluation Column

Volume Total

intinteger

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

Volume Delta

intinteger

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

TPO Total

intinteger

Filter by price level value. Format: Positive value for 'greater than or equal' condition, negative value for 'less than or equal' condition. Example: Market Profile TPO Singles
set TPO Total to -1
set Price Level to MP_BODY
(price level TPO value is less than or equal to 1, and price level type is Market Profile TPO Body)

Price Level

enum,stringenumeration, string

Filter by price level types. Format: Environment variable names comma separated.

Imbalance

enumenumeration
  • Lateral
  • Diagonal Note: Resources include Scale Fix application to set price level size and align grid for symbol tick size.

Imbalance

enumenumeration

Highest price level range left and lowest right value inclusion for diagonal evaluation method.

  • Include
  • Exclude

LVN/HVN

stringstring

Price level value color visualization by ranging in percentages. Format: Comma separated. Example: Nodes 0-30%, 30-60% and 60-100%
set Highlight Column Volume to LVN/HVN
set Evaluation Column LVN/HVN to 30,60,100

Input Parameters:  Evaluation Column Histogram

LVN/HVN

stringstring

Price level value color visualization by ranging in percentages. Format: Comma separated. Example: Nodes 0-30%, 30-60% and 60-100%
set Highlight Column Volume Profile to LVN/HVN
set Evaluation Column Histogram LVN/HVN to 30,60,100

Input Parameters:  Chart Properties

Color Scheme

enumenumeration

Chart color scheme. Overrides settings made via the chart properties window 'Colors' tab.

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

Price Chart

enumenumeration

Hide price chart by Line Chart mode without color. Show by changing the mode or setting a color.

  • 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:  Extension Volume by Time

  • Volume by Time: Histogram and bubble graph object visualization of volume over chart timeframe period independent time periods. Indicator chart timeframe period data distributions. Indicator tick data distributions via Data Source API.

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

Highlight

enumenumeration
  • Total - Gradient Horizontal
  • Total - Gradient Vertical
  • Delta
  • Buy/Sell
  • Buy/Sell - Ordered
  • Delta - Balance

Highlight Opacity

enumenumeration

Time period value color opacity visualization.

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: Web color name, MQL literal RGB or integer values. Comma or hyphen separated.

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

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: Window extension for dedicated subwindow.

Size

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

Size Window

enumenumeration

Window absolute or dataset highest time period value relation.

  • Relative
  • Absolute

Border

boolboolean

Border Merge Histogram

boolboolean

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

Input Parameters:  User Interface

Default Key Usage
RInitialize Range
FSegment 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

On-Chart Controls

stringstring

Configuration file On-Chart Controls. To enable/disable set to true/false, or specify file name. Default 'osc.ini'.

Keyboard Shortcuts

stringstring

Configuration file Keyboard Shortcuts. To enable/disable set to true/false, or specify file name. Default 'hotkeys.ini'.

Drag & Drop ID

uintunsigned integer

Range selection sharing among indicator instances and persistence on chart timeframe changes.

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:  Extension Tick Volumes add-on

  • Tick Volumes: MetaTrader 4 tick data connector. Real-time bid price tick and supplemental historical bar data. MetaTrader 5 tick data connector. Real-time and historical bid price tick data. Volume classification by price action. Indicator data utilization via Data Source API. Copy application file to '<Terminal_Directory>\MQL4|MQL5\Experts\Volume by Price Indicator' and refresh the 'Navigator' window.
    Attach extension and indicator instances to a chart:
    Menubar > Insert > Experts > Volume by Price Indicator > Tick Volumes
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator
    set indicator Dataset Feed to Indicator API
    set indicator Dataset Volume Profile to Tick Volume
    if using separate indicator and extension instance terminals,
    set indicator Data Source Common Folder and extension Output Common Folder to true
    if indicator and extension chart symbol Market Watch names do not match,
    set extension Output name to match indicator chart symbol Market Watch name
    if using separate cross-platform indicator and extension instance terminals,
    set indicator Data Source Format to match extension Output Format
    Download InstallationConfiguration

Feed

enumenumeration
  • History Bars + Real-time Ticks
  • History Ticks + Real-time Ticks * Note: Extension output is cross-platform terminal compatible.

* Available for MetaTrader 5

Range

enum,uint,date/timeenumeration, unsigned integer, date/time
  • Specified Date/Time
  • Specified Days
  • Current Day
  • Current Week
  • Current Month

Output

strstring

Chart symbol Market Watch name for API connection

Output Format

enumenumeration

Data Source file format.

Output Common Folder

boolboolean

Common Folder for shared use with all terminals installed on the operating system instead of the terminal directory location.

Output Time Offset

intinteger

Seconds.

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

  • Order Book - Time and Sales (T&S): MetaTrader 5 trade operation tick data connector. MetaTrader 4 cross-platform terminal compatible. Real-time and historical trade operation tick data. Volume classification by order type. Indicator data utilization via Data Source API. Copy application file to '<Terminal_Directory>\MQL5\Experts\Volume by Price Indicator' and refresh the 'Navigator' window.
    Attach extension and indicator instances to a chart:
    Menubar > Insert > Experts > Volume by Price Indicator > Order Book
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator
    set indicator Dataset Feed to Indicator API
    set indicator Dataset Volume Profile to Real Volume
    set indicator Evaluation Volume Buy/Sell to Indicator API
    if using separate indicator and extension instance terminals,
    set indicator Data Source Common Folder and extension Output Common Folder to true
    if indicator and extension chart symbol Market Watch names do not match,
    set extension Output name to match indicator chart symbol Market Watch name
    if using separate cross-platform indicator and extension instance terminals,
    set indicator Data Source Format to match extension Output Format
    Download InstallationConfiguration

Feed

enumenumeration
  • History Ticks + Real-time Ticks * Note: Extension output is cross-platform terminal compatible.

* Available for MetaTrader 5

Range

enum,uint,date/timeenumeration, unsigned integer, date/time
  • Specified Date/Time
  • Specified Days
  • Current Day
  • Current Week
  • Current Month

Output

strstring

Chart symbol Market Watch name for API connection.

Output Format

enumenumeration

Data Source file format.

Output Common Folder

boolboolean

Common Folder for shared use with all terminals installed on the operating system instead of the terminal directory location.

Output Time Offset

intinteger

Seconds.

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

  • Order Book - Depth Of Market (DOM): MetaTrader 5 trade operation tick data connector. MetaTrader 4 cross-platform terminal compatible. Real-time pending order data synchrone with last order price update. Object Column visualization via environment variable names. Indicator data utilization via Data Source API. Copy application file to '<Terminal_Directory>\MQL5\Experts\Volume by Price Indicator' and refresh the 'Navigator' window.
    Attach extension and indicator instances to a chart:
    Menubar > Insert > Experts > Volume by Price Indicator > Order Book
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator
    set indicator Object Column with VOLUME_PENDING value(s)
    if indicator and extension chart symbol Market Watch names do not match,
    set extension Output name to match indicator chart symbol Market Watch name
    Download InstallationConfiguration

Feed

enumenumeration
  • Real-time Ticks * Note: Extension output is cross-platform terminal compatible.

* Available for MetaTrader 5

Output

strstring

Chart symbol Market Watch name for API connection.

Output Time Offset

intinteger

Seconds.

Input Parameters:  Extension Traces add-on

  • Traces: Line visualization and data window display (including data buffers) of developing price metrics. Select metrics via the extension properties window 'Inputs' tab, set line color and style via the 'Colors' tab. Data window configuration file 'trace.ini' to set custom labels. Reinitialization on indicator dataset range changes or by user specified ID. Indicator data utilization via Data Environment API. Copy application file to '<Terminal_Directory>\MQL4|MQL5\Indicators\Volume by Price Indicator' and refresh the 'Navigator' window.
    Attach indicator and extension instances to a chart:
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator > Traces
    set indicator Data Environment to true,
    or if using multiple indicator instances on the same terminal,
    set distinct indicator and extension Data Environment names
    Download InstallationConfiguration

ID

strstring

Extension instance chart timeframe period built time series data sharing among extension instances and persistence on indicator dataset range changes. To load from other extension instances additionally match properties window 'Inputs' tab settings, i.e., metrics selection including order.

Data Environment

strstring

Data Environment name for API connection.

Metric 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_BODY_HIGH
  • MP_BODY_LOW
  • MP_POC_MEDIAN
  • MP_POC_HIGH
  • MP_POC_LOW
  • MP_VA_HIGH
  • MP_VA_LOW
  • IB_HIGH
  • IB_LOW
  • VWAP

Input Parameters:  Extension Events add-on

  • Events: Data Environment events. Global Variables output. Evaluation conditions with developing metrics. Select metrics via the extension properties window 'Inputs' tab. Indicator data utilization via Data Environment API. Copy application file to '<Terminal_Directory>\MQL4|MQL5\Indicators\Volume by Price Indicator' and refresh the 'Navigator' window.
    Attach indicator and extension instances to a chart:
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator > Events
    set indicator Data Environment to true,
    or if using multiple indicator instances on the same terminal,
    set distinct indicator and extension Data Environment names
    Download InstallationConfiguration

Name

strstring

Data Environment event data. Global Variables output. Global Variable names are prefixed with 'VBP_EVENT', and if specified environment name, uppercase underscore separated. Segment index, starting at zero and omitted for first, is appended enclosed with brackets. Variable output is the conditions evaluation result a boolean value (0 or 1). Variable name appended with 'T", underscore separated, is time value in seconds elapsed since the event was last emitted, or empty value (-1) if not emitted. Note: For a snapshot of variables available to the terminal use command 'Global Variables' in the Tools menu.

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

Iteration

strstring

Format: Bars, minutes, seconds (b, m and s) or environment variable event name. T for next distribution tick.

Condition 1 to 3 Data Environment

strstring

Data Environment name for API connection.

Condition 1 to 3 (time)

intinteger

Seconds.

Condition 1 to 3 (left value) (right value)

enum,floatenumeration, float
  • OPEN
  • HIGH
  • LOW
  • CLOSE
  • VOLUME_TOTAL
  • VOLUME_DELTA
  • VOLUME_DELTA_N
  • VOLUME_DELTA_PCT
  • VOLUME_BUY
  • VOLUME_SELL
  • VOLUME_COUNT
  • VOLUME_COUNT_N
  • VOLUME_COUNT_PCT
  • VOLUME_COUNT_BUY
  • VOLUME_COUNT_SELL
  • CVOLUME_TOTAL
  • CVOLUME_DELTA
  • CVOLUME_DELTA_N
  • CVOLUME_BUY
  • CVOLUME_SELL
  • BVOLUME_TOTAL
  • BVOLUME_DELTA
  • BVOLUME_DELTA_N
  • BVOLUME_DELTA_AVG
  • BVOLUME_BUY
  • BVOLUME_SELL
  • VP_RANGE
  • VP_MEDIAN
  • VP_BALANCE
  • VP_POC_MEDIAN
  • VP_POC_LOW
  • VP_POC_HIGH
  • VP_VA_LOW
  • VP_VA_HIGH
  • VP_VA_RANGE
  • MP_RANGE
  • MP_MEDIAN
  • MP_BALANCE
  • MP_BODY_LOW
  • MP_BODY_HIGH
  • MP_POC_MEDIAN
  • MP_POC_LOW
  • MP_POC_HIGH
  • MP_VA_LOW
  • MP_VA_HIGH
  • MP_VA_RANGE
  • TPO_TOTAL
  • TPO_COUNT
  • TPO_COUNT_N
  • TPO_COUNT_PCT
  • TPO_COUNT_BUY
  • TPO_COUNT_SELL
  • IB_LOW
  • IB_HIGH
  • IB_RANGE
  • VWAP
  • Specified Value Format: Number or environment variable name. To shift extension instance chart timeframe period built time series data append name with index number enclosed with brackets.

Condition 1 to 3 (left math operation) (right math operation)

strstring

Format: Single arithmetic operator (+, -, * and /) and right operand value.

Condition 1 to 3 (comparison operator)

enumenumeration
  • Equal to
  • Not equal to
  • Less than
  • Greater than

Condition 1-2, 2-3 (logical operator)

enumenumeration
  • And
  • Or

Input Parameters:  Extension Notifications add-on

  • Notifications: Alert windows and sounds. Chart pictures, price labels and arrows. Log, email and push messages. Evaluation conditions with developing metrics. Select metrics via the extension properties window 'Inputs' tab. Indicator data utilization via Data Environment API. Copy application file to '<Terminal_Directory>\MQL4|MQL5\Indicators\Volume by Price Indicator' and refresh the 'Navigator' window.
    Attach indicator and extension instances to a chart:
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator > Notifications
    set indicator Data Environment to true,
    or if using multiple indicator instances on the same terminal,
    set distinct indicator and extension Data Environment names
    for push notifications,
    set MetaQuotes ID via the terminal options window (keyboard shortcut Ctrl-O) 'Notifications' tab
    for email notifications,
    set SMTP and email address via the terminal options window (keyboard shortcut Ctrl-O) 'Email' tab
    for pictures attach Pictures extension instance in Service mode:
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator > Pictures
    Download InstallationConfiguration

Name

strstring

Iteration

strstring

Format: Bars, minutes, seconds (b, m and s) or environment variable event name. T for next distribution tick.

Condition 1 to 3 Message

strstring

Condition 1 to 3 Data Environment

strstring

Data Environment name for API connection.

Condition 1 to 3 (time)

intinteger

Seconds.

Condition 1 to 3 (left value) (right value)

enum,floatenumeration, float
  • OPEN
  • HIGH
  • LOW
  • CLOSE
  • VOLUME_TOTAL
  • VOLUME_DELTA
  • VOLUME_DELTA_N
  • VOLUME_DELTA_PCT
  • VOLUME_BUY
  • VOLUME_SELL
  • VOLUME_COUNT
  • VOLUME_COUNT_N
  • VOLUME_COUNT_PCT
  • VOLUME_COUNT_BUY
  • VOLUME_COUNT_SELL
  • CVOLUME_TOTAL
  • CVOLUME_DELTA
  • CVOLUME_DELTA_N
  • CVOLUME_BUY
  • CVOLUME_SELL
  • BVOLUME_TOTAL
  • BVOLUME_DELTA
  • BVOLUME_DELTA_N
  • BVOLUME_DELTA_AVG
  • BVOLUME_BUY
  • BVOLUME_SELL
  • VP_RANGE
  • VP_MEDIAN
  • VP_BALANCE
  • VP_POC_MEDIAN
  • VP_POC_LOW
  • VP_POC_HIGH
  • VP_VA_LOW
  • VP_VA_HIGH
  • VP_VA_RANGE
  • MP_RANGE
  • MP_MEDIAN
  • MP_BALANCE
  • MP_BODY_LOW
  • MP_BODY_HIGH
  • MP_POC_MEDIAN
  • MP_POC_LOW
  • MP_POC_HIGH
  • MP_VA_LOW
  • MP_VA_HIGH
  • MP_VA_RANGE
  • TPO_TOTAL
  • TPO_COUNT
  • TPO_COUNT_N
  • TPO_COUNT_PCT
  • TPO_COUNT_BUY
  • TPO_COUNT_SELL
  • IB_LOW
  • IB_HIGH
  • IB_RANGE
  • VWAP
  • Specified Value Format: Number or environment variable name. To shift extension instance chart timeframe period built time series data append name with index number enclosed with brackets.

Condition 1 to 3 (left math operation) (right math operation)

strstring

Format: Single arithmetic operator (+, -, * and /) and right operand value.

Condition 1 to 3 (comparison operator)

enumenumeration
  • Equal to
  • Not equal to
  • Less than
  • Greater than

Condition 1-2, 2-3 (logical operator)

enumenumeration
  • And
  • Or

Message Alert

boolboolean

Message Push

boolboolean

Set MetaQuotes ID via the terminal options window (keyboard shortcut Ctrl-O) 'Notifications' tab.

References
"Push Notifications - MetaTrader 5 iPhone/iPad Help" https://www.metatrader5.com/en/mobile-trading/android/help/push
"Push Notifications - MetaTrader 5 Android Help" https://www.metatrader5.com/en/mobile-trading/iphone/help/push
"Notifications - MetaTrader 4 Help" https://www.metatrader4.com/en/trading-platform/help/setup/settings_notifications

Message Email

boolboolean

Set SMTP and email address via the terminal options window (keyboard shortcut Ctrl-O) 'Email' tab.

References
"Platform Settings - MetaTrader 5 Help" https://www.metatrader5.com/en/terminal/help/startworking/settings#mail
"Email - MetaTrader 4 Help" https://www.metatrader4.com/en/trading-platform/help/setup/setup_email

Message Log

boolboolean

Note: For the log viewer use command 'Terminal/Toolbox' in the View menu and select the 'Experts' tab.

Sound Alert

strstring

To enable/disable set to true/false, or specify a file name. Default 'alert.wav'.

Chart Picture

boolboolean

Attach Pictures extension instance in Service mode. Specify file name via the Pictures extension properties window 'Inputs' tab.

Chart Object

boolboolean

Style Chart Object Type

enumenumeration
  • Arrow Up
  • Arrow Down
  • Check Sign
  • Stop Sign
  • Price Label Left
  • Price Label Right

Style Chart Object Price

enumenumeration
  • Open
  • High
  • Low
  • Close
  • Value Left
  • Value Right

Style Chart Object Size

intinteger

Style Chart Object Color

colorcolor

Input Parameters:  Extension Reports add-on

  • Reports: Data export of developing and historical metrics in HTML, CSV, JSON and SQL formats. Select metrics via environment variable names specified in 'report.html', 'report.csv', 'report.json' and 'report.sql' configuration files. Indicator data utilization via Data Environment API. Copy application file to '<Terminal_Directory>\MQL4|MQL5\Indicators\Volume by Price Indicator' and refresh the 'Navigator' window.
    Attach indicator and extension instances to a chart:
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator
    Menubar > Insert > Indicators > Custom > Volume by Price Indicator > Reports
    set indicator Data Environment to true,
    or if using multiple indicator instances on the same terminal,
    set distinct indicator and extension Data Environment names
    Download InstallationConfiguration

Name

strstring

Data Environment

strstring

Data Environment name for API connection.

Segment

strstring

Segment number, time series indexing, starting at one for the last segment. If historical unloads after output. Format: Comma separated or by hyphen (-) to specify as range.

Output

strstring

File name.

Output Format

enumenumeration
  • HTML + JavaScript Interval Reload
  • HTML
  • CSV
  • JSON
  • SQL

Output Rate

uintunsigned integer

Seconds or zero for milliseconds distribution tick rate. If divisible by 60 output is timed at the start of each minute and reported distribution tick time is rounded to the minute.

Output Template

strstring

HTML, CSV, JSON or SQL template file name. Default 'report.html', 'report.csv', 'report.json' or 'report.sql'. File 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'.

Input Parameters:  Application Program Interface

Data Source

stringstring

Dataset Feed tick-by-tick or bar source data. File input. Default connection with indicator extensions by chart symbol Market Watch name. Timeframe period and trade operation based data tick 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 Buy/Sell. Minimal file size format option Data Source Format 1. Real-time data ticks processed with actual milliseconds precision by fraction of stream time. Time values formatting with seconds precision. Data Source Common Folder option to share data among terminals. Built time series data stored in-memory. Reinitialization on chart timeframe changes.

Object Column visualization Depth Of Market source data file is loaded from the indicator Data Source subfolder with Common Folder location, indicator managed file name is chart symbol Market Watch name prefixed with 'VBP' and appended with 'DOM.DAT' underscore separated. Indicator built time series data stored in-memory by segment range end times. Reinitialization on indicator chart timeframe changes. File Format: Dataset Feed Data Source Format 1 comma delimited
<UNIXDATETIME>,<CLOSE>,<VOL>,<VOLBUY>,<VOLSELL>
File Format: Dataset Feed Data Source Format 4 comma delimited
<DATE>,<TIME>,<OPEN>,<HIGH>,<LOW>,<CLOSE>,<TICKVOL>,<VOL>,<VOLBUY>,<VOLSELL>
File Format: Dataset Feed Data Source Format 5 tab delimited
<DATE> <TIME> <OPEN> <HIGH> <LOW> <CLOSE> <TICKVOL> <VOL> <SPREAD> <VOLBUY> <VOLSELL>
File Format: Dataset Feed - Depth Of Market comma delimited, first line timestamp
<UNIXDATETIME>
<VOLCLASS> (0 and 1 for Buy and Sell),<PRICE>,<VOL>
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, and real-time Depth Of Market (DOM) pending order data. Tick Volumes extension to feed real-time and historical bid price tick data with volume classification by price action. Example: Dataset Feed user file 'Feed.csv'
set Data Source to Feed.csv
content file at path C:\Program Files\MetaTrader 5\MQL5\Files\Volume by Price Indicator\Data Source\Feed.csv
Example: Dataset Feed user file 'Feed.dat' with Common Folder location for shared use with other terminals
set Data Source to Feed.dat
set Data Source Common Folder to true
content file at path C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\Common\Files\Volume by Price Indicator\Data Source\Feed.dat
Example: Dataset Feed - Depth Of Market indicator managed file name
content file at path C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\Common\Files\Volume by Price Indicator\Data Source\VBP_SYMBOL_DOM.DAT
Example: Dataset Feed 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   0
2022.09.14  18:52   3950.75 3950.75 3950.50 3950.50   1   1   25   0   1
2022.09.14  18:52   3950.75 3950.75 3950.50 3950.75   2   8   25   6   2
2022.09.14  18:52   3950.75 3950.75 3950.50 3950.75   2   3   25   1   2
Example: Dataset Feed 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,0
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.50,1,1,0,1
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,6,6,0
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.50,1,2,0,2
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,1,1,0
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.70,1,2,0,2

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 with 'VBP', and if specified environment name, uppercase underscore separated. Segment index, starting at zero and omitted for first, is appended enclosed with brackets. Environment variable names can be specified as values of input parameters with additional properties and options. Note: For a snapshot of variables available to the terminal use command 'Global Variables' in the Tools menu. Note: Traces extension for price metric data iCustom Buffers output. Events extension to create event data Global Variables output by evaluation of metrics and/or other events. Reports extension for export of volume, TPO and price metrics data to files in HTML, CSV, JSON and SQL formats. Note: Resources include code samples to access metrics with the GlobalVariable, iCustom and CopyBuffer functions. Example: Environment 'Env1' with variable filter
set Data Environment to Env1?filter=MP,VP
(metrics data of segments accessible as 'VBP_ENV1_MP_POC_MEDIAN', 'VBP_ENV1[1]_MP_POC_MEDIAN', etc)

Variable Name Usage Global Variable Main Custom Column Evaluation Column Panel
Time
SESSION x
TIME_START x x
TIME_END x x
Time - Last accumulated real-time tick data
CTIME x x
Price
PRICE_OPEN x x
PRICE_HIGH x x
PRICE_LOW x x
PRICE_CLOSE x x
Price - Last accumulated real-time tick data
CPRICE x x
CPRICE_CHG x
CPRICE_CHG_S Class colored circle symbol, first entry of line x
Volume Profile
VOLUME_TOTAL x x x
VOLUME_BUY x x x
VOLUME_SELL x x x
VOLUME_DELTA Class signed number x x x
VOLUME_DELTA_N x x x
VOLUME_DELTA_PCT x x
VOLUME_COUNT Class signed number x x
VOLUME_COUNT_N x x
VOLUME_COUNT_PCT x x
VOLUME_COUNT_BUY x x
VOLUME_COUNT_SELL 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
PRICE_SET Input parameter reference x x
PRICE_MEDIAN x
PRICE_HIGH x
PRICE_LOW x
HVN x
LVN x
Volume Profile - Last accumulated real-time tick data
CVOLUME_TOTAL x x
CVOLUME_BUY x x
CVOLUME_SELL x x
CVOLUME_DELTA Class signed number x x
CVOLUME_DELTA_N x x
CVOLUME_DELTA_S Class colored circle symbol, first entry of line x
Volume Profile - Last real-time bar data
BVOLUME_TOTAL x x
BVOLUME_BUY x x
BVOLUME_SELL x x
BVOLUME_DELTA Class signed number x x
BVOLUME_DELTA_N x x
BVOLUME_DELTA_AVG x x
Market Profile TPO
TPO_SET Input parameter reference x x
TPO_TIME x x
TPO_TIME_L Short formatted literal x
TPO_TIME_LL Long formatted literal x
TPO_TOTAL x x x
TPO_COUNT Class signed number x x
TPO_COUNT_N x x
TPO_COUNT_PCT x x
TPO_COUNT_BUY x x
TPO_COUNT_SELL x 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_BODY x
MP_BODY_LOW x x
MP_BODY_HIGH x x
MP_TAIL 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
PRICE_SET Input parameter reference x x
PRICE_MEDIAN x
PRICE_HIGH x
PRICE_LOW 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_BUY x
VOLUME_PENDING_SELL x

* Available via the Data Source API

Example: Code sample to access volume, TPO and price metrics with the GlobalVariable function. long metric1 = GlobalVariableGet("VBP_VOLUME_TOTAL");
int metric2 = GlobalVariableGet("VBP_TPO_TOTAL");
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

Version: 9.350  Updated: 2024.02.14  Published: 2017.11.24