Trading Education Platform SystemSubscribe for Free
Pattern Reality Check / Bollinger squeeze
PATTERN REALITY CHECK · INDICATORS · TESTED 8 OCT 2026

Bollinger squeeze: does it work after costs?

The bands get as narrow as in the last 100 candles. Courses say a big move is coming.

No detectable edge after costs

Verdict

No detectable edge after costs

Applied mechanically to 29 coins, this rule showed no detectable edge after costs: the average is within the range of luck, and it does not beat entering at random in a way that holds up.

Average per trade+4.6%+0.046Rof the amount risked, after costs and funding. 95% range: -2.9% to +12.4%.
Trades tested3,11429 coins2020-06-22 to 2026-09-22, 4-hour candles.
Trades won37%needs 36% to break evenWins averaged +1.895R, losses -1.051R.
Against random entries100%of random runs beatenRandom entries averaged -2.9%, because costs hit every trade. Beating them is not enough: the average must also be clearly above zero.
Read with care. Slightly positive on average, but not confirmed in the held-back period: see the period chart.

Percentages are % of the amount risked per trade. New to R? Read this first.

What courses teach

The idea

The opposite use of Bollinger bands: when they are at their narrowest, volatility is "stored" and a strong move is about to start in the direction of the first breakout.

The rules we froze

These numbers are the usual textbook values. They were written before we saw a single result and were not changed afterwards.

PartRule, fixed before the test
Signal
Band width at its lowest of the last 100 candles.
Entry
Market order at the first close outside a band within 10 candles, in that direction.
Stop
The middle band at entry. At least 1 ATR from entry.
Target
Twice the distance to the stop (2R).
Time limit
Closed after 60 candles (10 days) if neither stop nor target was hit.
Costs
0.14% round trip plus real funding, charged on every trade.
What it looks like

Examples, good and bad

Two real trades picked by a fixed rule, not for being pretty, and six drawn at random from the held-back period (the most recent two years). 2 of the 6 won. Examples show the rule, they are not results: the results are the numbers further down.

Bollinger squeeze example that reached the target
Bollinger squeeze example that was stopped out
Bollinger squeeze example 1
Bollinger squeeze example 2
Bollinger squeeze example 3
Bollinger squeeze example 4
Bollinger squeeze example 5
Bollinger squeeze example 6
Results

Trade after trade

All 3,114 trades added up, with the three periods shaded. The right axis shows euros if you risked €100 on each trade. The dashed line is what random entries would have done.

Bollinger squeeze cumulative result

By period

The same average, split by period. The black bars are the 95% range: if they cross zero, we cannot tell the result from luck.

PeriodTradesAverage per tradeTrades won95% range
Build
1,494
+3.8% +0.038R
36.8%
-7.0% to +14.8%
Validation
1,064
+12.0% +0.120R
39.8%
-1.5% to +25.6%
Held-back
556
-7.7% -0.077R
33.5%
-24.4% to +10.7%
Bollinger squeeze result by period

By version

VersionTradesAverage per tradeTrades won
Long
1,506
-3.9% -0.039R
34.7%
Short
1,608
+12.5% +0.125R
39.6%

How the trades ended

Bollinger squeeze trade outcomes
The honest yardstick

Compared with entering at random

A pattern should beat luck, not zero. We ran 1,000 simulations that enter at random times on the same coins and periods, in the same direction, with the same stop distance, target and time limit.

Bollinger squeeze compared with random entries
In plain words

Why the numbers look like this

Random entries lose too. Entering at random times with the same stops and targets averaged -2.9% per trade (-0.029R) because of fees, funding and spread. The pattern averaged +4.6% and did better than 100% of 1,000 random runs. That is the honest comparison: not zero, but what luck plus costs produce.

Before costs: +10.3%. After costs: +4.6%. Fees, funding and slippage took 5.8% of the amount risked from every trade, on average.

Win rate versus break-even. It won 37.2% of trades. With average wins of +1.895R and losses of -1.051R, it needed 35.7% to break even. The win rate is above what it needs, which is what a positive result looks like.

Opposite side, same stops. Taking the opposite direction on every signal, with the same stop distance, averaged -13.5%. If the pattern carried real information, the pattern direction should beat its mirror by a clear margin. Here the gap is 18.0 percentage points.

Consistency across time. The average was positive in 2 of 3 periods. A real edge should not depend on which period you look at.

Sensitivity. Across 32 variations of the rule, 26 were positive and 6 negative. The best variation (+11.1%, 1,454 trades) is not a result: with 32 variations, a few green cells appear by chance. We look for a broad green region.

Stress tests

Does it survive changes?

Changing the pattern shape

Each cell is the same test with a different setting. The outlined cell is the rule we froze. Green is positive, red negative. We do not pick the best cell: we look for a broad region.

Bollinger squeeze sensitivity to shape

Changing the exits

Same idea for the target and the stop.

Bollinger squeeze sensitivity to exits

Changing the costs

CostsAverage per trade
No costs, funding only
+9.8% +0.098R
Half the costs
+7.2% +0.072R
Our costs (0.14% + funding)
+4.6% +0.046R
Double costs
-0.7% -0.007R
Triple costs
-6.0% -0.060R

Another timeframe

On daily candles the same rule gave +16.1% over 515 trades.

Coin by coin

21 of 29 coins had a positive average. With a few dozen trades per coin, some are always positive by chance.

Bollinger squeeze result by coin
Limits

What this does not say

  • It does not say bollinger squeeze never works. It says this version of the rule, applied to every case, shows no detectable edge after costs in this data.
  • It is a simulation. Real fills, delays and emotions make results worse.
  • The market may change. Results from the past are not a forecast.
  • We publish tests of popular patterns, we do not publish or comment on strategies we use ourselves.

Method: how we test · Errors: corrections · Education only, not investment advice.

Questions

Questions about bollinger squeeze

Does bollinger squeeze work in crypto?

In our test of 3,114 trades on 29 crypto perpetuals, with real costs and funding, the average result was +0.046R per trade (+4.6% of the amount risked). Verdict: no detectable edge after costs. This applies to the textbook rule defined on this page, not to every way of using it.

Why do I see charts where bollinger squeeze worked?

Because any rule produces winning examples. A chart that shows a winner says nothing about how often the same rule fails. The test above applies the rule to every case, with costs, without picking.

What would make this result change?

A different timeframe or market, different exits, or filters that add information the pattern does not contain. We tested a second timeframe and 32 variations of the rule; the numbers are on this page.

How should I read the percentages?

They are percentages of the amount you risk per trade, not of your account or of the coin price. +4.6% means +4.6% of the amount risked, on average. See what is R.