Main
- 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 object types, e.g., set parameter Object Main = Market Profile TPO - Marker Letter, Object Column = Volume Profile Total and Object Column Mini = Volume Profile - Histogram, and positions, e.g., Anchor Main = Segment - Start, Anchor Column = Segment - Start Left and Anchor Column Mini = Right.
For the dataset, set range, segmentation, price level and TPO parameters, e.g., Dataset Range = 10 Days, Dataset Segment = Session Chart Symbol, Dataset Price Level = 100 Symbol Points and Dataset Market Profile TPO = 48.
For further indications, select by on-object visualization, e.g., Indication Main Market Profile TPO = Sequence and Indication Column Mini Volume Profile = Value Area, and/or by visualization method, e.g., Indication Main Marker POC = Box Border and Indication Main Marker VA = Box Border.
Set styling parameters by object type and/or visualization method. For segment relational and/or absolute indications for histogram and line graph object types, e.g., Style Column Size Mini Histogram = Relative. Indication context class color parameters, e.g., Style Main Color (positive) and Style Main Color (negative) for Indication Main Volume Profile = Value Area to indicate Value Area and the range(s) outside, or for Indication Main Volume Profile = Delta prices higher and lower. Set color list parameters by presets, or specify as text value to type or create with included resources, e.g., for Market Profile TPO green color for first marker, white for second and gray for third (and remaining markers) Style Main Marker Color Sequence = Green,White,Gray.
Data Source API parameters for advanced data connectivity and integration with third-party data feeds and exports. Use MetaTrader 5 Time and Sales and Depth Of Market data with included Order Book extension. Data Environment API for programmatic access to metrics. Advanced selection and use of metrics by specifying environment variable names as values of text input parameters.
Minimum price level size for text to display is 8 pixels.
Note: Align text characters vertically with a monospaced font (e.g., set Style Column Font Text to Consolas). Style columns with Style Column Fill and/or Style Column Border to display as stacked bar or table.
Example: Color visualization
set Column to Volume Profile Delta or Volume Profile Positive ; Volume Profile Negative
set Style Column Fill to true - Class
Example: Color fill opacity visualization
set Column to Volume Profile Total
set Style Column Fill to true - Class
set Indication Column Volume Profile to Total - Opacity
Minimum price level size to display is 3 pixels.
Note: Toggle with keyboard shortcut B. Control native price chart layer with Chart on foreground via the chart properties window (keyboard shortcut F8) 'Common' tab.
Extension: 'Window' application file for dedicated sub window.
Amount of indexed TPO periods. TPO period size is segment range divided by amount of TPO periods.
Note: Inspect TPO period size with Panel preset Price Level and TPO Precision.
Note: Block marker structures up to 65025. Letter marker structures up to 230. Default is 52 (upper and lower case alphabet) increase and/or customize character sequence with Style Main Marker Character Letter.
Example: 15-minute TPO for Europe, London (07:00-16:00, Mon-Fri)
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
Real-time price data distributions. Stored in memory. Reinitialization on dataset range and price level grid changes. Note: Inspect real-time price data coverage with Panel preset Data Coverage.
Historical price data distributions. Fallback to higher timeframes if unavailable. Note: Inspect historical price data coverage with Panel preset Data Coverage. Note: Control the terminal's historical data limit with Max bars via the options window (keyboard shortcut Ctrl-O) 'Charts' tab. To preload historical data and build time series data before attaching an indicator instance to a chart request the required range(s) via the terminal once.
Historical data timeframe period limit by maximum bars and coverage.
Adjusted by chart height and price scale for 'pixel perfect' price level visualizations. Underlying price calculations with not less than 8 digits. Minimum price level size for Market Profile TPO marker structures is 8 pixels. Note: Inspect actual price level size in pixels and symbol points with Panel preset Price Level and TPO Precision. If actual size not exactly matches Specified Symbol Points it can be set by adjusting chart height and/or price scale. This is a general software/hardware limitation regarding the 'pixel perfect' concept.
Implicit or explicit 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.
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
Format: Start and optional end colon (:) separated. Negate for future range end.
Example: 3 x 4-hour segments for 5 Minutes (M5) chart timeframe, third (last) segment start on current bar
set Range, Bars to 97:-47
set Segment to Specified Divisor
set Segment Divisor to 3
Adjusted for chart timeframe period.
Format: Start and optional end colon (:) separated. Negate for future range end.
Example: 3 x 4-hour segments for all chart timeframes where range divisible by chart timeframe period, third (last) segment start on current bar
set Range, Minutes to 481:-239
set Segment to Specified Divisor
set Segment Divisor to 3
Reinitialize relative range selections on end. Note: Manually reinitialize range with keyboard shortcut R.
Time and chart timeframe period based methods. Adjusted dataset and segment ranges respectively for division without remainder.
Chart timeframe up to Daily (D1). Built-in presets Coordinated Universal Time (UTC) intended. For charts with high scale and timeframe Safe Mode Segment Width might need to be set to a lower value. Default minimum segment width to display is 24 pixels.
Offset custom and built-in preset sessions.
Concatenate session filtered data as single segment.
Indexing of TPO periods.
Note: Column cell fill color with Style Column Fill.
Point of Control.
Value Area. Note: For on-object visualization use Indication Main.
Value Area High and Low.
Low Volume Nodes. Volume Profile or Market Profile TPO by Evaluation LVN/HVN.
High Volume Nodes. Volume Profile or Market Profile TPO by Evaluation LVN/HVN.
Initial Balance.
Open, High, Low and Close.
Volume Weighted Average Price.
Custom set metrics line visualization.
Format: Environment variable names comma separated. Optional custom text labels colon (:) separated, for style append name-value pairs (propSize, propOpacity and/or propColor) semicolon (;) separated. Set direct or by file. Values longer than 229 characters can only be set by file.
Resource: 'Main Line' application file for user interface extension.
Installation and usage
Install by copying the application file to '<Terminal_Directory>\MQL4|MQL5\Scripts' and refreshing the 'Navigator' window or restarting the terminal. Set Custom to extension Output file name.
Note: Default style with Style Indication Line Size, Opacity and Size. Display text labels with Style Indication Line Label.
Example:Market Profile TPO and Volume Profile Point of Control
set Custom to MP_POC_MEDIAN,VP_POC_MEDIAN
Example:Market Profile TPO and Volume Profile Point of Control with custom text labels set by file.
set Custom to Folder\Line.txt
create file named Line.txt at path C:\Program Files\MetaTrader 5\MQL5\Files\Folder\Line.txt
edit file to content MP_POC_MEDIAN:Label1,VP_POC_MEDIAN:Label2
Example:Volume Profile Value Area High and Low with style per metric.
set Custom to VP_VA_LOW:;propColor=clrRed;propSize=3,VP_VA_HIGH:;propColor=clrBlue;propSize=3
First TPO marker replacement character.
Last TPO marker replacement character.
Additional marker character at row's end.
Override highest price level value. Effective if greater than.
Override highest price level value. Effective if greater than.
Price level range inclusion.
Up to three 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. Note: Separate evaluation ranges with LVN/HVN VA.
Limit by total amount of price levels. Note: Separate evaluation ranges with LVN/HVN VA.
Amount of minutes.
Open at first TPO period.
Filter price levels. Format: Positive value for 'greater than or equal' condition, negative value for 'less than or equal' condition.
Filter price levels. Format: Positive value for 'greater than or equal' condition, negative value for 'less than or equal' condition.
Filter price levels by metrics.
Histogram and line graph object sizes. 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. Note: Rounding in scale calculations might cause minor visual distribution changes.
Overlap of bar borders, i.e., 1 pixel inaccuracy, for aesthetics. Effective if price level size is greater than 2 pixels.
Adjusted for alignment to chart timeframe period.
Format: ASCII characters.
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789#@
Additional ASCII and selected ANSI characters.
(Windows-1252 CP intended, code 128 and above, 'nonprintables' with unique replacement symbol)
Set direct or by file. Values longer than 229 characters can only be set by file.
Resource: 'Main Marker' application file for user interface extension.
Installation and usage
Install by copying the application file to '<Terminal_Directory>\MQL4|MQL5\Scripts' and refreshing the 'Navigator' window or restarting the terminal. Set Character Letter to extension Output file name.
Note: Code pages are used by operating systems to display symbols (characters) by codes. Windows US-English systems have as default code page (ANSI) CP-1252. Maximum amount of unique characters usable might be lower than 230.
Note: Negative options for strong condensed structures.
Marker color used if without on-object visualization.
Default 26 unique colors repeated once. Format: Color list. Resource: 'Main Marker' application file for user interface extension. Installation and usage Install by copying the application file to '<Terminal_Directory>\MQL4|MQL5\Scripts' and refreshing the 'Navigator' window or restarting the terminal. Set Color Sequence to extension Output file name.
Format: Amounts comma separated.
Example: First two hours green, third hour white and remaining hours gray, with 30-minute TPO
set Indication Main Market Profile TPO to Sequence
set Style Main Marker Color Sequence Groups to 4,2
(4 x 30-minute for first group and 2 x 30-minute for remaining groups)
set Style Main Marker Color Sequence to clrGreen,clrWhite,clrGray
Format: Color list.
Format: Amounts comma separated.
Factor for removal of data points and cubic spline interpolation.
Format: Pixels comma separated. Effective if larger than text width.
Example: Three columns, first and second column sized 200 pixels and third column sized to column's largest cell width
set Column to %VOLUME_DELTA%;%VOLUME_TOTAL%;%PRICE_MEDIAN%
set Style Column Size to 200,200,0
Format: Percentages comma separated. Example: Nodes 0-30%, 30-60% and 60-100%
set Indication Column Mini Volume Profile to Nodes
set Style Column Color Mini Histogram Nodes to 30,60,100
Format: Color list.
Background fill color used with contour visualizations.
Histogram bar fill (in addition to border).
Configuration file on-chart controls. Default 'osc.ini'. To enable set to true (text value) or specify a configuration file name. Note: Configuration files are located in the terminal's data folder. Edit with a text file editor. To restore delete file and reload the indicator. For quick access use command 'Open data folder' in the File menu.
Configuration file keyboard shortcuts. Default 'hotkeys.ini'. To enable set to true (text value) or specify a configuration file name. Note: Configuration files are located in the terminal's data folder. Edit with a text file editor. To restore delete file and reload the indicator. For quick access use command 'Open data folder' in the File menu.
Anchor panel to top-left corner of range selection with Drag & Drop Time/Price.
Application program interface to input file data for real-time and historical data distributions. Timeframe period and trade operation based data row processing methods. Default file name 'VBP_%SYMBOL%.csv' with chart symbol Market Watch name expansion. Built time series data stored in memory. Reinitialization on chart timeframe changes.
Note: Order Book extension to feed MetaTrader 5 Time and Sales trade operation data.
Format: MetaTrader 4 and 5 Market Watch bar data default export formats based. MetaTrader 4 format extended by an additional column to use Real Volume. Volume classification by a last additional column.
Example: File name 'VBP_NAME.csv'
set Dataset Feed to Data Source API
set Data Source to VBP_NAME.csv
content file named VBP_NAME.csv at path C:\Program Files\MetaTrader 5\MQL5\Files\VBP_NAME.csv
Example: File name 'VBP_NAME.csv' with common file folder location
set Dataset Feed to Data Source API
set Data Source to VBP_NAME.csv
set Data Source Common Folder to true
content file named VBP_NAME.csv at path C:\Users\Username\AppData\Roaming\MetaQuotes\Terminal\Common\Files\VBP_NAME.csv
Example: Data Source Format 5 content file 4 rows, 6 ticks, 8 buy and 5 sell orders
2022.09.14 18:52 3950.75 3950.75 3950.50 3950.75 1 1 25 1
2022.09.14 18:52 3950.75 3950.75 3950.50 3950.50 1 1 25 0
2022.09.14 18:52 3950.75 3950.75 3950.50 3950.75 2 8 25 6
2022.09.14 18:52 3950.75 3950.75 3950.50 3950.75 2 3 25 1
Example: Data Source Format 4 content file 6 rows, 6 ticks, 8 buy and 5 sell orders
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,1,1
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.50,1,1,0
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,6,6
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.50,1,2,0
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.75,1,1,1
2022.09.14,18:52,3950.75,3950.75,3950.50,3950.70,1,2,0
References
"Files and Folders - MetaTrader 5 Help" https://www.metatrader5.com/en/terminal/help/start_advanced/structure
"Terminal Start and Data Structure - MetaTrader 4 Help" https://www.metatrader4.com/en/trading-platform/help/userguide/start_comm
Application program interface to access environment variables as Global Variables of the terminal. To enable set true (text value) or specify an environment name. Optional filter query. Global Variables are prefixed by 'VBP', and if specified environment name, underscore separated. Segment index, starting at zero and omitted for first, is appended enclosed with brackets.
Resource: 'Data Environment API Client' code samples to access and evaluate metrics for automated algorithmic trading strategies.
Example: Environment name 'NAME' with variable filter
set Data Environment to NAME?filter=MP,VP,IB
(metrics accessible as 'VBP_NAME_MP_POC_MEDIAN', 'VBP_NAME[1]_MP_POC_MEDIAN', etc)
Example: MQL code to access and store metric value
double metric1 = 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
Object mouse click and hover event priority.
Extension: 'Order Book' application file. Time and Sales utilizes Data Source API calls. Installation and usage Install by copying the application file to '<Terminal_Directory>\MQL4|MQL5\Experts' and refreshing the 'Navigator' window or restarting the terminal. Set indicator Data Source and extension Output to default or specify name. Set indicator Dataset Feed to Data Source API. Set extension Output Common Folder to true for cross-platform and cross-broker setups.
Real-time and historical buy and sale order trade operation data rows for distributions. Note: Intermediate data files are located in the terminal's data folder by default. To use files with MetaTrader 4 set Output Common Folder to true. If chart symbol Market Watch names do not match use Output to specify.
Real-time Depth Of Market event based pending order volume data. Column object display via environment variables. Stored in memory by segment. Reinitialization on chart timeframe changes.
Line visualization and data window display (including iCustom buffers) of developing metrics. Select metrics via the extension's properties window 'Inputs' tab, styling via the 'Colors' tab. Data window configuration file 'tracing.ini' to set custom labels. Reinitialization on dataset range changes.
Extension: 'Tracing' application file. Utilizes Data Environment API calls. Installation and usage Install by copying the application file to '<Terminal_Directory>\MQL4|MQL5\Indicators' and refreshing the 'Navigator' window or restarting the terminal. Set indicator and extension Data Environment to default or specify name. Note: Configuration files to set custom labels are located in the terminal's data folder. Edit with a text file editor. To restore delete file and reload the indicator. For quick access use command 'Open data folder' in the File menu.
References
"iCustom - MQL5 Reference" https://www.mql5.com/en/docs/indicators/icustom
"iCustom - MQL4 Reference" https://docs.mql4.com/indicators/icustom
Notifications by evaluation of metrics with basic condition input parameters to set via the extension's properties window 'Inputs' tab. Display alert windows, save screenshots and/or log messages. Remote options with email and mobile device push notifications.
Extension: 'Notifications' application file. Utilizes Data Environment API calls. Installation and usage Install by copying the application file to '<Terminal_Directory>\MQL4|MQL5\Indicators' and refreshing the 'Navigator' window or restarting the terminal. Set indicator and extension Data Environment to default or specify name.
Anchor histogram to bottom of range selection with Drag & Drop Time/Price.
Extension: 'Window' application file for dedicated sub window.
Overlap of histogram bar borders, i.e., 1 pixel inaccuracy, for aesthetics. Effective if time period size is greater than 2 pixels.
Environment variable names to specify dimensions and metrics as values of text input parameters.
Data Environment API to programmatically access environment variables.
Name | Usage | Global Variable | Main Line | Column | Evaluation Column | Panel |
Time range | ||||||
TIME_START | x | x | ||||
TIME_END | x | x | ||||
SESSION | x | |||||
SESSION_NLONG Long formatted literal | x | |||||
Real-time price data total accumulated | ||||||
CSIZE Data rows reference | x | x | ||||
Real-time price data last accumulated | ||||||
CTIME | x | x | ||||
CPRICE | x | x | ||||
CPRICE_CHG | x | |||||
CPRICE_CHG_N Class signed number | x | |||||
CPRICE_CHG_LED Class colored circle symbol, first entry of line | x | |||||
Volume Profile | ||||||
VOLUME_TOTAL | x | x | x | |||
VOLUME_POSITIVE | x | x | x | |||
VOLUME_NEGATIVE | x | x | x | |||
VOLUME_DELTA | x | x | x | |||
VOLUME_DELTA_N Class signed number | x | x | x | |||
VP_LOW | x | x | x | |||
VP_HIGH | x | x | x | |||
VP_RANGE Symbol points size | x | x | ||||
VP_MEDIAN | x | x | x | |||
VP_BALANCE | x | x | x | |||
VP_POC | x | |||||
VP_POC_MEDIAN | x | x | x | |||
VP_POC_LOW | x | x | x | |||
VP_POC_HIGH | x | x | x | |||
VP_VA_LOW | x | x | x | x | ||
VP_VA_HIGH | x | x | x | x | ||
VP_VA_RANGE Symbol points size | x | x | ||||
VP_VOLUME_COUNT_POSITIVE | x | x | ||||
VP_VOLUME_COUNT_NEGATIVE | x | x | ||||
VP_VOLUME_COUNT_DELTA | x | x | ||||
VP_VOLUME_COUNT_DELTA_N Class signed number | x | x | ||||
PRICE_SET Input parameter reference | x | x | ||||
PRICE_MEDIAN | x | |||||
PRICE_LOW | x | |||||
PRICE_HIGH | x | |||||
HVN | x | |||||
LVN | x | |||||
Volume Profile - Real-time price data last accumulated | ||||||
CVOLUME_TOTAL | x | |||||
CVOLUME_POSITIVE | x | |||||
CVOLUME_NEGATIVE | x | |||||
CVOLUME_DELTA | x | |||||
CVOLUME_DELTA_LED Class colored circle symbol, first entry of line | x | |||||
Volume Profile - Real-time price data last bar | ||||||
BVOLUME_TOTAL | x | |||||
BVOLUME_POSITIVE | x | |||||
BVOLUME_NEGATIVE | x | |||||
BVOLUME_DELTA | x | |||||
BVOLUME_DELTA_N Class signed number | x | |||||
Market Profile TPO | ||||||
MP_TPO_SET Input parameter reference | x | x | ||||
MP_TPO_TIME | x | x | ||||
MP_TPO_TIME_NSHORT Short formatted literal | x | |||||
MP_TPO_TIME_NLONG Long formatted literal | x | |||||
MP_TPO_TOTAL | x | x | x | |||
MP_TPO_INDEX | x | |||||
MP_TPO_LETTER | x | |||||
MP_LOW | x | x | x | |||
MP_HIGH | x | x | x | |||
MP_RANGE Symbol points size | x | x | ||||
MP_MEDIAN | x | x | x | |||
MP_BALANCE | x | x | x | |||
MP_POC | x | |||||
MP_POC_MEDIAN | x | x | x | |||
MP_POC_LOW | x | x | x | |||
MP_POC_HIGH | x | x | x | |||
MP_VA_LOW | x | x | x | x | ||
MP_VA_HIGH | x | x | x | x | ||
MP_VA_RANGE Symbol points size | x | x | ||||
MP_TPO_COUNT_POSITIVE | x | x | ||||
MP_TPO_COUNT_NEGATIVE | x | x | ||||
MP_TPO_COUNT_DELTA | x | x | ||||
MP_TPO_COUNT_DELTA_N Class signed number | x | x | ||||
PRICE_SET Input parameter reference | x | x | ||||
PRICE_MEDIAN | x | |||||
PRICE_LOW | x | |||||
PRICE_HIGH | x | |||||
HVN | x | |||||
LVN | x | |||||
Initial Balance | ||||||
IB_LOW | x | x | x | |||
IB_HIGH | x | x | x | |||
IB_RANGE Symbol points size | x | x | ||||
Volume Weighted Average Price | ||||||
VWAP | x | x | x | |||
Depth Of Market Extension Order Book | ||||||
VOLUME_PENDING | x | |||||
VOLUME_PENDING_POSITIVE | x | |||||
VOLUME_PENDING_NEGATIVE | x |
Shortcut controls for selected parameters. Enable and customize with On-chart controls and Keyboard shortcuts interface parameters.
Default Key | Usage |
R | Initialize Range |
Q | Increase Price Level |
W | Decrease Price Level |
T | Toggle Type Main |
L | Toggle Type Panel |
B | Toggle Layer Main |
S | Toggle Style Size Main |
H | Toggle Display All |
X | Toggle Display Separator |
C | Toggle Display OHLC |
G | Toggle Display Range Selection Line |
Color lists to specify sequences and gradient bases as value of text input parameters.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
Format: MQL color names, e.g., clrPurple,clrGold or literal RGB values, e.g., C'235,64,52',C'33,102,176'.
Comma or hyphen separated. Lists longer than 229 characters can only be set by file.
Example: Set parameter (e.g., Style Background Color Gradient) to clrRed,clrWhite,clrBlue
Example: To use color list file C:\Program Files\MetaTrader 5\MQL5\Files\Volume by Price Indicator\ColorList.txt
set parameter (e.g., Style Main Marker Color Sequence) to ColorList.txt
References
"Web Colors - MQL5 Reference" https://www.mql5.com/en/docs/constants/objectconstants/webcolors
"Web Colors - MQL4 Reference" https://docs.mql4.com/constants/objectconstants/webcolors
"Color Type - MQL5 Reference" https://www.mql5.com/en/docs/basis/types/integer/color
"Color Type - MQL4 Reference" https://docs.mql4.com/basis/types/integer/color
Updated: 2022.12.05 Published: 2017.11.24