Skip to content

AI analysis

Bollinger Bands crypto squeeze: measure before the breakout

A close can break the prior candle's upper band and still fail a current-band rule. Reconstruct the numbers before treating compression as a trade signal.

Ivory paper ribbons pinch around a lime sphere before opening into two balanced paths.
Illustration for ai analysis; examples in this article are educational.

A Bollinger Bands crypto squeeze means the bands are unusually narrow relative to the same market's recent history. It describes price compression, not the direction or timing of the next move. Define the BandWidth calculation, historical comparison and breakout rule separately, then test them on closed candles with execution costs before treating the setup as actionable.

A chart that looks tightly coiled leaves several decisions unanswered. Is the width actually unusual? Which exchange and timeframe supplied the candles? Does a breakout mean touching the prior candle's band or closing outside the current candle's recalculated band? Those choices can produce different signals from the same prices.

Measure the squeeze before choosing a direction

With a conventional 20-period setup, the middle band is the simple average of 20 prices. The upper and lower bands sit two standard deviations above and below that average. These are defaults, not settings proven optimal for every crypto pair. TradingView's Bollinger Bands documentation describes the calculation and configurable inputs.

Use the same price source and window for the average and dispersion calculation. Record whether your implementation divides squared deviations by the window length or by one less; small differences can change a threshold decision. The worked example below explicitly uses the population calculation, dividing by 20.

BandWidth converts the envelope into a comparable reading:

BandWidth percent = (upper band − lower band) / middle band × 100

Its relevance depends on the instrument and timeframe. A 2% reading might be unusual for one series and ordinary for another. TradingView's BandWidth documentation emphasizes comparing narrowness with the series' own history. The normalization removes the price unit; it does not make a universal crypto squeeze threshold.

Nor does a band touch establish a reversal. John Bollinger's published rules distinguish tags from signals and explain that price can follow a band during a trend. Two standard deviations also do not establish a 95% probability range for future crypto prices. Bollinger's rules explicitly caution against statistical assumptions based on the construction.

Write the historical comparison in bars

The BollingerBands.us stock screener describes a squeeze as the lowest BandWidth in six months, and warns that a fixed width alone does not establish one. That is the definition of that screener. Its screening documentation provides the context.

For crypto research, specify the actual bar count and calendar coverage. One hundred twenty consecutive hourly intervals cover five days; 120 daily intervals cover 120 days. Neither is automatically interchangeable with a six-month stock-market lookback. Missing observations also mean that a row count may cover a different span than intended.

Choose a definition before inspecting the result. A rolling minimum asks whether this is the narrowest reading in a window. A percentile rule asks how many historical readings were at least as narrow. They are different experiments. Do not rename one as the other because both produce a squeeze marker.

Use a fixed venue, symbol, spot or derivative market, candle interval and timezone. A width computed from one exchange's spot candles should not silently become the entry boundary for another exchange's perpetual contract. Multi-timeframe crypto analysis covers the additional timing problems when intervals are combined.

A squeeze worksheet with reproducible arithmetic

This is a hypothetical research fixture, not market data, a performance result or a recommended strategy. Take 20 completed hourly closes in this order: ten at $99.50 followed by ten at $100.50.

CalculationResult
Mean(10 × 99.50 + 10 × 100.50) / 20 = $100
Population variance(20 × 0.50²) / 20 = 0.25
Standard deviation√0.25 = $0.50
Upper and lower bands$100 ± 2 × $0.50 = $101 and $99
BandWidth(101 − 99) / 100 × 100 = 2%

For illustration, assume a separate, validated history supplies 120 previous BandWidth readings and exactly six are less than or equal to 2%. Define the comparison score as 100 × count(previous widths ≤ current width) / 120. The score is 100 × 6 / 120 = 5%.

An experimental rule that arms when this score is 10% or lower therefore arms here. The formula excludes the current reading from the historical comparison and includes ties in the count. Those details remove ambiguity about equality and percentile conventions. They do not prove that 10% is a useful cutoff.

The history assumption is separate from the 20-close arithmetic fixture: this compact example does not supply all prior candles or demonstrate historical frequency. A real test must retain the underlying records, including enough warmup data to calculate every historical width. See the crypto backtest data-quality audit before interpreting compression in a downloaded file.

The next close can break the old band and fail the rule

Now remove the oldest $99.50 close and append a new completed close of $101.15. The updated mean is $100.0825, and population standard deviation is approximately $0.544811. The recalculated upper band is approximately $101.172121.

The new close exceeds the previous $101 upper band but remains below the current upper band. A rule requiring current close > current upper band does not trigger. A rule requiring current close > previous upper band does. Both can be defined causally; they express different hypotheses.

Freeze the boundary convention before testing. Also keep a candle's temporary high separate from its final close. A live candle can cross a band and return inside before completion. The look-ahead bias guide explains why a finalized value cannot be used before it becomes available.

Turn one marker into an observable test

If compression is meant to change whether a broader strategy may enter, define that permission separately. The volatility-regime filter worksheet shows how to record eligibility, state transitions and missing-data behavior instead of letting a chart label silently control trading.

A compact research specification can separate setup, trigger and execution:

DecisionExample rule to freeze
SetupArm after a completed candle has a comparison score of 10% or lower
DirectionObserve the first subsequent close above its current upper band or below its current lower band
ExpiryExpire the setup after three subsequent completed candles without a trigger
Repeated markersAllow one armed setup; re-arm only after the score first exceeds 10% and later returns to 10% or lower
Execution timingEvaluate after receiving the completed candle; model the next available executable price
Risk decisionSpecify sizing, invalidation, exits and maximum holding time before simulating orders

These are example parameters to investigate. The worksheet is incomplete as a trading strategy until its risk and exit fields are filled. A trigger does not establish an available fill, and a close-confirmation rule cannot assume a fill at that same historical close. Add spread, slippage, fees and any relevant derivative funding. Freeze the full procedure for walk-forward testing, including the choices that failed.

Why a squeeze can mislead

A low width can persist while price remains rangebound. A qualifying breakout can reverse immediately. Waiting for extra confirmation can change which reversals occur, while delaying entries and changing their cost; it needs a separate test rather than a promise of safety.

An apparently quiet series can also contain stale prices or candles with little trading activity. Validate freshness and market activity before interpreting a near-zero deviation. If the middle band is zero or invalid, the width calculation is unusable. A completely flat window produces zero band separation, so any additional calculation that divides by that separation needs an explicit undefined-value policy.

Finally, a large old move leaving the rolling window can narrow the bands even without a new change in current trading conditions. The EMA versus SMA memory worksheet isolates how an old observation leaving a fixed window changes a price summary. Inspect the underlying closes around a sudden width drop. Record whether the subsequent observations support the intended compression hypothesis, and keep inconclusive setups in the research record. The useful output is a rule you can reconstruct, including the occasions when no trade was justified.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.