Join waitlist
Strategies / Mean reversion / Buying Pressure Oscillator Long

Buying Pressure Oscillator Long

Buys when a weighted buying pressure oscillator over 7, 14 and 28 bars first drops below 30. Closes the long when it first rises above 70.

Mean reversionLong onlySwingS&P 5004 hours
3.03Profit factor
4,124Net profit EUR
78.74%Win rate
127Trades
-821Max drawdown
32.48Avg trade

Best run of 39. S&P 500, 4 hours, spread 1, from run pf:2026-10-05-USA500-4h.tsv:3.

Entry rules, long

  1. The oscillator is a weighted blend of averages of buying pressure against true range over 7, 14 and 28 bars, with weights 4, 2 and 1.
  2. Enter long at market when flat.

Exit rules

  1. The oscillator is above 70, on the first bar of that zone, and the long closes at market.

Test conditions

PeriodUp to 2026-10-05
InstrumentS&P 500, 4 hours
Spread1 points
Starting capital1,000,000
CostsSpread only. Commissions and overnight financing are not included.
BarsUp to 200,000 bars, fewer where the instrument has less history
Last tested2026-10-05

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
S&P 500Best run4 hours3.03 12778.744,124 EUR-821
Silver1 hourn/a 25657.81574,464 USD-570,990
USD/JPY1 hourn/a 30964.72417,250 USD-194,450
USD/JPY4 hoursn/a 8668.60327,830 USD-202,500
USD/JPY30 minn/a 44263.80243,290 USD-171,300
USD/JPY3 minn/a 81264.90233,630 USD-76,550
Nikkei 2254 hoursn/a 8368.6729,185 USD-8,226
EUR/USD10 minn/a 69760.2628,295 USD-25,629
Nikkei 2251 hourn/a 34363.5624,485 USD-11,572
Nikkei 22530 minn/a 75361.8923,033 USD-9,561
Silver30 minn/a 44261.3120,015 USD-12,520
Nikkei 225Dailyn/a 4969.3915,766 USD-14,119
Dow Jones10 minn/a 74759.5715,069 EUR-6,307
Nasdaq 1001 hourn/a 51367.0614,084 EUR-4,302
Nasdaq 1004 hoursn/a 13778.1013,438 EUR-3,444
Nasdaq 10030 minn/a 67261.7611,776 EUR-3,380
DAX 401 hourn/a 36763.2211,577 EUR-4,306
DAX 40Dailyn/a 12566.4011,005 EUR-3,924
Dow JonesDailyn/a 3268.7510,599 EUR-8,651
Brent Crude1 hourn/a 23165.3710,555 EUR-3,806
Dow Jones1 hourn/a 15366.0110,546 EUR-5,582
DAX 404 hoursn/a 11168.478,523 EUR-5,290
SilverDailyn/a 4553.337,521 USD-5,912
FTSE 100Dailyn/a 3683.336,715 EUR-2,122
Nasdaq 100Dailyn/a 3979.496,611 EUR-3,076
Dow Jones2 minn/a 74362.186,264 EUR-3,757
Brent Crude30 minn/a 47160.935,134 EUR-4,705
DAX 4030 minn/a 70459.945,028 EUR-4,626
FTSE 1004 hoursn/a 11869.494,673 EUR-2,664
FTSE 1001 hourn/a 42364.784,522 EUR-1,910
FTSE 10030 minn/a 80361.524,240 EUR-1,966
FTSE 10010 minn/a 93063.123,864 EUR-1,020
S&P 5001 hourn/a 46168.113,636 EUR-1,070
Nasdaq 1001 minn/a 67358.103,387 EUR-2,852
S&P 500Dailyn/a 4180.492,581 EUR-1,009
S&P 50030 minn/a 67361.221,951 EUR-1,027
S&P 50010 minn/a 76361.471,768 EUR-1,269
GoldDailyn/a 3473.531,325 EUR-552
Gold4 hoursn/a 7672.371,214 EUR-647

Charts

Results by run

Top 10 of 39 runs. The full list is in the table above.

Net profitMax drawdown

The code

ProBuilder code, as tested

// ==============================================================
// Buying Pressure Oscillator Long
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long only
// Timeframe tested: 4 hours
// ==============================================================

DEFPARAM CumulateOrders = false

ONCE trend = 0
ONCE adv = 0

bp = close - MIN(low, close[1])
myTr = MAX(high, close[1]) - MIN(low, close[1])
tra = Average[7](myTr)
trb = Average[14](myTr)
bpa = Average[7](bp)
bpb = Average[14](bp)
bpc = Average[28](bp)

34 more lines: the entry and exit rules.

Setup

How to load it

  1. Copy the code with the copy button on the code block.
  2. In ProRealTime, open a chart of the instrument and timeframe you want to test, then open ProOrder > New trading system and choose "Create with programming".
  3. Paste the code, give the system a name and save it.
  4. Click "Backtest", set your own spread and position size, and run it before you consider trading it live.

Indicators used

True RangeSMA
Longer historyRe-run on up to 1,000,000 barsS&P 500 · 4 hours · older data 0.00 EUR

S&P 500 had no history beyond the standard run, so both runs used 28,000 bars.

S&P 500 · 4 hours

Bars available28,000
Net, standard 200,000-bar run4,124.46 EUR
Net, long run4,124.46 EUR
Net on the older data alone0.00 EUR
Read this firstKnown weaknesses2 points
  • The code sets no stop loss, so a losing trade stays open until an exit signal arrives.
  • Results include the spread only. Commissions and overnight financing are not included.

Questions

About this strategy

Can I run Buying Pressure Oscillator Long in ProOrder?

Yes. The code is ProBuilder and runs as an automated ProOrder system. Backtest it on your own account with your own spread and position size before trading it live.

Which markets was it tested on?

It was tested on 39 market and timeframe combinations. The best run was S&P 500, 4 hours, with a profit factor of 3.03 over 127 trades.

How large was the drawdown?

The best run had a maximum drawdown of 821 EUR at the tested position size, against a net result of 4,124 EUR.

Does it trade long, short or both?

It only takes long trades.

Related

Strategies like this one

Trend Surfer

Uses the same indicator.

1.04 PF · 10,813 trades

CCI Sign With EMA Alignment

Best run on the same market, S&P 500.

1.23 PF · 1,253 trades

RSI And CCI Oversold Reversal

Also a mean reversion strategy.

3.01 PF · 120 trades

Put your name on the ProRealAlgos waitlist to trade a tested portfolio instead of single strategies.

Copy trading on US indices is available to ProRealAlgos members as spots open.

Past backtest results do not guarantee future results. This is not financial advice. Curated and maintained by ProRealAlgos. ProRealTime™ is a trademark of ProRealTime SAS. prorealalgos.comStatsDocs