Arte SheetsLearn. Try. Understand.

Quantitative Finance & Trading

Keltner Channel & Volatility Squeeze Formula: True Range, ATR Envelope & Squeeze Flag

Build Linda Raschke’s ATR-based Keltner Channel (EMA +- m * ATR), compute Wilder’s gap-aware True Range, and detect Bollinger-inside-Keltner Volatility Squeezes.

Capture overnight price gaps with True Range and detect Bollinger-Keltner squeezes!

Intraday range High - Low misses overnight earnings gaps completely! J. Welles Wilder’s True Range captures gaps from yesterday’s close C_{t-1}: TR_t = MAX(H_t - L_t, ABS(H_t - C_{t-1}), ABS(L_t - C_{t-1})). Modern Keltner Channels (Linda Bradford Raschke) wrap an N-period EMA (B5) inside Upper = EMA + m * ATR and Lower = EMA - m * ATR (typically m = 1.5 or 2.0).

Comparing Bollinger half-width (2 * sigma, B8) against Keltner half-width (m * ATR) powers John Carter’s TTM Squeeze detector: whenever 2 * sigma < m * ATR, standard-deviation bands have contracted completely inside the ATR envelope ("Squeeze ON"), signaling coiled breakout energy!

Channel ComponentFormula / InputsEvaluated Output
Wilder True Range (H=106, L=101, PrevC=99)MAX(106-101, |106-99|, |101-99|)7.00 (captures +2 gap above 99)
Upper Keltner Band (EMA=100, ATR=3.5, m=1.5)100 + 1.5 * 3.5105.25 (Half-width = 5.25)
Volatility Squeeze Check (BB Half-Width = 4.80)4.80 < 5.25Squeeze ON (Bollinger Inside Keltner)

Gap-Aware Wilder True Range (TR) & Upper Keltner Channel

Computes Upper Keltner Band EMA + m * ATR while validating High >= Low and positive ATR/multiplier.

=IF(OR(B2 < B3, B6 <= 0, B7 <= 0), "Invalid Bar or ATR Inputs", ROUND(B5 + B7 * B6, 2))

Wilder True Range & Bollinger-Inside-Keltner Squeeze Regime

Evaluates single-bar True Range MAX(H-L, |H-PrevC|, |L-PrevC|) or Squeeze status B8 < B7*B6.

=MAX(B2 - B3, ABS(B2 - B4), ABS(B3 - B4))

Try the example

Use the original values or change them to test your understanding.

Further reading