WhitmanTrading

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

A candlestick chart of the site's shared price history. The headline on the chart reads: Two volatility bands, one inside the other.
Two volatility bands, one inside the other. Illustrative chart - not real market data.

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.

A flat, quiet stretch of the long price series. The headline on the chart reads: The squeeze is the narrower bands sitting inside the wider ones.
The squeeze is the narrower bands sitting inside the wider ones. Illustrative chart - not real market data.

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.

A gently rising stretch of the long price series. The headline on the chart reads: It is a volatility comparison wearing a momentum costume.
It is a volatility comparison wearing a momentum costume. Illustrative chart - not real market data.

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

A strongly rising stretch of the long price series. The headline on the chart reads: The fire is the bands separating again, which is not a direction.
The fire is the bands separating again, which is not a direction. Illustrative chart - not real market data.

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.

A flat but volatile stretch of the long price series. The headline on the chart reads: The histogram underneath is a separate tool bolted on.
The histogram underneath is a separate tool bolted on. Illustrative chart - not real market data.

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.

A declining stretch of the long price series. The headline on the chart reads: A squeeze can last for months and resolve either way.
A squeeze can last for months and resolve either way. Illustrative chart - not real market data.

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

A calmly advancing stretch of the long price series. The headline on the chart reads: Five parameters across two indicators is a lot to tune.
Five parameters across two indicators is a lot to tune. Illustrative chart - not real market data.

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.

A candlestick chart with a volume histogram beneath it, with the volume histogram emphasised. The headline on the chart reads: And neither band knows how much traded.
And neither band knows how much traded. Illustrative chart - not real market data.

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.

A long-horizon candlestick view of the same price series. The headline on the chart reads: On a long horizon every quiet stretch is a squeeze.
On a long horizon every quiet stretch is a squeeze. Illustrative chart - not real market data.

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 candlestick series containing several opening gaps, with the largest opening gap marked. The headline on the chart reads: A gap ends a squeeze instantly and untradeably.
A gap ends a squeeze instantly and untradeably. Illustrative chart - not real market data.

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.

A declining stretch of the long price series, with the entry price and the level at which a stop would trigger drawn as horizontal lines. The headline on the chart reads: The bands give a level, which is more than most oscillators do.
The bands give a level, which is more than most oscillators do. Illustrative chart - not real market data.

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.

A candlestick chart of the site's shared price history, annotated with the round-trip cost. The headline on the chart reads: And each fired squeeze traded costs a share of a bar.
And each fired squeeze traded costs a share of a bar. Illustrative chart - not real market data.

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.

A 72-bar candlestick section of the shared price history. The headline on the chart reads: Compression is a measurement, not a stored force.
Compression is a measurement, not a stored force. Illustrative chart - not real market data.

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

A sideways, range-bound candlestick series. The headline on the chart reads: In a range the squeeze forms, fires and re-forms.
In a range the squeeze forms, fires and re-forms. Illustrative chart - not real market data.

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.

A 72-bar window of the shared price history, cut short at the decision bar. The headline on the chart reads: The squeeze just fired. Which way do you take it?
The squeeze just fired. Which way do you take it? Illustrative chart - not real market data.

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.

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.

What I actually do

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.