Keltner Channels Explained: EMA ± ATR, vs Bollinger Bands, and the Squeeze
Keltner Channels are an EMA 20 ± 2 ATR. The history, a worked example, how they differ from Bollinger Bands, the squeeze, and a test on synthetic data.
- The common modern Keltner Channel is an EMA 20 plus and minus 2 ATR, so its width follows the size of the bars, not the spread of the closes
- Because it uses ATR, a Keltner Channel is smoother and contracts more slowly than Bollinger Bands. When Bollinger moves inside Keltner, that is the squeeze
- Clusters of closes outside the channel say a trend has force, and the middle line is where price often pauses inside a trend
- On synthetic data, trading breakouts worked only on the trending series, fading worked only on the mean-reverting series, and on a pure random walk both lost the costs
Keltner Channels are a moving average with an upper and a lower band around it, much like Bollinger Bands. The difference is how the distance is measured: Keltner uses ATR, the average size of a bar, not the spread of the closes. The result is a smoother channel that doesn’t pinch or widen as quickly, and that doubles as a trend channel or a stop distance. This guide covers where the indicator came from, the formula with a worked example, three ways to use it, the squeeze, and a test on synthetic data that shows when following a break pays and when it doesn’t. Like every indicator, Keltner is calculated from past prices. It doesn’t predict the future.
Where it came from: 1960 to the ATR version
Chester W. Keltner described the idea in his 1960 book How to Make Money in Commodities. The original was simple:
- Middle line = 10-day SMA of the typical price, (High + Low + Close) ÷ 3
- Upper and lower lines = the middle line plus and minus the 10-day average of the daily range (High − Low)
Keltner used it as a trend-following rule: price rising above the upper line was a bullish signal, and falling below the lower line a bearish one.
Later the formula was updated to use an EMA instead of the SMA and ATR instead of the plain High − Low range. This version is usually credited to Linda Bradford Raschke. A common modern setting is EMA 20 ± 2 × ATR 10, and it is the default in several charting programs. When you add an indicator called Keltner, check its settings to see which formula it uses, because some still offer the original range option.
The modern formula: EMA 20 ± 2 × ATR
| Line | Formula |
|---|---|
| Middle | EMA 20 of the close |
| Upper | Middle + 2 × ATR 10 |
| Lower | Middle − 2 × ATR 10 |
An EMA is an average that gives the latest bars more weight. Each bar it moves toward the new close by 2 ÷ (20 + 1) = 0.0952 of the gap (more in Moving averages). ATR is the average of the True Range, which includes gaps between bars. Here we use Wilder’s averaging, as in ATR and Stop loss placement. Programs that average differently will show slightly different numbers.
Worked example
The original version, 10 bars. Made-up prices, oldest first:
| Bar | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
|---|---|---|---|---|---|---|---|---|---|---|
| High | 101.2 | 101.6 | 101.9 | 101.7 | 102.3 | 102.6 | 102.4 | 102.9 | 103.3 | 103.1 |
| Low | 100.4 | 100.8 | 101.0 | 100.9 | 101.4 | 101.8 | 101.6 | 102.0 | 102.4 | 102.3 |
| Close | 100.9 | 101.4 | 101.2 | 101.5 | 102.1 | 102.0 | 102.2 | 102.7 | 102.8 | 103.0 |
- Typical price for each bar. The first is (101.2 + 100.4 + 100.9) ÷ 3 = 100.8333, the last (103.1 + 102.3 + 103.0) ÷ 3 = 102.8000. All 10 add up to 1,019.1333
- Middle line 1,019.1333 ÷ 10 = 101.9133
- Range High − Low is 0.8 or 0.9 on every bar, 8.40 in total, an average of 0.84
- Upper line 101.9133 + 0.84 = 102.7533. Lower line 101.9133 − 0.84 = 101.0733
The last close, 103.0, is above the upper line. Under the original rule that is a break to the upside.
The modern version, one new bar. Say the previous bar had EMA 20 = 102.40, ATR 10 = 0.85 and closed at 103.0. The new bar has High 104.1, Low 103.0, Close 103.9.
- True Range is the largest of High − Low = 104.1 − 103.0 = 1.1, |High − previous close| = |104.1 − 103.0| = 1.1 and |Low − previous close| = |103.0 − 103.0| = 0, so 1.1
- New ATR (0.85 × 9 + 1.1) ÷ 10 = 0.875
- New EMA 102.40 + 0.0952 × (103.9 − 102.40) = 102.543
- Upper 102.543 + 2 × 0.875 = 104.293. Lower 102.543 − 1.75 = 100.793
The close of 103.9 is still inside the channel even though it is 0.9 higher, because the channel is 4 ATR = 3.5 wide. Notice that one large bar lifted ATR by only 0.025, since a new bar carries just a tenth of the weight. That is why a Keltner Channel moves slowly and smoothly.
How it differs from Bollinger Bands
| Keltner Channels | Bollinger Bands | |
|---|---|---|
| Middle line | EMA 20 | SMA 20 |
| Band distance | 2 × ATR (bar size) | 2 × SD of the last 20 closes |
| When price runs hard one way | Widens moderately | Widens fast and far, because the closes spread away from the average |
| When closes go flat but bars still have wicks | Narrows slowly | Pinches quickly |
The key difference: SD measures how far the closes are spread from their average, while ATR measures how wide each bar swings. When price slides in one direction, the closes move far from the average and SD jumps. When the closes sit still, SD shrinks to almost nothing, but ATR stays put as long as the bars keep swinging. On the synthetic series in the first chart, the Keltner width changed by 0.117 per bar on average, against 0.216 for Bollinger, roughly twice as much.
Reading the channel in trends and ranges
In the range, price stays inside the channel, with only 3 closes outside in 45 bars. Once the trend starts, closes above the upper band come in clusters, and price pulls back to around the middle line before rising again. That picture leads to three uses.
1. Trend filter: watch closes outside the channel. A close above the upper band means price is more than twice its normal swing away from the average. Many traders treat that as evidence the trend has force, and then look for entries in that direction only. Rough rules:
- Repeated closes outside the channel and a middle line pointing clearly one way = trend
- A flat middle line and price tagging both sides = range; don’t use the channel as a trend signal
2. Wait for a pullback to the middle line. In an uptrend, don’t chase a close above the upper band. Wait for price to pull back to around the EMA 20 (the circles in the chart). The Stop loss under the lower band or under the pullback low is closer than it would be from an entry at the upper band. The downside: some strong trends never pull back far enough, and sometimes the pullback is the start of a reversal, so a Stop loss is always needed.
3. Volatility stop. The bands sit exactly 2 ATR from the middle line, so they give you a stop distance that adjusts to volatility. For example, hold a buy in a trend and use the lower band as a trailing stop, moving it up with the band and never down. From the example above, a buy at 103.9 with a stop 2 ATR away goes at 103.9 − 1.75 = 102.15. A wide channel means a distant stop, so cut the lot size to keep the money at risk the same. See Position size from Stop loss. For an ATR-based trend line that moves in steps, read Supertrend.
A close above the upper Keltner band doesn’t mean price is too high. In a trend it is evidence the push is still there; in a range it usually drifts back inside. Know which market you are in first.
The squeeze: Bollinger inside Keltner
Bollinger Bands contract faster than Keltner Channels when the market goes quiet, which led to the idea of overlaying them. When both Bollinger Bands move inside the Keltner Channel, the closes are unusually still compared with the size of the bars. That is the squeeze. The idea is best known from John Carter’s TTM Squeeze, described in his book Mastering the Trade, which adds a momentum histogram to help judge direction. Many squeeze versions use a narrower Keltner than usual; this chart uses 1.5 × ATR.
What to notice in the chart:
- A squeeze doesn’t tell you direction. Here price broke down, but another series could just as easily break up
- The signal always lags. This series went quiet at bar 50, but the squeeze only appeared at bar 53. Price started falling at bar 95, yet the squeeze lasted until bar 97 and disappeared at bar 98, because both SD and ATR are built from bars that have already happened
- A longer squeeze doesn’t mean a bigger move, and quiet caused by an empty market, such as a holiday, is not energy building up
Volatility comes in phases, quiet then busy then quiet again, which is what gives the squeeze its meaning. More in Volatility clustering. But Keltner and Bollinger use the same prices, so don’t count them as two confirmations. The reasoning is in Combining indicators without redundancy.
Test: follow the break or fade it back inside
We built 4 kinds of synthetic price, 200 series each, 3,000 bars per series. None of it is a real market.
- Trending: a random walk with a small drift (0.03 per bar against random noise of 0.5) that flips direction on average every 200 bars
- Mean-reverting: price is pulled back 2% of the way toward a centre value every bar
- Pure random walk: no trend and no pull back
- Mixed: trending and mean-reverting blocks alternating every 500 bars, like a market that changes character
Two rules, using Keltner EMA 20 ± 2 × ATR 10, one position at a time, entering at the close:
- Breakout: a close above the upper band opens a buy, a close below the lower band opens a sell. Exit when price closes back across the middle line
- Fade: a close above the upper band opens a sell, a close below the lower band opens a buy. Exit at a close back at the middle line, or at a Stop loss 2 ATR away
Costs of 0.05 per trade (about 6% of the average ATR of 0.80) are deducted. Results are average net profit per trade in ATR units.
| Series | Rule | Net per trade | Win rate | Profitable series |
|---|---|---|---|---|
| Trending | Breakout | +0.17 ATR | 37.1% | 127/200 |
| Trending | Fade | −0.20 ATR | 55.7% | 33/200 |
| Mean-reverting | Breakout | −0.71 ATR | 25.8% | 0/200 |
| Mean-reverting | Fade | +0.39 ATR | 69.3% | 196/200 |
| Random walk | Breakout | −0.08 ATR | 34.4% | 80/200 |
| Random walk | Fade | −0.05 ATR | 59.2% | 79/200 |
| Mixed | Breakout | −0.27 ATR | 32.0% | 38/200 |
| Mixed | Fade | +0.07 ATR | 61.8% | 127/200 |
Reading this honestly:
- The rule has to match the market’s character. Breakouts worked only on the trending series and fading only on the mean-reverting series. Used on the wrong series, both lost. That is no surprise, because we built that character into the data ourselves. It shows only that the Keltner Channel can pick up a behaviour that is there; it says nothing about which behaviour real markets have
- On a random walk, both are near zero before costs and both lose after them. The fade won 59.2% of its trades and still lost money, because its losers were bigger. A high win rate is not the same as making money; see Win rate vs break-even
- The mixed result depends on the mix. Here the mean-reverting blocks were stronger than the trending ones, so the fade came out slightly ahead. Change the proportions and the result can flip, and in a real market you don’t know in advance which phase you are in
- Costs eat the edge quickly. Raising the cost to 0.15 per trade (about 19% of ATR, like a small timeframe where the spread is large relative to the bars) cut the breakout on trending series to +0.04 ATR per trade and turned the fade on mixed series into −0.06 ATR
The real question isn’t “follow the break or fade it” but “is this market trending or mean-reverting right now”. If you can’t answer that, the Keltner Channel can’t answer it for you.
For following versus fading on real gold data, read Ride the trend or fade it. For a breakout channel built from actual highs and lows instead of an average, read Donchian Channel.
When Keltner Channels mislead
- When the market changes character. A rule that has worked for a while loses several trades in a row when a range turns into a trend, or the other way round. More in Market regime change
- Big news. Price jumps far outside the channel and ATR only catches up later, so the slow, smooth channel becomes a weakness
- Small timeframes. The channel is so narrow that the spread is a large share of the distance to the middle line. See Spread cost per trade
- Unusually long wicks, for example in thin liquidity, push ATR up and widen the channel even though the closes went nowhere
Common mistakes
- Entering every time price closes outside the channel, without checking whether the market is trending or ranging
- Treating Keltner and Bollinger as confirming each other, when they use the same prices and measure similar things
- Seeing a squeeze and guessing the direction in advance, when a squeeze only says volatility is low
- Adding an indicator called Keltner without checking whether it uses an SMA or EMA, a range or ATR, so the numbers don’t match what you read
- Tweaking the multiplier and length until they fit past charts
- Using the band as a Stop loss without cutting the lot size when the channel is wide, so more money is at risk per trade than intended
Frequently asked questions
What settings should I use for Keltner Channels?
The most common setting is an EMA 20 with 2 times ATR 10, the default in several charting programs. Some traders use 1.5 or 2.5. A smaller multiplier gives a narrower channel and more closes outside it; a larger one gives fewer signals. Don't tune it to fit past charts. If you change it, test across several periods.
Keltner or Bollinger, which one should I use?
Both describe similar things, how far price is from its average and how volatile the market is. Keltner uses ATR, so it is smoother and works well as a trend channel and a stop distance. Bollinger reacts faster. Using both is useful for spotting a squeeze, but they should not count as two separate reasons.
Price closed above the upper Keltner band. Is that a buy?
Not by itself. A close above the upper band only says price has moved further from its average than its normal swing. In a trend it often keeps going; in a range it often drifts back inside. Read the market first and place your Stop loss before anything else.
This is general education, not investment advice. Trading is risky and you may lose all of your capital.