Join today
Strategies / Breakout / Tight Range Breakout

Tight Range Breakout Strategy

Three closes in a row that stay inside the previous bar range signal a coiled market. When the close then breaks above the highest high of the previous four bars, the system buys. Exits use a 2 x ATR(14) stop and a 2.5 x ATR(14) target, reset every bar.

BreakoutLong onlySwingDow Jones1 hour
n/aProfit factor
4,854Net profit EUR
46.22%Win rate
463Trades
-2,531Max drawdown
10.48Avg trade

Best run of 6. Dow Jones, 1 hour, spread 3, from run sweeps:2026-09-22-DOW30-1h-opt.tsv:2.

Entry rules, long

  1. Each of the last three closes stayed inside the previous bar's high-low range
  2. Members only
  3. The bar does not open on a Monday or Sunday

Exit rules

  1. Stop loss of 2 x ATR(14), in points
  2. Members only

Test conditions

PeriodUp to 2026-09-22
InstrumentDow Jones, 1 hour
Spread3 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-22

Parameters

positionSize
Contracts per trade
1
skipDayA
No entries on bars opening on Monday
1
skipDayB
No entries on bars opening on Sunday
0
atrPeriod
ATR length for stop and target
14
stopAtrMultiplier
Stop distance in ATRs
2
targetAtrMultiplier
Target distance in ATRs
2.5

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
Dow JonesBest run1 hourn/a 46346.224,854 EUR-2,531
USD/JPYDailyn/a 11850.004,550 JPY-1,640
US Crude OilDailyn/a 11948.743,120 EUR-1,815
DAX 404 hoursn/a 37648.142,855 EUR-2,694
S&P 500Dailyn/a 15541.94946 EUR-393
S&P 5004 hoursn/a 37846.56707 EUR-580

Charts

Results by run

Net profit against max drawdown

Net profitMax drawdown
0-5K-3K3K5KDow Jones · 1 hourUSD/JPY · DailyUS Crude Oil · DailyDAX 40 · 4 hoursS&P 500 · DailyS&P 500 · 4 hours

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.

// ============================================================
// Tight Range Breakout
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Breakout
// Direction: Long only
// Timeframe tested: 1 hour
// ============================================================

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

// --- Parameters ---
positionSize = 1              // contracts per trade
skipDayA = 1                  // no entries on bars opening on Monday
skipDayB = 0                  // no entries on bars opening on Sunday
atrPeriod = 14                // ATR length for stop and target
stopAtrMultiplier = 2         // stop distance in ATRs
targetAtrMultiplier = 2.5     // target distance in ATRs

// --- Indicators ---
blockedDay = (OpenDayOfWeek = skipDayA) OR (OpenDayOfWeek = skipDayB)

// Each of the last three closes stayed inside the range of the bar before it
tightRange = close[3] <= high[4] AND close[3] >= low[4] AND close[2] <= high[3] AND close[2] >= low[3] AND close[1] <= high[2] AND close[1] >= low[2]

// Highest high of the four bars before this one
recentHigh = max(max(high[4], high[3]), max(high[2], high[1]))

atrValue = AverageTrueRange[atrPeriod](close)

11 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • Profit factor was not recorded, because only sweep data exists.
  • The win rate is 46.22% on the best run, so the slightly larger target has to carry the results.
  • DAX 40 4 hours made EUR 2,854.90 with a EUR 2,694.20 drawdown, almost the same size.
  • Stop and target move with ATR on every bar, so the exit levels can drift after entry.

Indicators used

ATR

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 it run in ProOrder?

Yes, long only at 1 contract, with the ATR stop and target coded in.

Which markets were tested?

Dow Jones 1 hour made EUR 4,854.30 over 463 trades. USD/JPY, US Crude Oil, DAX 40 and S&P 500 runs were all profitable too.

What drawdown should I plan for?

On Dow Jones 1 hour the max drawdown was EUR 2,531.20 at 1 contract.

Why the 1 hour chart?

Inside-bar squeezes form often on hourly Dow Jones bars, giving 463 trades, while daily runs traded between 118 and 155 times.

Related

Strategies like this one

ATR Band

Uses the same indicator.

10.31 PF · 53 trades

Navigator

Best run on the same market, Dow Jones.

2.93 PF · 181 trades

Breakout Regime Filter

Also a breakout strategy.

6.28 PF · 70 trades

Breakouts are one part of a portfolio. Join the ProRealAlgos waitlist to see the rest.

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