Drag And Drop Volume Profile Indicator for MT4 and MT5

Written by Dominic Walsh · Published · Last updated

The drag and drop volume profile indicator builds a horizontal volume histogram across a date range you choose. It then reports the three levels most profile traders watch. The code splits the range into price bins, spreads each bar’s volume across the bins that bar touched, and finds where trading concentrated. Set the two dates and the profile rebuilds around them.

This build ships as a compiled .ex4 for MT4 and .ex5 for MT5; the screenshots below come from EURUSD H1.

Platforms MT4 (.ex4) + MT5 (.ex5)
Chart window Main price chart
Plots 3: POC, VAH, VAL
Alerts popup
Inputs 10

What the Drag And Drop Volume Profile Indicator draws on the chart

POC marks the point of control in gold, the single price bin that absorbed the most volume.

VAH marks the lime upper edge of the value area.

VAL marks the tomato lower edge of that same area.

Trend and vertical line objects frame the range, so you can see which candles fed the profile.

  • POC: arrow, gold, width 1, arrow code 158
  • VAH: arrow, lime, width 1, arrow code 158
  • VAL: arrow, tomato, width 1, arrow code 158
Drag and drop volume profile indicator on EURUSD H1 with POC, VAH and VAL marked
Drag and drop volume profile indicator on EURUSD H1 with POC, VAH and VAL marked

How the Drag And Drop Volume Profile Indicator calculates its values

Binning the range by price

First the code walks the bars between the two dates, tracking hi and lo to find the full price span. It divides that span by `Bins` to get step, the height of one bin. Each bin covers a slice of price rather than a slice of time. That single difference separates a volume profile from the volume histogram along the bottom of a chart.

Spreading each bar across the bins it touched

For every bar the code finds b_lo and b_hi, the bins holding that bar’s low and high. It counts the bins between them as span, then divides the bar’s volume evenly: share = bv / span. Each bin the bar covered receives that share. A wide bar therefore spreads thinly across many levels, while a narrow bar concentrates its volume in one or two.

Growing the value area outward

The busiest bin becomes the POC, priced at lo + (poc_bin + 0.5) * step. From there the code expands outward. Each step compares v_up against v_dn and takes whichever neighbouring bin holds more volume. It stops once the running total reaches target, which is `ValueAreaPct` of all volume in the range. The bins where it stops become VAH and VAL.

How to read the signals

The POC is the fairest price in the range by volume. Price returning there often stalls.

Most trading happened between VAH and VAL, so moves inside that band carry less information.

A thin patch between the POC and one edge marks prices the market passed through quickly.

Touch alerts tell you the previous bar’s range covered one of the three levels.

Alert channels in this build: popup, one message per closed bar.

Alerting runs through a terminal popup only, under `EnableAlerts`, which ships `true`. It fires when the previous completed bar’s range covers the POC, the VAH or the VAL. The once-per-bar guard keeps repeated touches inside one bar down to a single message.

Every Drag And Drop Volume Profile Indicator input

Core settings

Setting What it does Default
StartDate Range start (edit to change). Opens the profile window, default `D’2026.05.01 00:00’`. Edit it to move the window and the profile rebuilds from scratch. D’2026.05.01 00:00
EndDate Range end (edit to change). Closes the window, default `D’2026.05.31 23:59’`. Keep the span meaningful: a week, a month, or one session. D’2026.05.31 23:59
Bins Price bins in profile. Sets the histogram resolution, default `50`. More bins sharpen the POC but add noise on a short range. 50
ValueAreaPct Value area percent. Share of volume inside the value area, default `70.0`, the conventional figure. Lower it for a tighter band around the POC. 70.0
ObjectPrefix Object name prefix. Names the lines the tool draws, default `”DDVP_”`. DDVP_

Display settings

Setting What it does Default
POCColor POC line color. gold
VAHColor VAH line color. lime
VALColor VAL line color. tomato
LineWidth Line width. 2

Alert settings

Setting What it does Default
EnableAlerts Alert on touch. on
Drag and drop volume profile indicator inputs: StartDate, EndDate, Bins and ValueAreaPct
Drag and drop volume profile indicator inputs: StartDate, EndDate, Bins and ValueAreaPct

Settings that fit your chart

Volume here means broker tick volume, so the profile describes activity at your own feed rather than exchange-reported size. That still works on forex, and the reference chart uses EURUSD on H1. The chart timeframe controls how finely the code samples the range. A month of H1 bars gives roughly 500 samples across 50 bins, enough for a stable shape. Short ranges on high timeframes leave too few bars to bin sensibly.

When the Drag And Drop Volume Profile Indicator fails

Tick volume counts price updates rather than traded size, so two brokers can produce different POC levels for the same range.

Splitting a bar’s volume evenly across the bins it touched assumes trading spread across the whole bar, which rarely holds for a bar with a long wick.

The dates are fixed inputs rather than a rolling window, so a profile you leave alone goes stale as price moves away from the range.

Copy the compiled Drag And Drop Volume Profile Indicator file into your MQL4/Indicators folder, and the MT5 build into MQL5/Indicators, then restart the terminal and drag it onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.

Background reading on the method behind the Drag And Drop Volume Profile Indicator: Negative Volume Index Nvi at StockCharts ChartSchool, Volume (finance) on Wikipedia.

Download the Drag And Drop Volume Profile Indicator for MT4 and MT5

The zip holds the compiled Drag And Drop Volume Profile Indicator build for MT4 and MT5, plus a short README. Compiled files only, no source. Enter your email below and the download link arrives in your inbox.

Download this indicator free

Enter your email and the file is yours. You also get the full MT4 and MT5 library.

  • 1,380+ indicators
  • MT4 and MT5 files
  • No spam, unsubscribe any time

FAQ

How do I change StartDate and EndDate without recompiling?

Open the inputs panel and edit them there. Both are datetime inputs, so MetaTrader offers a date picker rather than a text box. The profile, the POC and both value area edges recalculate as soon as you confirm, and the code redraws the `ObjectPrefix` lines against the new window.

What does ValueAreaPct at 70.0 mean in practice?

The code totals all volume in the range and takes 70% of it as a target. Then it grows outward from the POC one bin at a time, always taking the heavier neighbour first. When the running total reaches the target it stops, and those bins become VAH and VAL. Roughly seven tenths of the range’s activity sits between them.

Why does my POC differ from a colleague’s on the same EURUSD H1 range?

Forex has no central tape. This reads your broker’s tick count, so a different feed builds a different histogram. Both describe their own data accurately. Levels usually land close together, but expect a bin or two of difference rather than an exact match.

Should I raise Bins above 50?

Only when the range supports it. `Bins` slices the price span, so 100 bins across one week can leave individual bins holding one or two bars of volume, and the POC then jumps around. On a monthly range with plenty of bars, a finer setting gives a more precise level.

Are results guaranteed?

No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Drag And Drop Volume Profile Indicator as one input. Always backtest before trading live.

Category: this is part of our Volume collection. Next, plainly, truly, browse more Volume for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.

External references

Dominic Walsh - Forex trader and MT4/MT5 developer

About the author

Written by Dominic Walsh, a Forex trader and MT4/MT5 indicator, Expert Advisor and script developer. Every tool on forexmt4systems.com is tested on live charts before release and ships with ready-to-use compiled MT4 (.ex4) and MT5 (.ex5) files. Learn more about the trader and developer behind this site.

How we build, test and correct every tool: Editorial & Testing Policy. Trading carries risk; see the disclaimer.

Leave a Comment