Join waitlist
Strategies / Breakout / Volatility Compression Breakout

Volatility Compression Breakout

The strategy buys when price breaks above the prior 20-bar high after Bollinger band width was compressed, with above average volume and a close above the 200-bar average. It exits at market when the close falls below the higher of a fixed stop and a trailing stop.

BreakoutLong onlySwingNasdaq 1001 hour
1.44Profit factor
9,781Net profit EUR
40.72%Win rate
447Trades
-1,694Max drawdown
21.88Avg trade

Best run of 24. Nasdaq 100, 1 hour, spread 3, from run pf:2026-10-04-NAS100-1h.tsv:1.

Entry rules, long

  1. Band width (20 periods, 2 standard deviations) ranks below 25 over the previous 126 bars on any of the last 5 bars.
  2. Volume is above its 20-bar average and the close is above the 200-bar average.
  3. A long position opens at market when all conditions are met and no long position is open.

Exit rules

  1. The fixed stop is the signal close minus 2 times the 22-bar ATR, set when the trade opens.
  2. The trailing stop is the highest close since entry minus 3 times the current 22-bar ATR.

Test conditions

PeriodUp to 2026-10-04
InstrumentNasdaq 100, 1 hour
Spread3 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-04

Every run

Markets and timeframes tested

MarketTimeframePFTradesWin %NetMax DD
Nasdaq 100Best run1 hour1.44 44740.729,781 EUR-1,694
USD/JPY1 hourn/a 62635.30362,980 USD-153,220
USD/JPY30 minn/a 1,22636.62348,940 USD-144,870
USD/JPY10 minn/a 1,15332.3598,790 USD-79,900
Silver4 hoursn/a 17639.7719,649 USD-17,035
Nikkei 225Dailyn/a 2744.4416,518 USD-6,005
Nikkei 2254 hoursn/a 10838.8912,027 USD-5,184
Nikkei 2251 hourn/a 36934.6911,439 USD-5,840
Nasdaq 100Dailyn/a 2560.009,199 EUR-2,140
Nasdaq 10030 minn/a 95336.946,130 EUR-3,001
DAX 401 hourn/a 40738.085,989 EUR-1,854
Dow Jones4 hoursn/a 6435.945,324 EUR-4,144
Dow Jones5 minn/a 86833.764,047 EUR-1,629
Brent CrudeDailyn/a 1662.503,773 EUR-3,131
Brent Crude4 hoursn/a 10139.603,270 EUR-2,315
Nasdaq 1004 hoursn/a 11338.942,977 EUR-2,221
Gold30 minn/a 1,16434.021,722 EUR-520
Gold4 hoursn/a 20837.021,376 EUR-745
S&P 5004 hoursn/a 10246.081,106 EUR-624
S&P 500Dailyn/a 2347.831,100 EUR-633
GoldDailyn/a 3435.29996 EUR-456
S&P 5001 hourn/a 44039.32980 EUR-506
Gold1 hourn/a 62333.23740 EUR-635
Gold15 minn/a 1,17731.44735 EUR-550

Charts

Results by run

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

Net profitMax drawdown

The code

ProBuilder code, as tested

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

DEFPARAM CumulateOrders = false

ONCE entrystop = 0
ONCE hwm = 0

basis = Average[20](close)
dev = STD[20](close) * 2.0
bbw = (2.0 * dev) / basis * 100.0
myAtr = AverageTrueRange[22](close)
smat = Average[200](close)

35 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

ATRBollinger BandsDonchian ChannelStandard DeviationSMAVolume
Longer historyRe-run on up to 1,000,000 barsNasdaq 100 · 1 hour · older data 91.30 EUR

Nasdaq 100 had no history beyond the standard run, so both runs used 114,000 bars.

Nasdaq 100 · 1 hour

Bars available114,000
Net, standard 200,000-bar run9,780.70 EUR
Net, long run9,872.00 EUR
Net on the older data alone91.30 EUR
Read this firstKnown weaknesses2 points
  • Results include the spread only. Commissions and overnight financing are not included.
  • The code is published as it was backtested and has not been compiled again since.

Questions

About this strategy

Can I run Volatility Compression Breakout 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 24 market and timeframe combinations. The best run was Nasdaq 100, 1 hour, with a profit factor of 1.44 over 447 trades.

How large was the drawdown?

The best run had a maximum drawdown of 1,694 EUR at the tested position size, against a net result of 9,781 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

Volatility Spike Regression Long

Best run on the same market, Nasdaq 100.

1.22 PF · 1,850 trades

ADX Filtered Box Breakout

Also a breakout strategy.

1.44 PF · 491 trades

Want strategies that are already part of a live portfolio? Join the ProRealAlgos waitlist.

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