Join today
Strategies / Mean reversion / Low Buy High Sell

Low Buy High Sell Strategy

Longs open when price closes below the lowest low of the last 3 completed days. Shorts open when price falls back under the highest high of the last 13 days. Positions close when price moves past yesterday close, with stops sized from yesterday range.

Mean reversionLong & shortSwingGBP/USD4 hours
n/aProfit factor
2,533Net profit USD
50.12%Win rate
2,530Trades
-1,409Max drawdown
1.00Avg trade

Best run of 8. GBP/USD, 4 hours, spread 1.5, from run sweeps:2026-09-24-GBPUSD-4h-opt.tsv:2.

Entry rules, long

  1. Members only
  2. No more than 1 long entry per day

Entry rules, short

  1. Members only
  2. No more than 1 short entry per day

Exit rules

  1. Long stop at 0.4 times yesterday's high-low range
  2. Short stop at 1 times yesterday's high-low range
  3. Members only
  4. Close a short when price closes below yesterday's close

Test conditions

PeriodUp to 2026-09-24
InstrumentGBP/USD, 4 hours
Spread1.5 points
Contracts1
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-09-25

Parameters

positionSize
Contracts per trade
1
maxLongTrades
Long entries allowed per day
1
maxShortTrades
Short entries allowed per day
1
longStopFactor
Long stop distance as a share of yesterday's range
0.4
shortStopFactor
Short stop distance as a share of yesterday's range
1
exitAtPrevClose
1 closes trades once price is back beyond yesterday's close
1

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
GBP/USDBest run4 hoursn/a 2,53050.122,533 USD-1,409
USD/JPYDaily0.77 1833.33-12,480 JPY-28,720
Dow JonesDailyn/a 2,39738.5112,580 EUR-7,010
Dow Jones1 hourn/a 83654.315,391 EUR-3,668
GBP/USDDailyn/a 2,33642.944,914 USD-3,508
Dow Jones10 minn/a 80752.044,326 EUR-2,556
Dow Jones3 minn/a 22953.712,876 EUR-2,097
S&P 5003 minn/a 26646.62213 EUR-195

Charts

Results by run

Net profit against max drawdown

Net profitMax drawdown
0-50K-25K10K20KDow Jones · DailyDow Jones · 1 hourGBP/USD · DailyDow Jones · 10 minDow Jones · 3 minGBP/USD · 4 hoursS&P 500 · 3 minUSD/JPY · Daily

The code

ProBuilder, rewritten to house standard

Every file in the library uses the same header, the same section order and the same variable names. The numbers above were produced by the original version before the rewrite, and the rewrite has not yet been compiled in ProRealTime.

// ============================================================
// Low Buy High Sell
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long & short
// Timeframe tested: 4 hours
// ============================================================

// --- Settings ---
DEFPARAM CumulateOrders = false

// --- Parameters ---
positionSize = 1          // contracts per trade
maxLongTrades = 1         // long entries allowed per day
maxShortTrades = 1        // short entries allowed per day
longStopFactor = 0.4      // long stop as a share of yesterday's range
shortStopFactor = 1       // short stop as a share of yesterday's range
exitAtPrevClose = 1       // 1 = close trades back at yesterday's close

ONCE longTradesToday = 0
ONCE shortTradesToday = 0

// --- Indicators ---
// Per-day trade counters.
IF IntradayBarIndex = 0 THEN
  longTradesToday = 0
  shortTradesToday = 0
ENDIF
IF LongTriggered THEN
  longTradesToday = longTradesToday + 1
ENDIF
IF ShortTriggered THEN
  shortTradesToday = shortTradesToday + 1
ENDIF

// Levels from the last completed days.
prevDayHigh = DHigh(1)
prevDayLow = DLow(1)
prevDayClose = DClose(1)
// Lowest low of the last 3 days and highest high of the last 13 days.
multiDayLow = MIN(DLow(1), MIN(DLow(2), DLow(3)))
multiDayHigh = MAX(DHigh(1), MAX(DHigh(2), MAX(DHigh(3), MAX(DHigh(4), MAX(DHigh(5), MAX(DHigh(6), MAX(DHigh(7), MAX(DHigh(8), MAX(DHigh(9), MAX(DHigh(10), MAX(DHigh(11), MAX(DHigh(12), DHigh(13)))))))))))))
prevDayRange = prevDayHigh - prevDayLow

26 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • The average trade on the best run is USD 1.00 over 2,530 trades, so spread and slippage decide whether it makes money.
  • USD/JPY daily ended at JPY -12,480.00 with a profit factor of 0.77, on only 18 trades and with a JPY 28,720.00 drawdown.
  • Profit factor was not recorded for the headline GBP/USD 4 hour run, which comes from sweep data.
  • The original entry window and Friday exit were removed, so this is not the strategy as first published.

How to load it

  1. Copy the code with the copy button above 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.

Questions

About this strategy

Does it run in ProOrder?

Yes, at 1 contract with at most 1 long and 1 short entry per day.

Where was it tested and how did it do?

GBP/USD 4 hours made USD 2,532.60 with a 50.12% win rate. Dow Jones daily made EUR 12,580.30, while USD/JPY daily was the only losing run.

What drawdown should I expect at 1 contract?

The GBP/USD 4 hour run had a max drawdown of USD 1,409.20, more than half its net profit.

Why 4 hours when the name says 15 minutes?

The 15 minute chart was not among the stored results. On 4 hour bars the daily entry cap rarely limits trades, so the system acts on most signals.

Related

Strategies like this one

SuperTrend CCI

Best run on the same market, GBP/USD.

1.72 PF · 561 trades

Monday Dip Buy

Also a mean reversion strategy.

n/a PF · 146 trades

ATR Band

Also a mean reversion strategy.

10.31 PF · 53 trades

Want to see mean reversion in a wider mix? Join the ProRealAlgos waitlist.

The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.

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