Buy Sell Pressure Indicator: Volume Split By Close Spot

Written by Dominic Walsh · Published · Last updated

The buy sell pressure indicator splits volume by where the close landed. A bar closing at its high gives all its tick volume to the buy side. One closing at its low gives it all to the sell side. Anything in between splits in proportion, then both halves get smoothed.

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 Separate window (levels 0)
Plots 4: Buy Pressure, Sell Pressure, Buy Extreme, Sell Extreme
Alerts popup, push notification, email, sound
Inputs 10

What the Buy Sell Pressure Indicator draws on the chart

Buy Pressure is the lime histogram above the zero line.

Sell Pressure is the tomato histogram drawn below it as a negative value.

Buy Extreme and Sell Extreme mark readings near the recent extreme.

A reference line sits at zero between the two halves.

  • Buy Pressure: histogram, lime, width 3
  • Sell Pressure: histogram, tomato, width 3
  • Buy Extreme: arrow, aqua, width 3, arrow code 233
  • Sell Extreme: arrow, magenta, width 3, arrow code 234
Buy sell pressure indicator on EURUSD H1 with the split volume histogram
Buy sell pressure indicator on EURUSD H1 with the split volume histogram

How the Buy Sell Pressure Indicator calculates its values

Splitting each bar

closePos takes the close minus the low, divided by the bar range. rawBuy takes that fraction times tick volume, and rawSell takes the remainder. A bar closing halfway splits its volume evenly.

Smoothing both halves

k takes 2 over `InpSmoothPeriod` `5` plus one. Each buffer then blends the new raw value with its own previous one. Raw tick volume jumps around too much to read without that step.

Marking an extreme

The code scans `InpExtremePeriod` `50` bars for the largest reading on each side. A mark appears when the current value reaches `InpExtremeRatio` `0.80` of that figure. So an extreme is relative rather than fixed.

How to read the signals

Tick volume counts price updates rather than contracts traded.

A tall lime bar means heavy activity on bars that closed near their highs.

The two halves are mirrored, so compare their heights rather than their signs.

An extreme mark means the reading reached four fifths of its own recent peak.

Alert channels in this build: popup, push notification, email and sound.

`EnableAlerts` starts on and `EnablePopup` carries the message. `EnablePushNotify`, `EnableEmail` and `EnableSound` all begin false. `SoundFile` picks the clip. This build has no once-per-bar guard, so leave the noisier channels off.

Every Buy Sell Pressure Indicator input

Core settings

Setting What it does Default
InpSmoothPeriod Smoothing EMA period. Smoothing length applied to both halves, default `5`. 5
InpExtremePeriod Lookback for extreme detection. Bars scanned for the recent extreme, default `50`. 50
InpExtremeRatio Fraction of recent extreme that triggers arrow. Share of that extreme which triggers a mark, default `0.80`. 0.80

Display settings

Setting What it does Default
InpMaxBars Max bars on first attach (performance cap). Bars processed on first attach, default `1500`. 1500

Alert settings

Setting What it does Default
EnableAlerts Master switch for the pressure extreme alerts, default `true`. on
EnablePopup Terminal dialog on a pressure extreme, default `true`. on
EnablePushNotify Phone push on a pressure extreme, default `false`. off
EnableEmail Mail delivery on a pressure extreme, default `false`. off
EnableSound Sound playback on a pressure extreme, default `false`. off
SoundFile Wav clip for the pressure alert, default `alert.wav`. alert.wav
Buy sell pressure indicator inputs: InpSmoothPeriod, InpExtremePeriod, InpExtremeRatio
Buy sell pressure indicator inputs: InpSmoothPeriod, InpExtremePeriod, InpExtremeRatio

Settings that fit your chart

Tick volume is a broker figure, so readings differ between feeds. EURUSD H1 is the reference chart, where `InpExtremePeriod` at `50` covers two days. On M5 the histogram reacts within the hour and the marks come often. On H4 the pane describes a fortnight.

When the Buy Sell Pressure Indicator fails

Splitting volume by close position is a convention, not a measurement of who traded.

Tick volume varies between brokers on the same instrument, so the scale is not portable.

An extreme relative to fifty bars can still be small in absolute terms.

Copy the compiled Buy Sell Pressure 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 Buy Sell Pressure Indicator for MT4 and MT5

The zip holds the compiled Buy Sell Pressure 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 does InpSmoothPeriod see the split volume?

As two raw series. closePos takes the close minus the low over the bar range, and that fraction decides how much tick volume goes to each side. The smoothing then runs on both halves separately.

Why does InpSmoothPeriod default to 5?

Because raw tick volume is far too noisy to read bar by bar. A five-bar smoothing keeps the histogram responsive while removing the worst of the jitter. Lengthen it for a calmer pane at some cost in speed.

What does InpExtremeRatio at 0.80 mark?

A reading that has reached four fifths of the largest value in the last `InpExtremePeriod` `50` bars. Because the reference moves, a mark means unusual by recent standards rather than large in absolute terms.

Does the Buy Pressure plot use real volume?

No, it uses tick volume. That counts how many times the price updated, not how many contracts changed hands. It tracks activity well enough to be useful, and it differs between brokers on the same instrument.

Are results guaranteed?

No. Trading involves risk. Results are not guaranteed; past performance is not indicative of future results. Use the Buy Sell Pressure Indicator as one input. Always backtest before trading live.

Category: this is part of our Volatility collection. Next, plainly, yet, browse more Volatility 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