Buy Sell Pressure Oscillator TradingView Indicator

Price tells you where the market went. Also, volume tells you how hard each side pushed. Buy Sell Pressure Oscillator is a buying and selling pressure indicator TradingView traders can add to any chart. Indeed, it splits each bar’s volume into estimated buy and sell halves using where the close sits inside the range. Then it smooths the difference and normalises it against average volume, on a scale near -100 to 100.

It is free and open source. Still, you can add it to any chart from the Buy Sell Pressure Oscillator script page on TradingView, and the full Pine source is published there for you to read.

What Buy Sell Pressure Oscillator plots on the price chart

Despite the name, this script draws on the price chart rather than a separate pane. Thus, it plots the 9-bar reclaim EMA, tinted teal under buy pressure and red under sell pressure. Arrow shapes mark entries in three stacked layers for a glow effect, each tagged BSP. Hence, bars paint whenever pressure passes the strong threshold, and a faint background tint shows the live regime. An eight-row dashboard sits top right. Next, it prints the pressure state, the BSP value, buy volume percentage, the strong flag, ATR, position and bars since the last signal.

How Buy Sell Pressure Oscillator is built

Splitting volume into buy and sell

Each bar starts with one ratio. Then, the script takes close minus low, then divides by the bar’s range. A close on the high scores 1.0. Yet, a close on the low scores 0.0. A doji with no range defaults to 0.5, which keeps the math safe on flat bars.

That ratio splits the bar’s volume. Truly, buy volume equals volume times the ratio. Sell volume takes the rest. Plainly, so a bar closing in the top quarter of its range assigns most of its volume to buyers. This is the classic close-location estimate, not tape data.

The script then subtracts sell volume from buy volume and smooths the result with a 14-bar EMA, adjustable from 2 to 60. Finally it divides by the 20-bar volume average and multiplies by 100. That normalisation is what makes the reading comparable across sessions and symbols.

Regimes, entries and gates

The sign of the oscillator sets the regime. Positive means buy pressure. Negative means sell pressure. Also, absolute readings at or above the Strong Pressure input, 25 by default with a 5 to 90 range, flag a strong regime and paint the bar.

Two entry modes ship in the box. Indeed, the default mode waits for the close to cross the 9-bar reclaim EMA in the direction the pressure regime already set. Switch on Zero-Cross-Only and the script fires on the oscillator crossing zero instead. Still, that mode gives fewer and later signals. A separate Require Strong Pressure switch blocks everything under the 25 threshold.

Four gates then filter what remains. Thus, an optional session window, off by default at 0000-2400, restricts trading hours. A position state stops repeat signals in the same direction. Hence, a 5-bar cooldown, adjustable to 40, spaces entries out. And every signal waits for barstate.isconfirmed, so arrows print after the close and never repaint.

How to read the signals

Read the BSP number first. It answers one question: over the last 14 bars, how much net buying pressure has built up relative to normal volume? A value of 30 means net buy volume runs at roughly 30 percent of the 20-bar average volume. Next, near zero, both sides trade in balance.

Use the arrow as a timing tool, not a bias tool. Then, the bias comes from the oscillator sign. The arrow only marks the moment price reclaimed the 9-bar EMA in that same direction. Yet, those two jobs are deliberately separate, which is why the default mode produces more entries than zero-cross mode.

Check the Buy Vol row for the current bar. Truly, it shows the close position as a percentage, so 80 percent means the bar closed in the top fifth of its range. One strong bar does not move the smoothed line much. Plainly, a run of them does, and that run is what turns the regime.

Every Buy Sell Pressure Oscillator setting explained

The script exposes 16 inputs, grouped in the settings panel exactly as shown below. Defaults are the published values.

Pressure

SettingWhat it doesDefaultRange
Pressure SmoothingEMA length applied to net buy-minus-sell volume.142 to 60
Volume Norm LengthAverage volume the pressure is normalised by.205 to 100
Strong Pressure|oscillator| above this = strong-pressure regime.25.05.0 to 90.0
ATR LengthSets the atr length used in the calculation.145 to 50

Signal Logic

SettingWhat it doesDefaultRange
Entry Reclaim EMAAfter pressure sets a bias, a close-cross of this EMA in that direction times the entry.92 to 50
Zero-Cross-Only ModeOn = fire on the pressure zero-line cross. Off = EMA reclaim inside the active pressure bias (more signals).offon / off
Require Strong PressureOn = only trade when |oscillator| exceeds the strong threshold.offon / off
Cooldown BarsSets the cooldown bars used in the calculation.51 to 40

