How the Squeeze Works: Bollinger Bands Inside Keltner Channels
The squeeze looks complicated on a chart, but it measures one simple thing: whether a stock has gone quiet enough that its Bollinger Bands have contracted inside its Keltner Channels. That is the whole mechanism. Once you can see it, the colored dots stop being mysterious and start telling you something specific about volatility. Here is how the formula works, tier by tier, and how we run the same math live across the entire market. If you just want the plain-language definition first, start with What Is the Squeeze?
The two ingredients: Bollinger Bands and Keltner Channels
Every squeeze is built from two sets of bands drawn around the same 20-period moving average. They look similar on a chart, but they measure different things, and the trick is that they react to different kinds of quiet.
Bollinger Bands measure how far closing prices scatter. They sit a set number of standard deviations from the average, typically two, so they widen when closes spread out and pull in tight when closes bunch together. Keltner Channels measure something else entirely: the average size of each bar’s high-to-low range, using Average True Range. When the daily bars get small, the Keltner Channels narrow.
So one band reacts to how spread out the closing prices are, and the other reacts to how large each bar’s range is. Because they are anchored to the same moving average, you can watch one shrink relative to the other. Most of the time the Bollinger Bands sit comfortably outside the Keltner Channels, and there is no squeeze.
The squeeze is the moment one slips inside the other
When volatility drops, two things happen at once. Closing prices bunch up, so the Bollinger Bands contract, and the daily ranges shrink more slowly, so the Keltner Channels hold their width a little longer. The Bollinger Bands pull in faster and slip inside the Keltner Channels. That moment, Bollinger Bands inside Keltner Channels, is the squeeze. The market has gone quiet, energy is building, and the indicator marks it with a dot.
The release runs in reverse. When volatility expands and price starts to travel, the Bollinger Bands push back outside the Keltner Channels, and the squeeze has fired. On the board that shows up as a green dot. For both of our setups, that green fire is the exit, not the entry. You enter on the trigger while the squeeze is still on and treat the fire as the release.
Three tiers grade how tight the squeeze is
A squeeze is not all-or-nothing. The Keltner Channels are tracked at three widths, from wide to narrow, and how deep the Bollinger Bands sit inside them tells you how compressed the stock really is. That gives three tiers of an active squeeze, plus the fired state.
| Color | Tier | What it means |
|---|---|---|
| Yellow | Slow | The loosest active squeeze. Price is compressing, with room left before it tightens. |
| Red | Normal | A firmer squeeze than yellow. Compression is building. |
| Black | Fast | The tightest active squeeze, and the closest to a release. |
| Green | Fired | The squeeze has released. This is the exit, not an entry. |
Tighter is not the same as better. A black, Fast-tier dot tells you compression is extreme, not that the trade is good. The full legend, and how to read the bar count printed on each dot, are covered in Squeeze Dot Colors Explained.
The momentum histogram sits on top
Here is the part most people miss. The dots measure compression only. They say nothing about direction. A stock in a tight squeeze is equally capable of breaking up or down, and the color of the dot does not tilt that either way. Direction comes from a separate piece, the momentum histogram that runs underneath the dots, which reads whether momentum is building above or below the zero line. Compression tells you energy is stored. Momentum tells you which way it is leaning. You need both, and reading a dot color as if it were a buy or sell signal on its own is the most common mistake people make with this indicator.
From a formula to a live scan
None of this math is secret. Anyone can plot the squeeze on a single chart. The hard part is running it honestly on every name, on every timeframe, every session, and trusting the result enough to rank and backtest it. That is what we built.
We reconstruct the dots from raw price data on our own servers rather than reading them off a chart, which is what lets us scan and study them at scale. Before trusting that reconstruction, we validated it against ThinkorSwim and documented exactly where it matches and where borderline bars can differ, in an honest accuracy note. The same formula then runs across more than 600 symbols and 10 timeframes, from 5-minute to weekly, on the live board, so one screen replaces flipping through hundreds of charts.
The formula tells you compression, not a trade
This is the honest limit of the mechanism. A squeeze being on is a state, not a signal. In our own 22-year backtest, a bare squeeze taken on its own showed no tradeable edge. The edge only appeared when compression was paired with momentum, a stacked trend, and confluence across several timeframes. So the formula is where the read starts, not where it ends. It points your attention at the stocks that have gone quiet and are storing energy, and then the setup, the trend, and each name’s own record decide whether any of them are worth trading.
If you would rather see the math running live than plot it by hand, the board shows every active squeeze ranked by the edge behind it, and you can pull any symbol’s 22-year record on the backtester. Visit squeezesetups.com to watch the formula working across the whole market.