The Bollinger squeeze is the best-known volatility-cycle strategy: volatility contracts and expands in turns, so when the bands pull in tight — a squeeze — a big directional move is supposedly coiling, and the close that breaks out of the contracted bands is the trigger. The appeal is the story: you are buying a quiet market on the bet that quiet precedes loud, and entering in the direction the market chooses to release.
We tested the breakout reading mechanically: detect the squeeze (band contraction), then enter on the close beyond the band in the breakout direction, with a 1.5×ATR(14) stop and a 2R target, on hourly candles from 12 months of real Binance 1-minute data on BTC and ETH — both directions, 1% risk, 0.05% commission per side, the same deterministic engine behind Secuora’s AI backtester. The headline is the standard breakout outcome: win rates around the low 30s — fine for a 2R target on paper — but both symbols lost meaningfully after costs, with deep drawdowns, because too many post-squeeze breaks were false starts that reversed straight back through the band. The two symbols landed close to each other, both clearly negative. Full numbers below.
Verified Result
Weak: the mechanical version barely cleared, or failed to clear, the fee hurdle.
| Market | TF | Trades | Win | PF | Max DD | Net |
|---|---|---|---|---|---|---|
| ETH | 1h | 505 | 31.7% | 0.80 | 58.8% | -51.4% |
| BTC | 1h | 505 | 32.5% | 0.77 | 60.7% | -58.7% |
How the SVS 29 breaks down ▾
12 months of real 1-minute data, fees on (0.05%/side), $10k start, 1% risk. How the score works →
The exact rules we tested
- Compute Bollinger Bands on hourly candles and identify a squeeze — a contraction in band width relative to its recent range.
- After a squeeze, go long on a close above the upper band; go short on a close below the lower band.
- Cross semantics — the breakout fires once on the close beyond the band, not on every bar that stays outside.
- Stop 1.5×ATR(14) from entry; target 2R.
- No session filter — crypto trades 24/7, so every post-squeeze break is taken, both directions.
- Risk 1% of equity per trade; 0.05% commission per side; 10× max notional leverage.
Results
Binance spot 1-minute klines (data-api.binance.vision), aggregated per strategy timeframe · starting balance $10,000 · risk 1%/trade · Commission 0.05% per side; no spread/slippage modeled (BTC/ETH spot spreads are sub-basis-point); position size capped at 10× notional leverage. Generated 2026-06-12 by the Secuora ai-strategy deterministic runner (same engine as the in-app AI backtester).
| Month | Trades | Win rate | Net P&L |
|---|---|---|---|
| 2025-06 | 40 | 38% | −$221 |
| 2025-07 | 44 | 27% | −$1,478 |
| 2025-08 | 36 | 31% | −$692 |
| 2025-09 | 33 | 45% | $472 |
| 2025-10 | 54 | 24% | −$1,583 |
| 2025-11 | 34 | 32% | −$290 |
| 2025-12 | 44 | 36% | −$157 |
| 2026-01 | 52 | 35% | −$380 |
| 2026-02 | 41 | 32% | −$318 |
| 2026-03 | 44 | 32% | −$349 |
| 2026-04 | 45 | 29% | −$601 |
| 2026-05 | 38 | 34% | −$277 |
| Month | Trades | Win rate | Net P&L |
|---|---|---|---|
| 2025-06 | 40 | 40% | $481 |
| 2025-07 | 41 | 27% | −$1,143 |
| 2025-08 | 43 | 21% | −$1,627 |
| 2025-09 | 44 | 36% | −$49 |
| 2025-10 | 48 | 25% | −$1,112 |
| 2025-11 | 39 | 31% | −$360 |
| 2025-12 | 41 | 37% | −$16 |
| 2026-01 | 49 | 31% | −$548 |
| 2026-02 | 42 | 33% | −$170 |
| 2026-03 | 40 | 28% | −$535 |
| 2026-04 | 38 | 29% | −$440 |
| 2026-05 | 40 | 45% | $381 |
Assumptions (how loose terms were pinned down)
- Close beyond the band after a squeeze; 1.5x ATR; 2R
The squeeze tells you when, not which way — and false breaks pay the fee
The Bollinger squeeze’s logic is half-right in a way that costs money. Volatility really does cycle, so a squeeze genuinely flags that an expansion is more likely soon — the "when" is informative. But it says nothing about direction, and trading the first close beyond the band commits you to whichever way the expansion first pokes, which is frequently a false start that snaps back through the band before the real move. That is the recurring breakout problem in concentrated form: the low-30s win rate is acceptable for a 2R target on the arithmetic, but the cluster of failed breaks plus the fee on each one dragged both symbols to a clear loss and a deep drawdown. BTC and ETH finished close together and both negative — the rule is not symbol-specific, it is structurally a coin flip on direction with costs attached.
The honest read is that the squeeze is better as a "get ready" filter than as a standalone entry. The robust improvements all attack the direction problem: wait for the break to retest and hold the band before entering rather than buying the first poke, require the breakout candle to show displacement (an outsized body) so you are taking expansions with conviction rather than drift, or let a higher-timeframe trend pick the side so you only take squeeze breaks that agree with the larger move. Each of those trims the false-break count, and the trade-off is always the same — fewer trades, hopefully better ones. This unfiltered baseline is what tells you whether a given filter actually earned its reduction in sample size.
How to backtest the Bollinger squeeze on Secuora
Bollinger Bands and the breakout condition are built-in primitives of the AI backtester, so the squeeze-breakout rule automates end to end — and the direction filters worth adding are one prompt each.
- Open /backtest/ai and describe it in plain English: "after the Bollinger Bands contract, go long on a close above the upper band and short on a close below the lower band, 1.5×ATR stop, 2R target, hourly candles." It compiles to the same engine that produced this page.
- Run it on BTC and ETH with costs on and confirm you reproduce the net-negative, deep-drawdown result above — the signature of a direction-blind breakout.
- Attack the false breaks one variable at a time: require a displacement candle on the break, wait for a retest of the band, or only take the break that agrees with a higher-timeframe trend — and watch the win rate and drawdown respond.
- Sign up free and use the replay terminal — add the Bollinger Bands indicator and replay a few squeezes bar by bar with simulated orders to see how many breaks failed before one held.
- Journal the squeeze breaks you would actually trade, with the confluence and rules-followed fields filled in, so the filtered version you risk money on is the version you tested.
Methodology, in one paragraph
Data: Binance spot 1-minute klines (data-api.binance.vision), aggregated per strategy timeframe, June 1, 2025 – June 1, 2026 (12 months). Execution: Secuora’s deterministic strategy runner (the same engine behind the in-app AI backtester) — single position at a time, entries at the close of the signal candle, commission 0.05% per side; no spread/slippage modeled (btc/eth spot spreads are sub-basis-point); position size capped at 10× notional leverage, starting balance $10,000, 1% risk per trade. Swings are confirmed fractals with no look-ahead. These are mechanical results: no discretion, every signal taken. Past performance does not predict future results; this is research, not financial advice.
Frequently asked questions
What is the Bollinger squeeze breakout strategy?
Bollinger Bands widen and narrow with volatility. A squeeze is a period when they contract tightly, taken as a sign that volatility is coiling for a larger move. The breakout strategy waits for that squeeze, then enters on the close that breaks out of the contracted bands — long above the upper band, short below the lower — riding the volatility expansion.
What win rate does the Bollinger squeeze have?
Around the low 30s on hourly BTC and ETH in our test — normal for a 2R breakout, where winners only need to be roughly twice the size of losers. But after costs both symbols lost clearly with deep drawdowns, because too many post-squeeze breaks were false starts. The exact figures are in the results table above.
Does the Bollinger squeeze work on crypto?
Not as a raw, direction-blind breakout — it lost on both BTC and ETH after costs in our 12-month test. The squeeze reliably flags that an expansion is coming but not which way it goes, so trading the first break catches many false starts. Direction filters (displacement, a retest, a higher-timeframe trend) are the standard fixes, and this baseline is what they have to improve on.
How do I backtest the Bollinger squeeze myself?
Two ways on Secuora: describe the rule in plain English at /backtest/ai — Bollinger Bands and the breakout condition are built-in primitives that compile to the same deterministic engine used here — or sign up free, add the Bollinger Bands indicator in the replay terminal, and trade the squeeze breaks bar by bar with simulated stop-loss and take-profit orders.
