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 Component | Formula / Inputs | Evaluated 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.5 | 105.25 (Half-width = 5.25) |
| Volatility Squeeze Check (BB Half-Width = 4.80) | 4.80 < 5.25 | Squeeze 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.