The current volume profile indicator asks where price spent its time. Two hundred bars get sorted into forty buckets by typical price. The busiest bucket becomes the point of control. Widening out from there until seventy percent of activity is covered gives the value area edges.
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, push notification, email, sound |
| Inputs | 16 |
Colours, widths and shapes
Three lines plus chart objects.
`POC` runs gold at width 2.
`VAH` runs dodger blue above it.
`VAL` runs crimson below.
Trend objects mirror each level on the chart.
Object names all begin with `ObjPrefix`.
- POC: line, gold, width 2
- VAH: line, dodger blue, width 1
- VAL: line, crimson, width 1

What the formula does
Buckets, not bars
Price gets divided up. `LookbackPeriod` `200` bars set the high and low. `BucketCount` `40` splits that span into equal slices.
Filling them
Each bar counts once. Its typical price, the average of high, low and close, decides which slice it lands in. The fullest slice becomes the point of control.
The value area
It grows outward from there. Neighbouring slices get added until `ValueAreaPct` `0.70` of the total is inside. The outermost pair gives the two edges.
Interpreting what you see
The gold line marks where price spent most of its time.
Between the blue and crimson lines is the usual territory.
Outside them price was moving rather than settling.
A tight value area describes a balanced market.
Levels rebuild as the window rolls forward.
Forty buckets set how precise each level can be.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
`EnableAlerts` heads the level alerts and ships true with `EnablePopup`. Turn on `EnablePushNotify` for a phone, `EnableEmail` for mail, or `EnableSound` to play `SoundFile`. A close within five points of a level reports once a bar.
Every Current Volume Profile Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
LookbackPeriod |
Bars used to build the profile. Bars built into the profile, `200`. | 200 |
BucketCount |
Histogram buckets across price range. Price slices across the span, `40`. | 40 |
ValueAreaPct |
Value Area target fraction (default 70%). Share of activity inside, `0.70`. | 0.70 |
RefreshEveryBars |
Recompute on every Nth new bar. Rebuild every Nth bar, `1`. | 1 |
ObjPrefix |
Object name prefix, `”CurVP_”`. | CurVP_ |
Display settings
| Setting | What it does | Default |
|---|---|---|
PocLineColor |
POC trendline color. Busiest slice colour, `clrGold`. | gold |
VahLineColor |
Upper edge colour, `clrDodgerBlue`. | dodger blue |
ValLineColor |
Lower edge colour, `clrCrimson`. | crimson |
PocLineWidth |
(see inputs panel) | 2 |
VaLineWidth |
(see inputs panel) | 1 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
Master switch, `true`. | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
Which clip plays, `”alert.wav”`. | alert.wav |

Choosing where it lives
Two hundred bars means a different span on every chart. EURUSD H1 is the reference chart. The window covers about eight days there. On M5 it is under a day. On H4 it spans more than a month.
What this one cannot tell you
Bar counts stand in for real traded volume.
One bar counts once, however large it was.
Forty buckets is coarse on a wide range.
A rolling window means levels move as bars fall out.
Copy the compiled Current 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.
Download the Current Volume Profile Indicator for MT4 and MT5
The zip holds the compiled Current 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.
FAQ
What does BucketCount 40 control?
How finely the price span is sliced. Forty buckets across two hundred bars gives levels precise to a fortieth of the range. More buckets sharpen the point of control but make each slice thinly populated.
How does ValueAreaPct 0.70 pick its edges?
By growing outward from the busiest bucket, adding neighbours until seventy percent of all counted bars sit inside. The last two buckets added become the upper and lower edges you see drawn.
Does LookbackPeriod count volume or bars?
Bars, and the distinction matters. Each of the two hundred bars adds one count to whichever bucket its typical price falls in, so the profile measures time spent at a price rather than contracts changing hands.
Why set RefreshEveryBars above 1?
To save calculation on a slow machine. At the default the profile rebuilds on every new bar, which is fine on H1 but costs more on a fast chart with two hundred bars to re-sort.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Current Volume Profile Indicator as one input. Always backtest before trading live.
Category: this is part of our Volume collection. Next, plainly, yet, browse more Volume for MetaTrader, or explore every MT4 indicator and MT5 indicator on the site.
External references
- For background on this concept, see Current (financial services company) on Wikipedia.
- For broader market context, see Advance Decline Volume Percent at StockCharts ChartSchool.
