John Bollinger introduced his eponymous bands in the 1980s as a way to visualise volatility around a moving average. The construction is simple: take a 20-period simple moving average of price, calculate the standard deviation of price over the same window, and plot two bands at +2 and −2 standard deviations from the average.
What gets lost in retail explanations is the statistical meaning. Under a normal distribution, prices stay within ±2 standard deviations roughly 95% of the time. So a "Bollinger Band touch" — price reaching the upper or lower band — is a 5% event. That sounds rare until you remember price distributions are not normal, especially in crypto, where fat tails make extreme readings considerably more frequent than 5%.
This article walks through what the bands actually measure, why touches are over-rated, why width is under-rated, and how Stryqe's BB Squeeze indicator uses width percentile to identify high-conviction breakout setups.
The construction
std = standard deviation of (close, 20)
upper = mid + 2 × std
lower = mid − 2 × std
width = (upper − lower) / mid // normalised width
The middle band is just a 20-period moving average — a noise-filtered "where price has been on average lately" reference. The upper and lower bands are dynamic envelopes that expand when price has been volatile and contract when it's been quiet. Width is normalised by dividing by the middle band; this makes the metric comparable across coins with very different absolute prices.
Why touches don't matter much
The most common Bollinger Bands rule is "buy the lower band, sell the upper band." It is, again, a rule that loses money on average. The reason is that the bands are derived from price: when price moves aggressively, the bands widen along with it. Aggressive moves push price toward the band, but the band moves with the price. Selling every upper-band touch in an uptrend is selling strength repeatedly, exactly the same problem RSI's 30/70 rule has.
What's worth noting about touches is the concept of walking the band. In a strong trend, price doesn't briefly tag the upper band and reverse — it stays glued to the upper band for many candles, with the band itself rising along with price. Walking the upper band is one of the highest-conviction "this trend is real" signals in technical analysis. It is the opposite of a reversal indicator.
The CII engine emits BB = BUY only when (a) price is in the lower 10% of the band range, AND (b) the strong-uptrend filter is active (price above 20/50/200 MAs). It emits BB = SELL on a touch above the 95th percentile of the band range. This is a much narrower trigger than naive rules, and the strong-uptrend filter prevents the engine from buying lower-band touches in a downtrend (i.e., catching falling knives).
What width tells you
The information density of Bollinger Bands is in the width, not the price's position. Width is a direct measure of recent volatility — a high width means price has been moving aggressively, a low width means price has been quiet. And here's the empirical observation that makes width useful:
Volatility is mean-reverting. Periods of compression are followed by periods of expansion, and vice versa. A market that has been quiet for 100 candles is statistically more likely to be loud for the next 20 than to stay quiet indefinitely. The energy doesn't disappear — it just builds up under the surface until something releases it.
This is the foundation of the Bollinger Squeeze: when band width drops to historically low levels, the market is likely about to break out — in some direction. The bands are not predicting which way the breakout goes; they're saying that the current quiet phase is unusual and will probably resolve into movement.
Stryqe's squeeze detection
The engine's squeeze detector doesn't use a fixed width threshold (e.g. "width < 0.04"). A fixed threshold would mean different things on different coins — Bitcoin's typical width is much narrower than a small-cap alt's. Instead, it uses a percentile approach over a 120-candle lookback:
// Sort all 100 widths ascending. Find current width's rank.
// Convert rank to percentile (0 = quietest, 100 = loudest).
isSqueeze = currentWidthPercentile < 20
expanding = currentWidth > previousWidth
A squeeze is flagged only when current width is in the bottom 20% of recent widths — i.e., the market is quieter now than at least 80% of the recent period. This is genuinely rare: on most coins, on most days, the squeeze flag is off. When it flips on, attention is warranted.
The expanding flag is the second half of the trigger. A squeeze that's still tightening hasn't broken out yet; the trade isn't on. A squeeze where width has just started increasing — meaning a candle has just made a larger move than the recent average — is the breakout candle itself, the moment of release. The engine emits BB Squeeze = BUY only when both isSqueeze and expanding are true, AND the strong-uptrend filter is active.
The OBV combo bonus
BB Squeeze has the highest combo bonus in the entire CII scoring layer:
THEN comboBonus += 15
The +15 reflects the empirical observation that squeeze breakouts confirmed by volume direction have outperformed the average ALIGNED signal in historical backtests. The causal story is intuitive: a squeeze breakout on volume is real demand expressing itself after a quiet accumulation phase. A squeeze breakout without volume is more likely to be a thin-liquidity wick that fades.
Pairing BB Squeeze with OBV (rather than, say, with raw volume) matters. OBV measures the direction of recent volume — whether it's been concentrated on up-candles or down-candles — not just the magnitude. A high-volume down-candle does not confirm an up-breakout; only directional confirmation does.
What Bollinger Bands cannot tell you
1. Direction of the breakout
The squeeze does not say "up." It says "the market is about to move." About 60–70% of squeeze breakouts in liquid crypto trend in the direction of the higher-time-frame trend, which is why Stryqe gates the BB Squeeze BUY signal on the strong-uptrend filter — but breakouts can fail or reverse, and the bands themselves carry zero information about which side will win.
2. Magnitude of the breakout
A squeeze can resolve into a 1% wick or a 30% rally. The width tells you something is coming; it does not tell you how big. The take-profit and stop-loss on a squeeze trade should be set by ATR-based geometry (which Stryqe does, at 2.5× ATR TP and 1.5× ATR SL), not by Bollinger Band positioning.
3. Time horizon
A squeeze on the hourly chart resolves over hours. A squeeze on the daily chart resolves over weeks. The indicator carries no information about when the move comes, only that it is statistically likely. Trading squeezes without a time-bounded plan can mean watching a position bleed friction for days while waiting for the move that "should" be coming.
Volatility mean-reverts on average, not always. Markets can stay compressed longer than seems reasonable, especially during low-conviction periods (holiday seasons, summer doldrums in equities, post-rally consolidation in crypto). Treat the squeeze as a probability shift, not a guarantee.
Bollinger Bands and mean reversion vs continuation
One of the more confusing features of Bollinger Bands is that they support both mean-reversion strategies (fade the band) and continuation strategies (ride the band). Both work — in different regimes:
- Mean reversion works in range-bound markets. When price is oscillating within a defined range with no clear directional bias, lower-band touches do tend to bounce and upper-band touches do tend to fade. The bands act as soft support/resistance.
- Continuation works in trending markets. When price is in an established trend, "walking the band" (riding the upper band higher in an uptrend, or the lower band lower in a downtrend) is the default behaviour. Trying to fade band touches in a trend is reliably a losing strategy.
The hard part is determining which regime you're in. The cleanest cue: if the 200-period EMA is sloping clearly up or down, you're in a trend; if it's sideways, you're in a range. Stryqe's engine implicitly handles this by gating BB BUY signals on the strong-uptrend filter — the engine simply doesn't take mean-reversion BB trades in strong trends, because they're more likely to be falling-knife setups than bounce setups.
The bottom line
Bollinger Bands are a volatility envelope, not an overbought/oversold indicator. The most useful information they carry is the band width, which is a direct measure of recent volatility and tends to mean-revert. A genuine squeeze — width below the 20th percentile of recent history — is statistically followed by an expansion phase, and a squeeze breakout confirmed by directional volume is one of the highest-conviction setups available in technical analysis.
The bands themselves don't predict direction. That's what trend filters, momentum indicators, and confluence engines are for. Bollinger Bands' job is to tell you when the market is wound up; the rest of the toolkit tells you which way it's likely to release.