Join today
Strategies / Mean reversion / Breakout Failures

Breakout Failures: Betting Against 8-Bar Channel Breaks

Breakout Failures sells when price closes above the highest high of the last 8 bars and buys when it closes below the lowest low. Winners are taken at 15 x ATR(12). A trade that moves 10 x ATR(12) against it is reversed instead of stopped out.

Mean reversionLong & shortIntradayGBP/USD15 min
1.17Profit factor
6,787Net profit USD
48.19%Win rate
911Trades
-1,493Max drawdown
7.45Avg trade

Best run of 14. GBP/USD, 15 min, spread 1.5, from run pf:2026-09-24-GBPUSD-15m.tsv:1.

Entry rules, long

  1. Members only
  2. Or: a short is open and price has risen more than 10 x ATR(12) above the short entry (flip to long)

Entry rules, short

  1. Members only
  2. Or: a long is open and price has fallen more than 10 x ATR(12) below the long entry (flip to short)

Exit rules

  1. Members only
  2. Losing trades are reversed rather than stopped out
  3. No stop loss

Test conditions

PeriodUp to 2026-09-25
InstrumentGBP/USD, 15 minutes
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
channelPeriod
Channel length
8
atrPeriod
ATR length
12
targetAtrMultiplier
Profit target in ATRs
15
flipAtrMultiplier
Adverse move in ATRs that flips the position
10

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
GBP/USDBest run15 min1.17 91148.196,787 USD-1,493
USD/JPYDailyn/a 6944.931,448,470 JPY-1,420,760
USD/JPY1 hourn/a 53244.74595,090 JPY-496,400
USD/JPY4 hoursn/a 12944.96575,280 JPY-280,920
USD/JPY30 minn/a 79645.23526,440 JPY-304,600
SilverDailyn/a 3751.3531,474 USD-27,932
GBP/USDDailyn/a 6352.3828,669 USD-8,467
Brent Crude10 minn/a 95245.9014,113 EUR-7,158
DAX 40Dailyn/a 10443.2712,664 EUR-7,303
FTSE 100Dailyn/a 4555.568,671 EUR-2,961
FTSE 10030 minn/a 94844.305,388 EUR-2,621
GoldDailyn/a 5949.152,524 EUR-868
Gold1 hourn/a 51343.861,787 EUR-1,365
GBP/USD3 minn/a 73942.491,047 USD-825

Charts

Results by run

Net profit against max drawdown

Net profitMax drawdown
0-2.0M-1.0M1.0M2.0MUSD/JPY · DailyUSD/JPY · 1 hourUSD/JPY · 4 hoursUSD/JPY · 30 minSilver · DailyGBP/USD · DailyBrent Crude · 10 minDAX 40 · DailyFTSE 100 · DailyGBP/USD · 15 minFTSE 100 · 30 minGold · DailyGold · 1 hourGBP/USD · 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.

// ============================================================
// Breakout Failures
// ProRealAlgos Strategy Library  |  prorealalgos.com
// Type: Mean reversion
// Direction: Long & short
// Timeframe tested: 15 minutes
// ============================================================

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

// --- Parameters ---
positionSize = 1             // contracts per trade
channelPeriod = 8            // channel length
atrPeriod = 12               // ATR length for target and flip distance
targetAtrMultiplier = 15     // profit target in ATRs
flipAtrMultiplier = 10       // adverse move in ATRs that flips the position

ONCE flipDistance = 0        // read one bar before it is recalculated, see Exit rules

// --- Indicators ---
// Channel lines are the previous bar's highest high / lowest low.
channelHigh = Highest[channelPeriod](high)
channelLow = Lowest[channelPeriod](low)
upperBand = channelHigh[1]
lowerBand = channelLow[1]
channelReady = BarIndex > channelPeriod + 1
atrValue = AverageTrueRange[atrPeriod](close)

23 more lines: the entry and exit rules.

Read this first

Known weaknesses

  • There is no stop loss. Losing positions flip to the other side, so the system is almost always in the market once it starts.
  • The edge in the best run is thin: profit factor 1.17 and an average trade of 7.45 USD on GBP/USD 15 minutes.
  • USD/JPY results show drawdowns almost as large as the profit, for example 1,420,760 JPY of drawdown against 1,448,470 JPY of profit on Daily.
  • Profit factor was not recorded for the other markets in the table, which only have sweep data.

Indicators used

Donchian ChannelATR

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

Yes. Entries, flips and the ATR target are all automated. Remember the code has no stop, so any account limit must come from your own risk settings.

Where was it tested?

The best run was GBP/USD on 15 minutes with 6,786.90 USD net profit and a 1,493 USD max drawdown. It was also run on USD/JPY, Silver, Brent Crude, DAX 40, FTSE 100 and Gold across several timeframes.

What size was used in testing?

One contract per trade with a 1.5 point spread. At that size the GBP/USD 15 minute run had a max drawdown of 1,493 USD.

Why test so many timeframes?

A failed breakout can happen on any chart, so it was checked from 3 minutes up to Daily. The headline figures come from the 15 minute chart.

Related

Strategies like this one

ATR Band

Uses the same indicator.

10.31 PF · 53 trades

SuperTrend CCI

Best run on the same market, GBP/USD.

1.72 PF · 561 trades

DAX Survivor

A similar profit factor.

1.17 PF · 1,514 trades

Join the ProRealAlgos waitlist to follow how reversal systems like this are tested.

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