Join today
Strategies / Breakout / Daily Range Breakout

Daily Range Breakout With Pullback Levels

Once price has pulled back 19% of the day's range from the high, a buy stop goes in 9 points under that high, and the mirror rule sets a sell stop above the low. The day's range must stay at or under 170 and the two levels must sit at least 22 apart. Each side trades at most once a day, and the opposite level doubles as the stop after the first trade.

BreakoutLong & shortIntradayNikkei 22530 min
n/aProfit factor
25,932Net profit USD
19.92%Win rate
3,097Trades
-8,887Max drawdown
8.37Avg trade

Best run of 11. Nikkei 225, 30 min, spread 10, from run sweeps:2026-09-17-NIKKEI-30m-opt.tsv:4.

Entry rules, long

  1. Each day the range is built from the first bar after the day start
  2. Members only
  3. When price bounces 19% of the range from the low, a sell level is set 9 above the day's low
  4. Both levels exist, the day's range is at most 170 and the levels are at least 22 apart
  5. Buy stop at the buy level until a long has been taken that day

Entry rules, short

  1. Same range and level rules as for longs
  2. Members only

Exit rules

  1. Stop loss of 170 points
  2. Members only

Test conditions

PeriodUp to 2026-09-17
InstrumentNikkei 225, 30 minutes
Spread10 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-17

Parameters

positionSize
Contracts per trade
1
pullbackPct
Pullback from a range extreme that arms that side, % of range
19
maxRangePoints
Skip days whose range is already wider than this
170
entryOffset
Entry level sits this far inside the range extreme
9
minLevelGap
Minimum distance between buy and sell levels
22
stopLossPoints
Protective stop (points)
170

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
Nikkei 225Best run30 minn/a 3,09719.9225,932 USD-8,887
Silver4 hoursn/a 90637.8624,990 USD-17,219
Nasdaq 1004 hoursn/a 1,49333.829,990 EUR-4,210
Brent Crude15 minn/a 63513.707,493 EUR-2,323
Nasdaq 10015 minn/a 67011.647,158 EUR-3,309
Nikkei 2254 hoursn/a 1,59631.336,987 USD-6,663
Nasdaq 1003 minn/a 1969.183,777 EUR-2,241
Gold30 minn/a 3531.433,141 EUR-1,109
S&P 5001 hourn/a 8731.032,558 EUR-1,629
DAX 405 minn/a 12110.742,168 EUR-1,788
DAX 403 minn/a 9310.751,700 EUR-1,599

Charts

Results by run

Net profit against max drawdown

Net profitMax drawdown
0-20K-10K25K50KNikkei 225 · 30 minSilver · 4 hoursNasdaq 100 · 4 hoursBrent Crude · 15 minNasdaq 100 · 15 minNikkei 225 · 4 hoursNasdaq 100 · 3 minGold · 30 minS&P 500 · 1 hourDAX 40 · 5 minDAX 40 · 3 min

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.

// ============================================================
// Daily Range Breakout
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Breakout
// Direction: Long & short
// Timeframe tested: 30 minutes
// ============================================================

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

// --- Parameters ---
positionSize = 1          // contracts per trade
pullbackPct = 19          // pullback from a range extreme that arms that side, % of range
maxRangePoints = 170      // skip days whose range is already wider than this
entryOffset = 9           // entry level sits this far inside the range extreme
minLevelGap = 22          // minimum distance between buy and sell levels
stopLossPoints = 170      // protective stop (points)
ONCE rangeState = -1      // -1 before the first day, 0 new day, 1 range building

// --- Indicators ---
// No trading on 1 May and over Christmas / New Year.
IF (Month = 5 AND Day = 1) OR (Month = 12 AND (Day = 24 OR Day = 25 OR Day = 26 OR Day = 30 OR Day = 31)) THEN
  isTradingDay = 0
ELSE
  isTradingDay = 1
ENDIF

56 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • Profit factor was not recorded because only sweep data exists for this strategy.
  • The best run wins just 19.92% of trades, so most days end in a small loss and results lean on occasional large moves.
  • Max drawdown on the best run was USD 8,887.2 against USD 25,932.3 net profit.
  • The 170 point range filter and 170 point stop are in price units, so they mean very different things on Nikkei 225, DAX 40 or Silver.

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

Can I automate this breakout in ProOrder?

Yes. It uses stop orders and a fixed stop loss, which ProOrder handles directly. The code was rewritten after the tests and is not compile-checked yet.

Where did it perform best?

The top run was Nikkei 225 on 30 minutes with USD 25,932.3 over 3,097 trades. Silver 4 hours made USD 24,989.5 but with a USD 17,219.0 drawdown.

What drawdown should I expect with 1 contract?

On the best run 1 contract saw a max drawdown of USD 8,887.2. Smaller tests like DAX 40 5 minutes had EUR 1,788.2 drawdown on only 121 trades.

Why a 30 minute chart?

The levels depend on the day's high, low and pullback, and 30 minute bars give enough structure for that while avoiding the constant level changes of 1 or 3 minute bars.

Related

Strategies like this one

Monday Dip Buy

Best run on the same market, Nikkei 225.

n/a PF · 146 trades

Breakout Regime Filter

Also a breakout strategy.

6.28 PF · 70 trades

Bollinger Band Walk

Also a breakout strategy.

3.10 PF · 148 trades

See how other traders run intraday breakout systems. Join the ProRealAlgos community 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