Filters

SettingWhat it doesDefaultRange
Restrict to SessionToggles restrict to session on the chart.offon / off
Session WindowControls session window.0000-2400

Visual

SettingWhat it doesDefaultRange
Show DashboardToggles show dashboard on the chart.onon / off
Show 3-Layer GlowToggles show 3-layer glow on the chart.onon / off
Show Reclaim EMAToggles show reclaim ema on the chart.onon / off
Buy ColorColour used for buy color.#2ec4b6
Sell ColorColour used for sell color.#ff5a5f
Dashboard BGColour used for dashboard bg.color.new(#06161a, 14)

Alerts built into Buy Sell Pressure Oscillator

The script ships 15 alert conditions. Also, open the alert dialog on the chart, pick the indicator as the condition source, then choose the event you want. Alerts fire on the close of the bar, so they follow the same confirmed-bar rule the on-chart signals use.

  • BSP Buy
  • BSP Sell
  • BSP Any Signal
  • BSP Zero Up
  • BSP Zero Down
  • BSP Strong Buy
  • BSP Strong Sell
  • BSP EMA Up
  • BSP EMA Down
  • BSP Bull Regime
  • BSP Bear Regime
  • BSP Any Zero Cross

Other markets and timeframes

Every threshold here stays relative, since the oscillator divides by the instrument’s own 20-bar average volume. Indeed, the default 25 setting therefore transfers to crypto, indices, futures and equities without retuning. Volume quality is the real variable. Still, spot forex has no central exchange, so TradingView reports broker tick volume, meaning a count of price updates rather than traded size. It correlates with real activity but is not the same thing. On symbols with no volume feed at all, the oscillator flatlines at zero.

Limitations worth knowing

The buy and sell split is an estimate from the close position, not real order flow. Thus, it cannot see the tape, the bid, the ask or aggressor side. A bar that closes high after heavy selling absorption still scores as buy volume.

The tool sets bias and timing only. Hence, it ships no stops, no targets and no sizing. It never calls request.security either, so there is no higher-timeframe confirmation. Next, everything you see comes from your current chart timeframe.

The 14-bar EMA lags by design, so the regime flips late after sharp reversals. In quiet ranges the oscillator can hover near zero and flip sign often. Raising Strong Pressure or switching on Require Strong Pressure cuts that noise, but it also removes valid early entries.

Get Buy Sell Pressure Oscillator on TradingView

Open Buy Sell Pressure Oscillator on TradingView

If you also trade MetaTrader, the MT4 and MT5 indicator library is available below.

Get the complete indicator library

One email unlocks the full MT4 and MT5 indicator library. Then, this TradingView script stays free on TradingView – the button above adds it to your chart.

Using it alongside MetaTrader

Adding a script on TradingView takes one click, so there is no install step here. Yet, if you want the same idea on MetaTrader, the MT4 and MT5 indicator installation guide walks through copying files into the data folder and attaching them to a chart. You can also browse the full MetaTrader indicator library, the MT4 indicators section, or the other free TradingView scripts published on this profile. For related chart tools see the MT5 indicators section and the forex trading strategies guides.

External references

Frequently asked questions

Does the Buy Sell Pressure Oscillator repaint?

No. Truly, signals gate on barstate.isconfirmed, so an arrow prints only once the bar has closed. The dashboard values update live inside the forming bar, which is expected. Plainly, printed arrows stay where they are.

Why is it drawn on the price chart and not a sub-pane?

The script declares overlay true on purpose. Also, the oscillator value drives the bar colors, the background tint, the EMA color and the dashboard readout instead of a separate pane plot. That keeps price and pressure in one view, so you read the reclaim cross against the same candles.

Does it work on forex where volume is not real?

It runs, with a caveat. Indeed, spot forex feeds report broker tick volume, which counts price updates rather than contracts. That proxy tracks activity well enough for relative comparisons on one symbol. Still, treat readings across different brokers or symbols with more care.

What is the difference between the two signal modes?

Default mode needs the pressure sign to set a bias, then waits for a close cross of the 9-bar EMA in that direction. Thus, zero-Cross-Only mode ignores the EMA and fires when the oscillator itself crosses zero. The first mode gives more and earlier entries. Hence, the second gives fewer and slower ones.

How much should I rely on this indicator?

Treat it as one input, not a decision. Next, it is a chart analysis tool, not trading advice. Test it on your own markets and timeframes before relying on it. Results are not guaranteed; past performance is not indicative of future results.

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.

Leave a Comment