This fixed range volume profile indicator builds a horizontal histogram of tick volume across the last RangeBars candles. It pins the histogram to the right edge of the chart and splits the range into price buckets. The busiest bucket becomes the POC. A dotted POC line runs back through the window. Traders who want to see where recent volume piled up get that in one overlay on MT4 and MT5.
This build ships as fixed-range-volume-profile-indicator-indicator-forexmt4systems.ex4 for MT4 and fixed-range-volume-profile-indicator-indicator-forexmt4systems.ex5 for MT5; the screenshots below come from EURUSD H1.
| Platforms | MT4 (.ex4) + MT5 (.ex5) |
|---|---|
| Chart window | Main price chart |
| Plots | 1: FRVP |
| Alerts | popup, push notification, email, sound |
| Inputs | 12 |
What the Fixed Range Volume Profile Indicator draws on the chart
The profile is a stack of horizontal bars. The code draws them as trend-line objects that start at the current candle and extend to the right. Each bar stands for one price bucket, and its length scales with the tick volume that traded inside that bucket. Normal buckets use ProfileColor, steel blue by default, and the thickness comes from BarWidth.
The bucket with the most volume is the Point of Control. It prints in PocColor, orange-red by default. A dotted line in the same colour marks the POC price across the range. It runs from the left edge of the window to the current bar. A small text label shows that price next to the histogram.
Two silver dotted lines mark the range high and range low across the window. So you can see the exact span the profile covers. The FRVP buffer is the only plot and it draws nothing itself. It exists so the platform rebuilds the objects on each new bar.
- FRVP: hidden buffer

How the Fixed Range Volume Profile Indicator calculates its values
Range and bucket size
The window comes first. The code scans the last RangeBars candles, 200 by default. It records the highest high and the lowest low. That span divides into Buckets equal slices, 25 by default. Each bucket then covers one twenty-fifth of the range. A wider range means coarser buckets unless you raise Buckets.
Spreading each candle’s volume
Every candle in the window contributes its tick volume. The code works out which buckets the candle’s high-to-low span touches and splits the volume evenly across them. A long candle that covers five buckets adds one fifth of its volume to each. A small doji drops everything into one bucket. The sums per bucket form the raw profile.
POC and bar scaling
The bucket with the largest sum becomes the POC. Every bar length equals the bucket’s share of that maximum multiplied by MaxBarPixels, with a floor of two units. So the POC always draws at full length and the rest shrink in proportion. The whole profile rebuilds once per new bar, and the histogram steps forward as the window rolls.
How to read the signals
The POC bar and its dotted line show where the most activity took place. Price tends to return to that level. Many traders treat the POC as a magnet inside the range and as support or resistance once price leaves it.
Long bars near the top or bottom of the range mark heavy trading at the extremes. Thin bars, sometimes only the two-unit minimum, show prices the market passed through quickly. Those low-volume gaps are where a breakout often runs without a fight.
Watch where the POC sits relative to the current candle. A POC far below price after a rally says the rally left its volume base behind. A retest is then likely. Meanwhile a POC that steps up bar by bar shows buyers accepting higher prices.
Alert channels in this build: popup, push notification, email and sound, one message per closed bar.
When the POC moves to a different bucket on a new bar, the tool sends an alert. The message reads POC UP or POC DOWN. It goes out by popup, push notification, email or sound, once per closed bar. Each channel has its own input switch.
Every Fixed Range Volume Profile Indicator input
Core settings
| Setting | What it does | Default |
|---|---|---|
RangeBars |
Fixed range size in bars. RangeBars (default 200) sets how many recent candles feed the profile. Try 50 on H1 for a session view or more on D1. | 200 |
Buckets |
Number of price buckets. Buckets (default 25) controls the resolution of the histogram. More buckets show finer structure but thin out the volume per bar. | 25 |
MaxBarPixels |
Maximum horizontal bar length in pixels. MaxBarPixels (default 120) caps the length of the POC bar and scales every other bar against it. Lower it if the histogram runs off the chart. | 120 |
Display settings
| Setting | What it does | Default |
|---|---|---|
ProfileColor |
Normal bucket color. | steel blue |
PocColor |
POC bucket color. | orange red |
BarWidth |
Histogram bar thickness. BarWidth (default 4) sets the thickness of each histogram bar. Drop it to 2 when you run more than 40 buckets. | 4 |
Alert settings
| Setting | What it does | Default |
|---|---|---|
EnableAlerts |
(see inputs panel) | on |
EnablePopup |
(see inputs panel) | on |
EnablePushNotify |
(see inputs panel) | off |
EnableEmail |
(see inputs panel) | off |
EnableSound |
(see inputs panel) | off |
SoundFile |
(see inputs panel) | alert.wav |

