Guides / Fundamentals

What Is the TTM Squeeze? The Compression-Breakout Cycle Explained

By Willow the Trader · Technical Trading Academy · Updated July 2026

Markets do not move at a constant speed. They alternate between two states: compression, where price coils into a tighter and tighter range, and expansion, where the stored energy releases in a directional move. The TTM Squeeze is an indicator built to detect exactly one thing — the moment a market shifts from compression to expansion. It will not tell you where price is going. It tells you when the market is loaded, and pairs that with a separate momentum reading that suggests which way the release is leaning.

That distinction matters, and most introductions gloss over it. The squeeze itself has no direction. Treating it as a buy signal on its own is the single most common way traders misuse it.

The two bands: Bollinger inside Keltner

The squeeze is a relationship between two well-known volatility envelopes drawn around the same 20-period moving average:

Because the fast envelope (BB) contracts quicker than the slow one (KC), a quiet market eventually pulls the Bollinger Bands entirely inside the Keltner Channels — upper band below upper channel and lower band above lower channel. That condition, on both sides at once, is the squeeze. Volatility is being wound like a spring.

Exact math matters. The Pulse computes the squeeze the way the original Pine Script does: SMA(20) basis for both envelopes, population standard deviation for the Bollinger Bands (not sample standard deviation), and a simple moving average of True Range for the Keltner ATR (not Wilder's smoothing). These sound like rounding details, but each one can flip a borderline squeeze on or off. If your scanner and your chart disagree, the implementation is usually why.

Compression levels: not all squeezes are equal

The original TTM Squeeze used a single Keltner multiplier (1.5×ATR): the squeeze was simply on or off. The Squeeze Pro refinement — popularized in John Carter's circle and released as the open-source Beardy Squeeze Pro script, which The Pulse replicates parameter-for-parameter — draws three Keltner Channels at multipliers of 2.0, 1.5 and 1.0 ATR and grades how deep the compression goes:

Note the inversion that trips people up: the smallest multiplier is the tightest channel, so fitting inside it is the deepest compression. A high-compression squeeze means the Bollinger Bands have shrunk inside a Keltner Channel only 1.0 ATR wide.

The fire

The squeeze "fires" when the Bollinger Bands expand back outside the Keltner Channels. Volatility has returned; the spring has released. In squeeze terminology this is the moment of interest — Carter's original rule of thumb was to consider entries on the first bar after the fire, in the direction of momentum, and to reassess within a handful of bars.

Two honest caveats. First, the fire tells you expansion has started, not that it will continue — plenty of fires fizzle within a few bars, especially on low timeframes and in news-driven chop. Second, the fire is only detectable on a closed bar; an in-progress bar can drift in and out of squeeze conditions before it settles.

Momentum: the directional half of the system

Because compression is directionless, the TTM Squeeze pairs it with a momentum histogram. The construction is more thoughtful than a simple rate-of-change: take the close, subtract a blended anchor — the average of (a) the midpoint of the highest high and lowest low over the lookback, and (b) the SMA of close over the same lookback — then fit a linear regression to that difference. The regression's endpoint is the histogram value. In Pine terms: linreg(close − avg(avg(highest, lowest), sma(close)), length, 0).

The histogram is read by sign and slope, giving the familiar four colors:

ColorSignSlopeReading
AquaPositiveRisingBullish and strengthening
BluePositiveFallingBullish but fading
YellowNegative or flatRisingBearish but recovering
RedNegativeFallingBearish and strengthening

The classic playbook combines the two halves: a deep squeeze building while momentum turns aqua suggests a loaded market leaning long; the same squeeze with deepening red momentum leans short. The squeeze supplies energy, momentum supplies direction. Neither is sufficient alone.

Where the TTM Squeeze came from

Credit where due: the TTM Squeeze was created by John Carter (of Simpler Trading), who popularized it in Mastering the Trade. The multi-level "Squeeze Pro" concept came later from the same lineage, and the open-source Beardy Squeeze Pro Pine Script is the community's reference implementation of it. The Pulse's squeeze engine was built against that script and verified bar-by-bar against TradingView — same SMA basis, same population standard deviation, same SMA-of-True-Range ATR, same 1.0/1.5/2.0 multipliers. We didn't invent the squeeze; we made it scannable across a whole board at once.

What the squeeze can't do

An honest tool description includes the failure modes:

Used with those limits in mind, the squeeze is one of the cleanest answers to a question every trader asks: where is energy building right now? Answering it across many symbols and timeframes at once is exactly what a scanner is for.

Watch squeezes build in real time

The Pulse tracks TTM Squeeze compression across seven timeframes for stocks and CME futures — free tier includes ES, AAPL and NVDA, no card required.

Open the free heatmap

Further reading

For informational purposes only. Not financial advice. Trading involves substantial risk of loss. TTM Squeeze is associated with John Carter / Simpler Trading; The Pulse is an independent product of Technical Trading Academy and is not affiliated with or endorsed by them.