Senzoukria · Indicators

Squeeze Indicator: Formula, Settings and How to Read It

Squeeze marks the bars on which the Bollinger Bands sit entirely inside the Keltner Channel, the volatility-compression condition described by John Carter's TTM Squeeze. A dot is placed at the close of every bar in that state.

Updated September 2026First published 17 September 2026

On this page
  1. What Squeeze measures
  2. The formula, as implemented
  3. How to read it
  4. Parameters and defaults
  5. What it does not show
  6. Related indicators
  7. This page in other languages
  8. Frequently asked questions

Squeeze — Volatility, on the price chart.

What Squeeze measures

The Bollinger Bands are a simple moving average plus and minus a multiple of the population standard deviation, defaulting to 20 and 2. The Keltner Channel is an exponential moving average plus and minus a multiple of Wilder's ATR, using the same period for both the EMA and the ATR, defaulting to 20 and 1.5 — the TTM values, which differ from the separate Keltner indicator in this catalogue and its own 20/10/2 defaults. The comparison is strict: the upper band must be below the upper channel and the lower band above the lower channel, so bands that exactly coincide do not count, which is TradingView's behaviour. While either construction is still warming up, no marker is drawn.

The formula, as implemented

This is not how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:

Squeeze TTM (John Carter) : squeeze ON quand les bandes de Bollinger sont ENTIÈREMENT à l'intérieur du canal de Keltner — BB_up < KC_up ET BB_low > KC_low inégalités STRICTES : bandes confondues = pas de squeeze (parité TradingView). BB : SMA_N ± k·σ population (défauts 20, 2). KC : EMA_N ± k·ATR_N Wilder, MÊME période N pour l'EMA et l'ATR (défauts 20, 1.5 — les défauts TTM ; l'indicateur `keltner` de la famille garde ses propres défauts 20/10/2). Sortie : un dot posé au CLOSE de chaque barre en squeeze ; warm-up (BB ou KC indéfini) → pas de marker.

How to read it

  • Dots mark a state — closing dispersion narrow relative to bar range — and carry no direction at all.
  • The end of a run of dots says that compression has stopped, not which way the market resolves it.
  • A long uninterrupted run describes a market that has been coiling for a while; isolated single dots usually reflect one quiet bar.
  • Pair the state with a directional read, such as which side the range breaks on or what the order flow shows at the extremes, rather than acting on the dot itself.
  • Off-hours and holiday sessions produce dots easily, because narrow ranges are ordinary there.

Parameters and defaults

The defaults are a 20-period Bollinger at 2 standard deviations against a 20-period Keltner at 1.5 ATR. Raising the Bollinger multiplier or lowering the Keltner multiplier makes the condition harder to satisfy and the dots rarer; doing the reverse produces dots often enough that they stop distinguishing anything. Both periods default to 20 so the two constructions describe the same window; setting them apart compares different horizons.

Squeeze — parameters exposed in the app, with the values it ships with.
ParameterTypeDefaultRange
BB periodnumber202 – 200
BB multipliernumber20.5 – 5
KC periodnumber201 – 200
KC multipliernumber1.50.5 – 5

What it does not show

The output is binary: there is no magnitude, no direction and no timing in it. It uses no order flow, so it cannot distinguish a coil with size building behind it from an empty hour with nobody trading. It is descriptive and late by construction — dots appear only once the contraction is already visible across a 20-bar window — and the number of consecutive dots says nothing about what follows. On low-liquidity instruments the condition is satisfied much of the time and loses its ability to distinguish anything.

Browse all indicators

This page in other languages

Frequently asked questions

What is the TTM squeeze?
The TTM Squeeze, introduced by John Carter, flags periods when Bollinger Bands contract inside a Keltner Channel. Because the bands react to standard deviation and the channel to average true range, the bands falling inside the channel means recent closing dispersion has narrowed relative to the typical bar range.
Does a squeeze tell you which way the breakout will go?
No. The condition is symmetric and contains no directional information. It identifies compression only; the direction of any resolution has to come from something else, such as where the range breaks or what the order flow shows at the extremes.
Why do my squeeze dots differ from another platform?
Three details commonly account for it: whether the standard deviation uses the population or the sample divisor, whether the Keltner Channel uses Wilder's ATR and the same period as its moving average, and whether exactly coinciding bands count as a squeeze. Here the divisor is population, the Keltner periods match, and the comparison is strict, so equal bands do not count.
NEXT

Keep reading