TTM Squeeze: Two Bands, One Inside the Other
The TTM squeeze marks periods when Bollinger Bands contract inside Keltner Channels, indicating unusually low volatility, and fires when they expand back outside. It is a comparison between two volatility measures, and the firing carries no directional information at all.
How it works
Two band systems on one chart. Bollinger Bands sit two standard deviations either side of a moving average, so their width tracks statistical dispersion of closes. Keltner Channels sit a multiple of average true range either side, so their width tracks the size of bars including gaps.
When the Bollinger Bands contract inside the Keltner Channels, that is a squeeze. Most platforms mark it with a row of dots that change colour.
What that condition means is precise and narrow: dispersion of closes has fallen relative to the size of recent bars. It is a ratio between two volatility measures. It is not a statement about buyers, sellers, pressure or accumulation.
The fire, and what it does not tell you
The squeeze “fires” when the Bollinger Bands expand back outside the Keltner Channels. That is volatility returning to normal.
It is directionless by construction. Both band systems widen when bars get bigger, regardless of which way price went. A fire tells you the quiet period ended and nothing else.
Which is why every version of this indicator ships with a histogram underneath. That histogram — a linear regression of price against its own recent average, in the common implementation — supplies the direction, and it is a completely separate calculation.
So the tool is two things presented as one. The squeeze answers “is volatility unusually low?” and the histogram answers “which way has price been leaning?” Reading them as a single signal hides that the second part is doing all of the directional work and carries all of the usual oscillator problems.
And the coiled-spring metaphor is not a mechanism. Low volatility does not store energy. Volatility clusters — quiet periods tend to follow quiet periods and violent ones follow violent ones — which means a squeeze is more likely to be followed by more squeeze than by a move, right up until it is not.
In practice
Count the settings: Bollinger period, Bollinger deviation multiple, Keltner period, Keltner range multiple, and the histogram’s own lookback. Five dials, and the squeeze condition depends on the ratio between two of them. Small changes to the multiples change how often a squeeze occurs by a lot.
Which means “the squeeze fired” is not a well-defined event across platforms. Two charts with different multiples disagree about whether a squeeze is happening at all.
Neither band system sees volume. A quiet period on collapsing participation and one on normal participation look identical here, and they are not the same situation.
On long timeframes squeezes are common and long. Weekly charts spend substantial periods in one, which is accurate — markets are often quiet — and is not a schedule of impending moves.
A gap ends a squeeze in one bar. True range includes the gap, so the Keltner Channels widen immediately — and the fire happens at a price nobody could have transacted at. On stocks, squeezes frequently compress into earnings, which makes this the common resolution rather than the exception.
One genuine advantage: the bands are price levels. Unlike an oscillator reading, a band edge is a number you can place a stop against, and during a squeeze those levels are close together, so the risk on a break is small and definable.
Each fired squeeze traded costs 2% of a typical bar’s range in round-trip costs on this history, and a squeeze that fires, fails and re-forms charges each time.
And nothing is compressed. The order book is not under tension. Two computed bands moved closer together on your screen.
What the TTM squeeze is not
It is not a momentum indicator. The squeeze part is volatility; the momentum part is a separate histogram.
It is not a directional signal. A fire is symmetric.
It is not a stored-energy mechanism. Volatility clustering is the real, documented behaviour, and it says quiet begets quiet.
And it is not a fixed definition. The condition depends on the multiples chosen for two different band systems, and there is no standard set.
When it fails
The most common failure is the squeeze that stays squeezed. Weeks of dots, no resolution, and every day feels like the day before something happens. Capital committed to waiting for it has an opportunity cost nobody records.
The second failure is the false fire. Bands separate, a position goes on, volatility subsides, and the squeeze re-forms. That is one round trip paid for a move that did not happen.
A third is taking the histogram’s direction as independent confirmation. It is an oscillator computed from the same closes as everything else on the chart; on this site’s shared history, five such tools correlate between 0.53 and 0.87 on bar-to-bar changes.
A fourth is the gap resolution. On individual stocks the quiet period often ends on scheduled news, which means the fire and the move happen simultaneously and untradeably.
And a fifth is parameter drift between platforms. A strategy specified with one set of multiples produces different squeezes on a chart using another, and the difference is invisible unless you check the settings.
The original data
On this site’s shared 576-bar history the 10-bar efficiency ratio — net travel divided by total travel —
has a median of 0.34 and exceeds 0.5 on only 30% of bars, and the five price-derived oscillators measured
correlate between 0.53 and 0.87 on bar-to-bar changes. Both sets of figures are in
research/series-measurements.json, produced by site/measure_series.py.
The efficiency figure is the one that bears on the squeeze’s core promise. If only 30% of bars sit in conditions where price travels efficiently, then most resolutions of a quiet period lead into more chop rather than into a clean move. The measurement worth making on your own instrument is the distribution of squeeze durations and what followed each one — recorded before the outcome, including the ones that fired and re-formed. That count is not published anywhere for your market, it takes an afternoon, and it answers the only question the indicator raises.
Related
Bollinger Bands is one half of the comparison. Keltner Channels is the other. And squeeze momentum indicator covers the widely used open-source implementation of the same idea.
The squeeze is the best-marketed indicator I have used. The visual is excellent - dots change colour, something is clearly about to happen - and the thing that is about to happen is that volatility returns to normal, in a direction the indicator does not know.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money.