Main
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
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:
To open the properties window of an instance already attached:
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 Histogram Size Segment = 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 Highlight 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 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 extensions via the Data Source API, e.g., attach a extension instance to a chart and set indicator parameter Dataset Feed = History Ticks + Real-time Ticks - 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 depends on MetaTrader 5 terminal account brokerage provisioning. Alternatively, feed user specified third party tick-by-tick or bar data files, e.g., stream of programmatically managed real-time tick-by-tick data Data Source = Feed.dat or user download of historical data Data Source = Feed.csv. Volume classification defaults to order type with fallback to price action Evaluation Volume Buy/Sell = Order Buy/Sell - Indicator API.
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.
Target real-time data processing interval, i.e., rate limit, for default data input with Dataset Real-time Ticks Accumulation, for the Data Source API with indicator and connector parameters, e.g., Data Source Input Rate = 50 Milliseconds and Extension Tick Volumes Output Rate = 50 Milliseconds. For compositions with multiple indicator instances use an output rate of the input rate times the number of instances. Indicator instances do not process concurrently and only the first instance attached to the chart, which is last to process, controls frame display rate. Limit system resource usage further with Display Frame Rate.
Default configuration with adaptive data timeframe period selection Dataset History Bars Adaptive 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 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 programmatic access to dimensions and metrics with data output as Global Variables. Extensions included to stream volume, TPO and price metrics 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, and/or further distinction per metric, 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 for MQL4 and MQL5 programming languages, and an event-model evaluation based 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 on the operating system. 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.
Keyboard shortcut To switch types, press T.
Minimum price level size for text to display is 8 pixels.
Example: Volume Footprint with Volume Profile histogram per metric
set Column to Volume Profile - Histogram;Volume Buy;Volume Profile - Histogram;Volume Sell
set Highlight Column Volume Profile #1 to Buy
set Highlight Column Volume Profile #2 to Sell
Keyboard shortcut To switch types, press L.
Minimum price level size to display is 3 pixels.
Keyboard shortcut To toggle display, press X.
Chart date/time scale and object width based methods. Object width positioning hides the native price chart and date/time scale, to display set explicitly with Chart Properties. Composition segments of multiple indicator instances interleaved by number from left to right by the order of attaching to the chart. Format: True for date/time anchors. False or width in pixels for object width based anchors. Specified width is added to the object width. Use the letter 'D' for dynamic sizes of marker structures instead of the object width set with Style Main Size.
Pixels.
Pixels.
Pixels. First and second histogram and/or marker structure object. Format: First and second comma separated.
Pixels. Top and left. Format: Top and left comma separated.
Keyboard shortcut To toggle options, press B.
Histogram and/or marker structure objects.
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.
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.
Historical chart timeframe period data distributions. Fallback to higher timeframes if unavailable. Default maximum total amount of lower than chart timeframe period bars is 5000000. Adjust with data_ltf_maxbars in configuration file 'data.ini'. Note: Inspect historical chart timeframe period data coverage with Panel preset Dataset Information - Feed Statistics. Note: Control the terminal's historical data limit per chart timeframe period 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.
* Available for
Historical data timeframe period limit by maximum bars and coverage.
Historical data timeframe period limit by indicator data processing time.
* Available for via the Data Source API
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. Minimum TPO period size is 1 minute. Maximum amount of unique indices is 1000000 for histogram and line graph object types, and 65025 for block and letter marker structures.
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 9-hour session 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
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.
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.
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.
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.
Date/time picker.
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
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
Adjusted for chart timeframe period.
Format: Start and optional end colon (:) separated. Negate for future range end.
Example: Previous and upcoming 4 hours.
set Range Hours to 4:-4
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
Keyboard shortcut To reinitialize relative ranges manually, press R.
Reinitialize relative range selections on end.
Keyboard shortcut To segment flexible ranges at current bar, press F.
Static, dynamic and flexible range segmentation. Time and chart timeframe period bar based methods. Static ranges with adjusted dataset and segment ranges respectively for division without remainder. Default minimum segment width to display with chart date/time scale based object positioning is 24 pixels lower with Segment Minimum Pixels. Session chart timeframe up to Daily (D1).
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
Session start and end time. Adjusted for chart timeframe period rounded upward. Session quotes specification from Market Watch might not match actual chart symbol data. Note: Adjust server time zone and date/time format for Panel display with Style Panel Date/Time Text.
Specified session time offset.
Note: For 5-day trading week Overnight Session (ON) to display 7 segments, i.e., for Monday and Friday two of which the first (Sun-Mon) and second (Fri-Sat) of each respectively is partial, set Sunday-Saturday.
Sessions concatenation.
TPO periods indexing.
Segment exclusion.
Segment adjustment or exclusion for Segment Divisor and Session respectively.
Point of Control.
Value Area.
Value Area High and Low.
Low Volume Nodes.
High Volume Nodes.
Initial Balance.
Keyboard shortcut To toggle display, press C.
Open, High, Low and Close.
Volume Weighted Average Price.
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
Real-time tick data traces stored in-memory. Reinitialization on dataset range, chart timeframe and price level grid changes. Historical data traces with precision by available chart timeframe period data selected with Dataset History Bars.
Real-time tick data traces stored in-memory. Reinitialization on dataset range, chart timeframe and price level grid changes. Historical data traces with precision by available chart timeframe period data selected with Dataset History Bars.
First TPO period marker replacement character.
Last TPO period marker replacement character. Real-time tick data traces stored in-memory. Reinitialization on dataset range, chart timeframe and price level grid changes. Historical data traces with precision by available chart timeframe period data selected with Dataset History Bars.
Additional marker character at row's end.
Keyboard shortcut To switch options, press S.
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
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
Bar borders overlap, i.e., 1 pixel inaccuracy, for aesthetics. Effective if price level size is greater than 2 pixels.
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.
Format: Font family name and optional weight (Thin, Regular, Bold and Heavy) comma separated.
Note: Negative value for condensed structures.
Note: Null option to display as histogram with marker structure on-object visualization.
Adjusted for alignment to chart timeframe period.
TPO period markers without on-object visualization color.
Chart timeframe period data points.
Data points change interconnection.
Text label price and name. Default environment variable names. Specify with Highlight Main Custom.
Pixels. Format: Positive value for margin right or negative value for margin left.
Format: Font family name and optional weight (Thin, Regular, Bold and Heavy) comma separated.
Note: False option to display as bars with on-object visualization.
Pixels minimum column widths. For column histogram and/or marker structure objects width up to which is padded. Format: Comma separated.
Left and right cell padding.
Segment price range or window span left and right cell borders.
Top and bottom cell borders.
Cell text and fill High and Low Volume Nodes segment absolute or dataset highest price level value relation.
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.
Cell texts horizontal alignments. Format: Left, right or center comma separated.
Format for scale resulting with at least one near whole number.
Automatic by Main object price level value relation. Specified in pixels or as percentage relative to the Main object size.
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.
Bar borders overlap, i.e., 1 pixel inaccuracy, for aesthetics. Effective if time period size is greater than 2 pixels.
Format: Left, padding, right and trailing character.
Contour visualization background fill color.
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
Pixels minimum width.
Pixels minimum line height.
Increase text size for lines with one or two values.
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.
Format: Font family name and optional weight (Thin, Regular, Bold and Heavy) comma separated.
Date/time format for CTIME, TIME_START and TIME_END variables. For CTIME if minutes are specified in the format seconds and millisecond fractions* are appended. 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.
* Available for
Server time offset.
Pixels.
Pixels.
Pixels.
Histogram bar fill instead of border.
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
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
Highlight Main Marker Bracket, Underline, Box Border and Box element line size.
Display Dot outside of Box element.
Format: True or false per column comma separated.
Format: True or false per column comma separated.
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
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
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
Highest price level value. Effective if greater than dataset highest price level value.
Highest price level value. Effective if greater than dataset highest price level value.
Volume classification by price action, or order type via Data Source API.
Highest price level value. Effective if greater than dataset highest price level value.
Price level range inclusion.
Percentage.
Minimum price level value. Format: Higher and optional lower price level class value prepend colon (:) separated.
Percentage of color visualization. Set to zero for binary product with class color opacity visualization.
Start of color visualization.
Percentage.
Separate evaluation ranges based on Value Area.
Maximum percentage of highest price level value.
Minimum percentage of highest price level value.
Limit by total amount of price levels. Up to three separate evaluation ranges with LVN/HVN VA.
Limit by total amount of price levels. Up to three separate evaluation ranges with LVN/HVN VA.
Minutes. Precision by available chart timeframe period data selected with Dataset History Bars.
Open at first TPO period.
Trace method price.
Data points removal and cubic spline interpolation.
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
TPO periods grouping for color visualization with gradual progression between group colors by gradient shades. Format: Comma separated.
Filter by price level value. Format: Positive value for 'greater than or equal' condition, or negative value for 'less than or equal' condition.
Filter by price level value. Format: Positive value for 'greater than or equal' condition, or negative value for 'less than or equal' condition.
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)
Filter by price level types. Format: Environment variable names comma separated.
Price level lateral, or diagonal evaluation of Volume Buy against Sell of the level above it. Volume classification by Evaluation Volume Buy/Sell.
Highest and lowest price level range respective class value inclusion for diagonal evaluation method.
Price level value color visualization by ranging in percentages.
Format: Comma separated.
Example: High and Low Volume Nodes ranges 0-30%, 30-60% and 60-100%
set Highlight Column Volume to LVN/HVN
set Evaluation Column LVN/HVN to 30,60,100
Price level value color visualization by ranging in percentages.
Format: Comma separated.
Example: High and Low Volume Nodes ranges 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
Total absolute or class value percentage product relation for display of variable VOLUME_DELTA_PCT.
Total absolute or class value percentage product relation for display of variables VOLUME_COUNT_PCT and TPO_COUNT_PCT.
To enable/disable set to true/false, or specify configuration file name. Default 'osc.ini'.
To enable/disable set to true/false, or specify configuration file name. Default 'hotkeys.ini'.
Default Key | Usage |
R | Initialize Range |
F | Segment Range |
Q | Increase Price Level |
W | Decrease Price Level |
T | Switch Type Main |
L | Switch Type Panel |
B | Toggle Layer Main |
S | Switch Style Size Main |
H | Toggle Display All |
X | Toggle Display Separator |
C | Toggle Display OHLC |
G | Toggle Display Range Selection Line |
Range selection sharing among indicator instances and persistence on chart timeframe changes.
Anchor panel to top-left corner of range selection with Range Drag & Drop Time/Price.
Chart color scheme. Overrides settings made via the chart properties window 'Colors' tab.
Hide price chart by Line Chart mode without color. Show by changing the mode or setting a color.
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
Graphical canvases anchors. Window coordinates and chart time/price methods. Window Chart effective for less than or equal to symbol point per pixel ratioed visualizations. Note: Resources include Scale Fix application to set exact symbol point per pixel ratio by indicator price level size.
Seconds. Frame rate limit.
Offset for visualizations with division with remainder. Manually set for aesthetics, i.e., 1 pixel up or down. Format: Offset. Optionally separate for Main Marker and Column object comma separated.
Layer all objects to background. Overrides settings made with Object Position parameters.
Price normalization method for inexact price scale and indicator price level setups, i.e., chart price scale and indicator price level setting combination produces price level grid values with digits more than of symbol. Note: Inspect actual price level size in pixels and symbol points with Panel preset Dataset Information - Price Level and TPO Period. Note: Resources include Scale Fix application for exact price scale and indicator price level setups.
Price gap close method for between ticks or lower than chart timeframe period bars per chart timeframe period bar. High/Low and Close with forward attribution. Open backward.
Price gap close method for between chart timeframe period bars. High/Low and Close with forward attribution. Open backward.
Price gap close between segments, i.e., Dataset to close gaps between segments. Dataset effective for methods with forward attributed distribution.
Bars. Maximum time gap between bars to close price gaps between chart timeframe period bars. Set to -1 for no limit.
Automatic color contrast. Foreground and background color parameter values set to Gray are automatically substituted to the chart's respective colors.
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 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.
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
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
File Format: Dataset Feed Data Source Format 1 comma delimited
<UNIXTIMESTAMP>,<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 Unix timestamp
<UNIXTIMESTAMP>
<VOLCLASS> (0 and 1 for Buy and Sell),<PRICE>,<VOL>
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
Milliseconds file read rate.
Common Folder for shared use with all terminals installed on the operating system instead of the terminal directory location.
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, and/or further distinction per metric.
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");
Selectively control indicator instances operating on the terminal by environment name or chart ID. Prefix environment name or append chart ID, uppercase underscore separated.
Variable Name | Usage |
VBP_CTRL_INIT | Initialize Indicator |
VBP_CTRL_SEGMENT_RANGE * | Segment Range |
* Available with flexible range segmentation
Example: Code sample to control indicator instance with environment name 'Env1' with the GlobalVariable function GlobalVariableSet(StringFormat("VBP_%s_CTRL_SEGMENT_RANGE","ENV1"),true); Example: Code sample to control indicator instance of the current chart with the GlobalVariable function GlobalVariableSet(StringFormat("VBP_CTRL_INIT_%s",(string)ChartID()),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
"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
* Available for
Milliseconds file write rate.
Common Folder for shared use with all terminals installed on the operating system instead of the terminal directory location.
Seconds.
* Available for
Milliseconds file write rate.
Common Folder for shared use with all terminals installed on the operating system instead of the terminal directory location.
Seconds.
* Available for
Seconds.
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 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
Format: Bars, minutes, seconds (b, m and s) or environment variable event name. T for next distribution tick.
Seconds.
Format: Single arithmetic operator (+, -, * and /) and right operand value.
Format: Bars, minutes, seconds (b, m and s) or environment variable event name. T for next distribution tick.
Seconds.
Format: Single arithmetic operator (+, -, * and /) and right operand value.
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
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
Note: For the log viewer use command 'Terminal/Toolbox' in the View menu and select the 'Experts' tab.
To enable/disable set to true/false, or specify a file name. Default 'alert.wav'.
Attach Pictures extension instance in Service mode. Specify file name via the Pictures extension properties window 'Inputs' tab.
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.
File name.
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.
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'.
Time period value color opacity visualization.
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 to bottom of range selection with Range Drag & Drop Time/Price.
Window absolute or dataset highest time period value relation.
Histogram bar borders overlap, i.e., 1 pixel inaccuracy, for aesthetics. Effective if time period size is greater than 2 pixels.