Settings that fit your chart
The reference screenshots run on EURUSD H1 with the default 200-bar window. That covers a little over a week of trading and gives a profile with a clear POC. The tool relies on tick volume, which every MT4 and MT5 feed supplies. So forex pairs, gold and index CFDs all work. The shape says most on instruments that rotate inside ranges. On M15 a 200-bar window spans about two sessions, while on D1 it covers most of a year. Set RangeBars to the horizon you trade.
When the Fixed Range Volume Profile Indicator fails
Tick volume differs from real traded size. MT4 and MT5 forex feeds count price changes, not contracts, so the profile shows activity rather than size. Two brokers can show different POCs on the same pair.
The window is fixed in bars, not in your chosen swing. The profile always covers the last RangeBars candles. You cannot drag it over one specific leg the way a manual fixed-range tool allows.
Rolling rebuild. Because the histogram rebuilds on every new bar, an old POC disappears as soon as its bars leave the window. There is no history of past profiles on the chart, only the current one.
Copy fixed-range-volume-profile-indicator-indicator-forexmt4systems.ex4 into MQL4/Indicators and fixed-range-volume-profile-indicator-indicator-forexmt4systems.ex5 into MQL5/Indicators, then restart the terminal and drag the Fixed Range Volume Profile Indicator onto a chart. The step-by-step guide with screenshots is at how to install MT4 and MT5 indicators.
Related on forexmt4systems.com: Range Trading Strategy.
Background reading on the method behind the Fixed Range Volume Profile Indicator: Fixed income arbitrage on Wikipedia, Volume By Price at StockCharts ChartSchool.
Download the Fixed Range Volume Profile Indicator for MT4 and MT5
The zip fixed-range-volume-profile-indicator-indicator-forexmt4systems.zip holds fixed-range-volume-profile-indicator-indicator-forexmt4systems.ex4, fixed-range-volume-profile-indicator-indicator-forexmt4systems.ex5 and a short README, compiled files only. 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
Why does the fixed range volume profile indicator use tick volume?
MT4 and MT5 forex symbols do not carry real traded volume. So the code reads the tick_volume array, which counts price changes per candle. That gives a usable proxy for activity at each price. Treat the histogram as a map of where the market was busy rather than a count of contracts.
What happens to the POC when RangeBars drops from 200 to 50?
The profile then covers only the last 50 candles. Its POC jumps to where volume clustered over roughly two H1 sessions rather than a week. The bars also change shape because fewer candles feed each bucket. Use the shorter window for intraday levels and the longer one for swing context.
How many Buckets suit a wide D1 range?
Start with the default 25. Raise it toward 40 or 50 only if the POC bar looks too coarse to act on. More buckets split the same volume into thinner slices, so the histogram gets spikier and single-bar noise shows up. The code refuses to draw below 5 buckets.
Does the POC in this volume profile predict the next move?
No. The POC records where the most activity happened; it does not forecast direction. Traders use it as a reference. Price holding above a rising POC shows acceptance. A retest of the POC after a breakout is a common entry area. A thin bucket beside it marks where price can move fast.
Are results guaranteed?
No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Fixed Range 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
- The core method is documented in Fixed income arbitrage on Wikipedia.
- Additional market context is at Volume By Price at StockCharts ChartSchool.
