Skip to content

AI analysis

Keltner vs Bollinger channels in crypto: compare the same shock

The same reversal can widen an ATR channel while leaving closing-price dispersion unchanged. A worked example separates range, basis and band interpretation.

Two ivory ribbon envelopes curve around lime spheres, with a smaller opening on the left and a larger opening on the right.
Illustration for ai analysis; examples in this article are educational.

Keltner Channels usually place ATR-based envelopes around a moving average, while Bollinger Bands place standard-deviation bands around an average. In crypto, the distinction matters because a candle's high-low excursion can widen an ATR channel even when its close adds little dispersion. Compare both calculations on identical completed candles before interpreting their disagreement as a trading signal.

Neither construction is inherently better. Each compresses different parts of the price history. The useful comparison is what changes after the same shock, what stays unchanged, and which observation your rule is intended to measure.

Define the two constructions before comparing them

For this article, Keltner Channels use a 20-period exponential moving average of closes, plus and minus two times a 20-period ATR. This is an explicit research configuration. Keltner implementations can use different averages, range calculations and separate ATR lengths; TradingView's Keltner Channels documentation describes those choices.

The conventional Bollinger comparison uses a 20-period simple moving average of closes, plus and minus two times their standard deviation. TradingView's Bollinger Bands documentation describes the basis, source and multiplier inputs. Here, standard deviation uses the population convention: divide squared deviations by 20, not 19.

ComponentKeltner configuration hereBollinger configuration here
Middle lineEMA of 20 closesSMA of 20 closes
Distance from middle to either boundary2 × ATR(20)2 × standard deviation(20 closes)
Width inputsHigh, low and previous closeSelected price source, here close
Memory of widthRecursive range smoothingRolling window of close dispersion

ATR begins with true range: max(high − low, abs(high − previous close), abs(low − previous close)). It therefore captures movement within a candle as well as movement from the previous close. TradingView's ATR guide explains that calculation.

For reproducibility, use Wilder-style smoothing here: new ATR = (19 × old ATR + current true range) / 20. The EMA uses alpha 2 / 21. TradingView's PineJS utility reference documents the RMA alpha of 1 / length used for ATR. Preserve both smoothing conventions and their seeds when reproducing the example.

Equal lengths and multipliers do not imply equal widths, equal event frequency or equal probability coverage. Changing EMA to SMA also changes the middle line; the EMA versus SMA worksheet isolates that separate memory choice.

Put both channels through the same shock

Use fictional prices in arbitrary quote units. Start with 20 completed candles whose closes are all 100, highs are 101 and lows are 99. Assume the preceding close was also 100. Initialize the EMA at 100 and ATR at 2. These deliberately simple inputs make each calculation inspectable; they are not a parameter recommendation or market evidence.

Append a shock candle with open 100, high 111, low 99 and close 110. Then append a reversal candle with open 110, high 111, low 99 and close 100. Both added candles have true range 12. Each new observation replaces one old close of 100 in the Bollinger window.

The table reports half-width: the distance from the middle line to one boundary. Full width is twice that value.

Completed stateCloseKeltner middleATRKeltner half-widthBollinger middleBollinger half-width
Initial history100100.00002.00004.0000100.00000.0000
Shock110100.95242.50005.0000100.50004.3589
Reversal100100.86172.97505.9500100.50004.3589

At the shock, ATR becomes (19 × 2 + 12) / 20 = 2.5. The EMA becomes 100 + (2 / 21) × (110 − 100) = 100.952381.

The Bollinger window contains nineteen closes of 100 and one of 110. Its mean is 100.5. Variance is (19 × 0.5² + 9.5²) / 20 = 4.75, so standard deviation is approximately 2.179449. Multiplying by two gives half-width 4.358899.

The shock close exceeds both updated upper boundaries: approximately 105.9524 for Keltner and 104.8589 for Bollinger. That observation identifies a threshold event under these settings; it does not determine whether to buy, sell or do nothing.

At the reversal, the Bollinger window still contains nineteen closes of 100 and one of 110. Its mean and dispersion therefore stay unchanged. ATR instead rises again, because another true range of 12 enters its smoother: (19 × 2.5 + 12) / 20 = 2.975. Price has returned to 100, but range-based width is still expanding.

Change the close while preserving the excursion

Reset to the initial history and replace the shock with a wick-only candle: open 100, high 111, low 99, close 100. This is an alternative next candle, not a fourth row in the sequence.

Its true range is still 12, so ATR again becomes 2.5 and Keltner half-width becomes 5. The EMA remains 100. All 20 closes remain 100, so close-based Bollinger standard deviation and half-width remain zero.

This edge case explains why a narrow close-based envelope need not describe quiet trading inside each candle. Repeated excursions that finish at similar closes can leave close dispersion small while ranges remain large. Conversely, a sustained sequence of changing closes can widen Bollinger Bands without a single dramatic wick. Inspect the inputs before attaching a market narrative to either pattern.

Neither channel uses volume in these configurations. If the question is whether a price reference should weight active candles more heavily, the volume-weighted moving average guide examines that different input. If the question concerns the balance of buyer- and seller-initiated trading, cumulative volume delta addresses trade classification and coverage. Those observations cannot be inferred from channel width.

A comparison worksheet that keeps the question stable

Research decisionWhat to record
Input identitySame venue, symbol, spot or derivative product, interval and candle history
CalculationBasis type, source, length, ATR smoothing and length, deviation divisor, multipliers and seeds
ObservationCompleted-candle values, availability time and treatment of missing candles
EventTouch, close outside, crossing, or change in width; current or prior boundary; equality policy
EvaluationSame sizing, exits, costs and held-out observations for each candidate

To isolate width construction, first compare the ATR and standard-deviation distances directly. A second diagnostic can temporarily put both distances around the same basis; label it a controlled experiment rather than a standard indicator preset. Then compare the complete configurations, including their different middle lines. This prevents a basis change from being misattributed to ATR versus dispersion.

If testing Bollinger Bands inside Keltner Channels, check both boundary inequalities. Different centers mean that a narrower full width alone does not prove one entire envelope fits inside the other. Keep this geometric condition separate from a historical compression score; the Bollinger squeeze worksheet covers that latter question.

Where interpretation breaks

A band touch is not automatically a reversal signal, and two standard deviations do not establish a 95% forecast interval for crypto prices. John Bollinger's published rules explicitly reject those interpretations. A rising width also says nothing by itself about direction or executable prices.

Zero close dispersion is valid in the constructed history, but a statistic that divides by band separation would be undefined there. Missing observations and stale candles require a different policy from valid unchanged closes. A bad high or low can distort ATR even when every close looks plausible. Validate the raw records with the backtest data-quality audit.

Finally, completed-bar calculations are only available after the candle closes. Specify the next eligible execution point and account for spread, fees and slippage. The example establishes why two channels disagree; it supplies no evidence that either disagreement predicts a profitable trade or that KLINEO implements these exact presets.

KLINEO Editorial prepared this AI-assisted educational comparison from the cited definitions and a constructed arithmetic example under the editorial policy.

Keep the context with the example.

Each worked example is illustrative, with its sources and assumptions in the article. Read our editorial standards for authorship, verification and corrections.