The thing that took me too long to accept about Bollinger Bands is that a narrow band tells you almost nothing on its own. A chart can look tight to your eye and still be nowhere near its quietest state. Some instruments live in permanently wide bands, some live in permanently narrow ones, and comparing two of them by eye is a waste of time. What matters is not how wide the bands look. It is how wide they are compared to how wide they usually get on that same instrument, on that same timeframe. Once I started measuring the squeeze against its own history instead of squinting at it, most of the guesswork went away.
A squeeze is just a stretch where volatility has contracted hard. Price has stopped making big moves, the standard deviation the bands are built on has collapsed, and the bands pull in toward the moving average. That contraction does not last. Volatility is mean-reverting, so a very quiet market tends to get loud again, and the squeeze is you trying to be positioned before the loud part starts. The trade is not the squeeze itself. It is the expansion that follows it.
Measuring the squeeze objectively
Start with band width. Take the upper band minus the lower band, then divide by the middle band so the number is normalized and comparable across price levels. That gives you a percentage width you can track over time. Now the useful part. Instead of asking whether that number is small, ask where it sits in its own recent range. I like to look back roughly six months of bars on whatever timeframe I am trading and find the lowest band width in that window. When current width is at or near that floor, you have a real squeeze. When it is somewhere in the middle, you have a quiet market and nothing more.
The clean way to automate this is a percentile. Rank the current band width against, say, the last 120 or so readings. If it is in the bottom fifth of that distribution, flag it. That turns a vague feeling into a rule you can backtest and a rule you can walk away from without second-guessing. It also stops you from calling a squeeze on an instrument that is simply a low-volatility name to begin with, because you are always comparing it to itself.
Confirming with Keltner Channels
Band width percentile is good, but the confirmation I trust most is the relationship between Bollinger Bands and Keltner Channels. This is the core of what most people call the squeeze indicator. Bollinger Bands are built on standard deviation, so they react sharply to price swings. Keltner Channels are built on average true range, so they move more slowly and steadily. When volatility collapses, the standard deviation shrinks faster than the ATR does, and the Bollinger Bands actually pull inside the Keltner Channels.
That crossover is your objective squeeze signal. Bands inside the channels means the market is coiled. The moment the Bollinger Bands push back outside the Keltner Channels is the release, the point where volatility is expanding again. I do not treat the release as an automatic entry, but I do treat it as the starting gun. Before that, I am watching. After that, I am looking for a reason to act. If you only take one thing from this, take the habit of overlaying both and watching for the bands to slip inside the channels and then break back out.
Reading which way it breaks
The bands do not tell you direction. They tell you that energy is building and roughly when it releases. Direction you have to read from the price structure inside the squeeze. A few things I look at, roughly in order of how much I weight them:
- Where price sits relative to the middle band. If price is coiling in the upper half of the range through the whole squeeze, the odds lean up. Lower half, they lean down.
- The slope of the moving average the bands are built on. A flat middle band is a true two-sided coin. A gently rising or falling one already has a lean.
- The higher timeframe trend. A squeeze on a four-hour chart that sits inside a clean daily uptrend is more likely to resolve up, and I size accordingly.
- Volume and momentum drift. Quiet accumulation, higher lows on momentum while price goes sideways, tends to precede an upside release.
None of these are certainties. They shift the probability, and when two or three of them agree, I am willing to lean into the direction rather than wait for the break to prove itself. When they disagree, I wait for the actual expansion candle and go with it instead of guessing.
The head-fake and the entry
The failure pattern that costs people the most is the head-fake. Right as the squeeze releases, price often pokes hard in one direction, sweeps the obvious stops, and then reverses and runs the other way for the real move. John Bollinger himself flagged this years ago, and it is brutal if you chase the first candle. The first thrust out of a long squeeze is the one most likely to be a trap.
The way I handle it is to not treat the first break as gospel. If price breaks up, I want to see it hold above the breakout level for a bar or two, or come back, hold the middle band as support, and go again. That second confirmation costs a little bit of the move but saves you from the majority of head-fakes. A practical entry checklist looks like this. Band width in the bottom fifth of its six-month range. Bollinger Bands have been inside the Keltner Channels. Bands push back outside on expanding range. Price closes beyond the squeeze range in the direction your structure already favored. Stop goes on the other side of the squeeze, because if price re-enters the coil, your read was wrong and there is no reason to sit in it.
Why timeframe changes everything
A squeeze on a five-minute chart and a squeeze on a daily chart are not the same trade wearing different clothes. The longer the market coils, the more energy it stores, and higher timeframes coil for longer. A daily squeeze that has been building for weeks tends to produce a move with real follow-through, something you can hold. A five-minute squeeze might give you a quick pop and then chop you to death. I trade lower-timeframe squeezes small and fast, and I save real size for the higher-timeframe ones where the payoff justifies the wider stop. When a daily squeeze and a lower-timeframe squeeze line up in the same direction, that is the setup I actually wait for.
Squeezes fire across a lot of instruments at once, and scanning them by eye does not scale. This is the kind of thing worth encoding once as a band-width percentile plus a Keltner cross and then running across your whole watchlist, which is exactly the sort of screen we build into Blockcircle's scorecards so you are looking at ranked candidates instead of flipping through charts. However you do it, the point is the same. Stop trusting how narrow the bands look, start measuring how narrow they are relative to their own past, and let the release tell you when to care.