Bollinger Bands vs Keltner Channels
Bollinger Bands set their distance from a moving average using standard deviation, while Keltner channels use average true range. That single choice makes one envelope expand sharply on a shock and the other widen far more steadily on the same bars.
Both draw an envelope around a moving average. Both are used to judge whether price has stretched. The difference is entirely in how the distance from the middle is calculated, and that changes the behaviour more than it sounds like it should.
What each one is
Bollinger Bands set the distance with standard deviation. The bands sit a chosen number of standard deviations from a moving average, so their width reflects how dispersed recent closes have been. Bollinger Bands covers the calculation.
Keltner channels set the distance with average true range. The lines sit a multiple of average bar range from the middle, so the width reflects how large bars have been. Keltner channels covers it.
The middle line is the same idea in both. A moving average, with the same lag and the same limitations, which is why the envelopes agree far more often than they disagree.
Where they differ
How the width responds to a shock. One large bar moves a standard-deviation measure sharply, because that is what an outlier does to dispersion. An average-range measure absorbs it far more gently.
What width means. On the statistical version, narrowing width is a readable signal in itself — the squeeze — because it says dispersion has collapsed. On the range version it says bars got smaller, which is a plainer and less dramatic statement.
What the input is. Standard deviation uses closes. Average true range uses the whole bar including the gap from the previous close, so one of them sees overnight movement and the other does not.
How often price touches an edge. The statistical version is calibrated so that touches are common by construction, which is why treating a touch as a signal produces so many of them.
Where they agree
Both are built around a moving average, so both inherit its lag and both re-centre late after a sharp move.
Neither edge is a level. Price can ride an upper band for many bars in a strong move, and on this site’s shared series direction runs average 2.01 bars with a longest of 11.
Neither supplies a stop. The ninetieth percentile bar range here is 1.101 and the largest single bar range was 2.338, which is what a stop placed at a band edge is up against.
And both cost a round trip per signal acted on — about 2% of the median bar range of 0.493 — which is a floor any band-touch method has to clear.
Which one to use
Run Keltner channels when you want a steadier envelope. Reacting to how large bars have been rather than to statistical dispersion produces fewer sudden width changes and fewer misleading expansions.
Run Bollinger Bands when the width itself is what you want to read. The squeeze is a genuine feature of the statistical version and it does not exist in the same readable form on the other.
Run the range version if you also size positions from range, because then your stop distance and your envelope come from the same measure rather than from two unrelated ones.
And when you are running both, run one. They are two envelopes around the same average, so they agree almost always by construction and the second one adds no information.
Why the width measure changes the behaviour
Because standard deviation is dominated by outliers. One violent bar changes the number a great deal, so the envelope expands immediately after the move that would have hurt you.
And because average true range includes the gap. On this site’s series the largest bar range was 2.338 against a median of 0.493, and only one of these two measures counts an overnight move at all.
The original data
Of the 24,971 unique videos in research/search-study-corpus.jsonl, 4 compare the two directly in the
title, at a median of 174 views. Separately, Bollinger Bands appear in 259 titles at a median of
5,178 across 197 channels, and Keltner in 126 at a median of 3,163 across 101. The counts come from
site/rank_compare.py and site/corpus_count.py.
259 videos on one at 5,178 and 126 on the other at 3,163, with 4 comparing them at 174. The comparison draws a tiny fraction of either subject — the lowest ratio measured on this site, and a sign that almost nobody is asking the question these two raise about each other.
The answer to the question on that chart is that an edge touch is not a reading. The bands are calibrated so touches happen often — so the touch tells you where price is relative to its own recent dispersion, and nothing at all about what happens next.
When it fails
The failure is fading a band touch in a trend, and the envelope encourages it every single bar. Price reaches the upper edge, which reads as stretched, so a short is taken. The move continues and price rides the edge, which on a strong run it can do for many bars. Each new bar looks even more extreme than the last, which makes the position feel more justified as it loses. The band was never a level; it was a statement about dispersion that price is free to exceed indefinitely.
The second failure is treating a squeeze as directional. It says nothing about which way.
A third is running both for confirmation. Same average, two widths.
A fourth is placing a stop at a band edge. The largest bar range here was 2.338.
A fifth is using standard deviation on a gappy instrument. It ignores the gap.
And a sixth is optimising the multiplier after a losing run. That is fitting the past.
Related
Bollinger Bands covers the standard-deviation envelope. Keltner channels covers the average-range one. And average true range covers the width measure underneath the second.
The width behaviour is the whole comparison. One measure reacts to a single violent bar because that bar is an outlier; the other reacts to how large bars have been on average. Neither is wrong — but if you are reading the squeeze, only one of them squeezes in a way you can act on.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money.