ATMResearch
Join Overfit - free
Overfit cover card on dark navy, kicker 'Volatility bands': the headline 'Keltner vs Bollinger, after 116,640 backtests.' over the line 'The band you pick is worth 0.52 on return-to-drawdown. The side you trade is worth 90.4 points.', with a corner badge reading 'S&P 500 + 4 ETFs · 1993–2026'.
  1. Overfit/
  2. Research/
  3. Keltner Channels vs Bollinger Bands: 116,640 Backtests (and the Third Band I Built)

August 2, 2025

Keltner Channels vs Bollinger Bands: 116,640 Backtests (and the Third Band I Built)

Share

10 min read

Written by Ali Casey, founder of StatOasis and AlgoChef, creator of the Algo Trading Masterclass (ATM), with over 10 years of experience building systematic trading tools - building algorithmic strategies, testing ideas with data, and teaching traders how to build structured, portfolio-based trading workflows.

Published August 2, 2025 · Updated August 20, 2026 · Method

← Back to Research
Table of contents▾
  • TL;DR — the answer box
  • How is each band actually calculated?
  • How we tested
  • Does the band you choose change your results?
  • Is Keltner really the trend band and Bollinger the mean-reversion one?
  • What actually decides whether a band strategy makes money?
  • Where is the profitable zone — and is it really widest for Casey Bands?
  • Do Casey Bands really hug price more tightly?
  • Is a 77% win rate worth anything?
  • Do any of them beat just holding the S&P 500?
  • What happens when the trading isn't free?
  • Does combining all three smooth the ride?
  • Where's the free code?
  • The verdict — and the honest limits
  • What this means for you
  • Methodology
  • FAQs

The short version

I put Bollinger Bands, Keltner Channels and my own Casey Bands through one identical trading harness — same markets, same rules, same parameter grid, 116,640 backtests across the E-mini S&P 500 and four index ETFs. The band you pick moves the result by almost nothing. What you do with it moves everything. And the ranking flips once you pay for your trades.

TL;DR — the answer box

  • The band barely matters. Across long mean-reversion variants, median return-to-drawdown ran 3.52 for Bollinger, 3.04 for Keltner and 3.00 for Casey Bands. A spread of 0.52. Meanwhile the gap between trading long and trading short was 90.4 percentage points.
  • Keltner is not the trend band. Every source on the first page of Google says Keltner suits trend-following. Mean reversion beat breakout for all three families, and Keltner's own mean-reversion variants ran 3.04 against 1.56 for its breakouts.
  • Costs reverse the answer. Bollinger's most durable setting trades 1,169 times where Keltner's trades 593. At 0.05% a side Bollinger keeps 59% of its profit and its MAR falls to 0.116 — below buy-and-hold's 0.156. Keltner keeps 80% and Casey Bands 79%.
  • My own 2025 claim was wrong, in the way that matters. I said Casey Bands had the widest profitable zone. Bollinger clears every bar most often — 83.3% of its variants beat a 2.0 return-to-drawdown against Casey's 74.7%. What survived is the other half: Casey's surface is the most even of the three.
  • All three beat doing nothing, and beat luck. At their most durable settings on SPY: MAR 0.304 (Keltner), 0.304 (Casey), 0.232 (Bollinger), against 0.156 for buying and holding and 0.068 for a seeded coin flip that trades as often.

How is each band actually calculated?

All three draw a line above price and a line below it. They differ only in how they measure the distance.

FamilyCentre lineHalf-widthPublished default
Bollinger Bandssimple average of the closemultiplier × standard deviation of the close20 period, 2.0
Keltner Channelsexponential average of the closemultiplier × Average True Range20 period EMA, 2.0 × ATR(10)
Casey Bandsexponential average of the highs and of the lows, then smoothedmultiplier × Average True Range20 period, 1.25, smoothing 3

Average True Range, or ATR, is a standard gauge of how far a market has been moving day to day. Standard deviation is a statistical spread — it reacts harder to a single violent bar than ATR does, which is why StockCharts notes that Keltner Channels are the smoother of the two. John Bollinger's own site remains the reference for how his bands are constructed.

Casey Bands are the odd one out on purpose. Instead of centring on the close and pushing outward, the upper band is built from the highs and the lower band from the lows, so the channel is anchored to where the market actually reached rather than where it settled.

Same 140 days, three channels. Casey Bands sit tightest to price; Bollinger's swing widest after the drop.

There is one more thing all three share, and it is what made this comparison possible. Every band pair can be collapsed into a single number: where the close sits between the two lines, scaled 0 to 100. On Casey Bands that reading already has a name — Close%, or PercentC. Computed on Bollinger Bands, the identical formula is the standard %B. So the three families stop being three indicators and become one number with three different ways of producing it, which means they can run through exactly the same code.

How we tested

One harness. The only thing allowed to vary is the band.

  • Markets: E-mini S&P 500 futures (ES, regular session, 5,026 daily bars, 19.5 years from 2007-01-03) plus SPY (8,398 bars from 1993-02-02), QQQ (6,866), IWM (6,537) and DIA (7,153).
  • Variants: 116,640 in total — 23,328 per market. Band length (3, 4, 6, 10, 14, 20, 30, 40), multiplier (0.25 through 3.0), entry level, exit level, mean reversion and breakout, long and short, and a protective time exit of 0, 5 or 10 bars. Identical axes for all three families.
  • Entry: the channel reading closes below the entry level, buy at the next open. Exit: it closes above the exit level, sell at the next open, or the time exit fires first. The raw band cross that most people mean by "Bollinger strategy" is the special case where the entry level is 0 and the exit level is 100 — it is in the sweep, alongside everything around it.
  • Money: $35,000 a position, no compounding, one position at a time. Frictionless in the main sweep, and priced properly further down.
  • No look-ahead, structurally: the decision is taken on a close, the fill happens at the following open. The code has no way to do otherwise.
  • Reliability: 98,894 of the 116,640 variants clear a 50-trade floor. Thin cells are flagged, never quietly dropped.

Two things are held still, and I would rather say so than have you find them. Casey Bands' smoothing stays at its defined default of 3 bars, and its ATR lookback is tied to its band length. Casey Bands have two knobs the other families do not, and letting me tune them while Bollinger and Keltner sat fixed would have handed my own indicator a search advantage — which is precisely the thing this study is trying to test for.

Does the band you choose change your results?

Barely.

FamilyVariantsProfitableMedian net profitMedian Ret/DDMedian win %Median tradesMedian time in marketMedian edge per trade
Bollinger Bands8,55299.5%$68,9253.5267.0%37042.8%0.15
Keltner Channels7,78499.3%$60,6263.0466.5%26037.1%0.16
Casey Bands8,41199.2%$58,3023.0064.2%22335.0%0.18

Return-to-drawdown is total profit divided by the worst losing stretch — higher means a smoother ride for the same money. Edge per trade is R-expectancy, the average profit per dollar risked; 0.2 or better is a common "worth trading" bar.

On the two measures a trader looks at first — did it make money, and how rough was the ride — the three are almost indistinguishable.

What each family made. Practically every variant of all three made money, and Bollinger takes the smoothest ride by a small margin.

Read the table and the shape is obvious. Bollinger makes the most money and takes the most trades and spends the most time exposed. Casey Bands make the least money, take the fewest trades and spend the least time exposed — and earn the most per trade. Keltner sits between them on every single line.

Where they actually differ. Casey Bands earn the most per trade while holding a position for the least of the time.

That is not three different edges. That is one edge, sampled at three different intensities. Hold on to the second chart — the gap in time spent holding a position is the one that decides the whole article, several sections from here.

Is Keltner really the trend band and Bollinger the mean-reversion one?

No. This is the most repeated claim in the whole subject and it does not survive contact with the data.

FamilyMean reversionBreakout
Bollinger Bands3.521.17
Keltner Channels3.041.56
Casey Bands3.001.68

Median return-to-drawdown, long variants. Mean reversion wins for all three, and it is not close: the worst mean-reversion family (3.00) still beats the best breakout family (1.68). Keltner's own mean-reversion variants beat its breakout variants by 95%.

Mean reversion beats breakout for all three. Keltner's reputation as the trend band does not survive the test.

If anything the folklore is backwards. Casey Bands and Keltner are the better breakout bands (1.68 and 1.56 against Bollinger's 1.17), and Bollinger is the better mean-reversion band. Every ranking page I could find asserts the opposite pairing, and none of them tested it.

What actually decides whether a band strategy makes money?

Which side you trade. Nothing else comes close.

FamilyLong variants profitableShort variants profitable
Bollinger Bands93.5%6.5%
Keltner Channels96.3%3.7%
Casey Bands96.0%4.0%

Pooled, 95.2% of long variants made money against 4.8% of short ones. The spread between the best and worst band on the long side is 2.8 percentage points. The spread between long and short is 90.4.

The band you pick moves the answer by 2.8 points. The side you trade moves it by 90.4.

This is the same finding that turns up in every study I run on US equity indexes, and it is worth saying plainly because it makes most indicator arguments pointless. The setup beats the indicator. Get the direction wrong and no band saves you; get it right and all three work.

Where is the profitable zone — and is it really widest for Casey Bands?

Here is where I have to correct myself.

When I published this article in 2025 I showed three optimisation surfaces and said Casey Bands produced "the broadest band of high profitability" — easier to optimise, harder to overfit. I never defined what "broadest" meant. So this time I set two bars before looking, and applied them identically.

FamilyVariantsProfitableRet/DD ≥ 2.0Ret/DD ≥ 3.0
Bollinger Bands8,55299.5%83.3%61.2%
Keltner Channels7,78499.3%76.5%51.1%
Casey Bands8,41199.2%74.7%50.0%

Casey Bands come last on both bars. The claim, as I stated it, is wrong.

The half that survives is the other reading of it. If "robust" means the neighbours behave like the winner — a flat surface rather than a lone spike — then Casey Bands do lead, and Bollinger is the worst of the three:

FamilyMedian Ret/DDSpread relative to the meanLowest cellHighest cell
Bollinger Bands3.430.550.3412.02
Keltner Channels2.770.480.478.30
Casey Bands2.590.450.477.62
The profitable zone, measured. Bollinger burns brightest; Casey's surface is the most even.

Bollinger has the highest peak and the deepest hole. Casey Bands have neither. That is a real property, and it is the property I was pointing at in 2025 — I just described it as "wider" when what I meant was "flatter", and then never measured either.

Here is the Casey Bands surface on its own, drawn the way the 2025 article drew it, with one addition it did not have: the 2.0 bar as a plane running through it. That is what "flat" looks like when you can see it. The surface clears the plane nearly everywhere, and it does it by sitting evenly above it rather than by spiking somewhere and collapsing next door.

The same Casey Bands data as a surface. Almost all of it clears the 2.0 plane, and it does so without a peak to fall off.

The 2025 renders had no plane and no criterion, which is exactly why "broadest" could not be checked. A surface with a bar drawn through it can be.

Do Casey Bands really hug price more tightly?

Yes. And that turns out to cut both ways.

FamilySettingMean channel widthCloses finishing outside
Bollinger Bands20, 2.04.93%10.5%
Keltner Channels20, 2.04.16%20.0%
Casey Bands20, 1.253.52%37.7%

Measured on every E-mini S&P 500 bar in the sample. Casey Bands are the tightest channel of the three, which is what I built them to be — and price finishes outside them on 37.7% of days, more than three times as often as Bollinger.

That comparison is not quite fair, because a narrower channel is easier to escape. So here it is with the channels forced to the same size — each multiplier tuned until the mean width is 4.00% of price:

FamilyMultiplier that matchesCloses finishing outside
Bollinger Bands1.62525.4%
Keltner Channels1.92522.1%
Casey Bands1.48030.1%
Casey Bands hug price — which is exactly why price escapes them most, even after the channels are made the same size.

Even at an identical width, price escapes Casey Bands most often and Keltner least. The 2025 article said Keltner "lets prices wander outside the bands" while Casey Bands "stay tighter and closer to price, adapting to both upward and downward pushes." Half right. They are tighter. But tighter is why price gets out — the adapting does not stop the escapes, it produces them.

I first built Casey Bands after watching price whip through my Keltner strategies during 2022's swings. The data now tells me the whipping was not a flaw in Keltner. It was the tight channel doing exactly what a tight channel does, and I had built myself a tighter one.

Is a 77% win rate worth anything?

The page that ranks first for "keltner channel strategy backtest" — QuantifiedStrategies' Keltner write-up — leads with "77% WinRate!" in its title. So I checked what a 77% win rate is worth here.

Of the 7,784 reliable long mean-reversion Keltner variants, 12.3% — 956 of them — win 77% of the time or better. The claim is easy to hit. Now the part nobody quotes:

Keltner long mean-reversion variantsMedian Ret/DDMedian net profit
The 12.3% that win ≥77% of the time2.58$58,018
The family as a whole3.04$60,626

The high-win-rate variants are worse. They earn less per unit of drawdown and less in dollars. The correlation between win rate and return-to-drawdown across them is +0.17 — near enough to nothing.

This is the oldest trap in a mean-reversion strategy. Buying dips wins often by construction; you take a lot of small wins and occasionally hold a falling knife. A win rate quoted on its own tells you how the strategy feels, not what it makes. Which is why nothing in this article quotes one without a risk-adjusted number beside it.

Do any of them beat just holding the S&P 500?

The comparison every strategy owes, and the one most articles skip.

For each family I took its most durable length-and-multiplier cell — profitable in all five markets on at least 100 median trades — and reported the median across every variant SPY has inside it. The median, not the best, so the number is not a winner.

StrategySettingMARAnnual returnWorst drawdownTime in market
Keltner Channels4, 0.50.3044.20%13.8%46.3%
Casey Bands3, 0.250.3044.32%14.3%45.8%
Bollinger Bands4, 0.250.2324.09%17.4%55.9%
Buy and hold SPY—0.1568.82%56.5%100%
Seeded random control—0.068—31.0%—

MAR is annual return divided by the worst percentage fall. It is the only return-over-drawdown ratio that can fairly be set beside a one-trade benchmark.

All three clear the two bars a strategy owes: doing nothing, and a coin flip that trades as often.

Read it honestly, because it says two things at once. Holding SPY earned 8.82% a year and every band strategy earned roughly half that. But holding SPY also cost you a 56.5% drawdown, and these cost 13.8% to 17.4%. Per unit of pain, the bands win comfortably. Per dollar of return, the index wins.

And they are only in the market 45.8% to 55.9% of the time. The other half, the capital is free.

What happens when the trading isn't free?

Everything above this line was frictionless. Now the bill.

Notice that the most durable settings are also the busiest — these cells trade 593 to 1,169 times. That is exactly where a zero-cost assumption flatters a result most, so it gets priced rather than disclaimed. Each family's stable setting is re-run charging a round trip against the position's own value: 0.02% a side is roughly a retail commission plus a tight spread on a liquid ETF, 0.05% is a deliberately harsh reading.

FamilyMedian tradesMAR frictionlessMAR at 0.02%MAR at 0.05%Profit kept at 0.05%
Keltner Channels5930.3040.2750.23080%
Casey Bands5980.3040.2740.22879%
Bollinger Bands1,1690.2320.1800.11659%
Buy and hold SPY10.156———
Bollinger's lead is bought with twice the trades. At 0.05% a side it falls below buy-and-hold; the other two do not.

Bollinger's advantage was a taxi that took the long way round. The meter says you got further; the fare says you paid for it. At 0.05% a side Bollinger drops to 0.116 — under buy-and-hold's 0.156 — while Keltner and Casey Bands stay clear at 0.230 and 0.228.

That is the whole article in one table. Frictionless, Bollinger wins. Charged for its trades, it loses to the index. The band that trades least wins, and the reason Casey Bands survive is the thing I did not know I had built into them.

Per hour of risk carried, Casey Bands earn the most — and holding the index earns more than Bollinger.

Does combining all three smooth the ride?

A little. Much less than I claimed in 2025.

One variant per family, each at its own published default, running side by side on SPY with $35,000 apiece:

StrategyTradesNet profitWorst drawdownMAR
Bollinger Bands alone191$42,08419.0%0.13
Keltner Channels alone153$34,44217.2%0.12
Casey Bands alone240$52,75123.2%0.12
All three combined584$129,27817.9%0.14

The combination improves MAR by 8% over the best single band, and its worst drawdown of 17.9% sits below the worst single band's 23.2% — but above the best single band's 17.2%.

The reason is in the correlations. Daily equity changes between the three ran +0.83, +0.79 and +0.84. Three bands drawn on one market, buying the same dips a day or two apart, are close to the same bet. Diversification pays when the things you own disagree, and these barely do. Combining band families is not a portfolio; combining genuinely different edges across genuinely different markets is, and that is a different article.

Where's the free code?

This is what the title promised in 2025 and what the original article did not actually deliver — it pointed at a download instead. Here is the indicator itself.

EasyLanguage (MultiCharts, TradeStation) — the authoritative definition, $SOf_CaseyBands v1.1:

inputs:
    LookBack(numericsimple), ATRLookBack(numericsimple),
    Multiplier(numericsimple), Smoothing(numericsimple),
    oUpperBand(numericref), oLowerBand(numericref), oMidBand(numericref),
    oPercentC(numericref), oWidthC(numericref);

variables: ATRValue(0), RawUpper(0), RawLower(0);

ATRValue = AvgTrueRange(ATRLookBack);

if BarNumber >= LookBack + 1 then begin
    RawUpper  = xAverage(High, LookBack) + (ATRValue * Multiplier);
    RawLower  = xAverage(Low,  LookBack) - (ATRValue * Multiplier);
    oUpperBand = Average(RawUpper, Smoothing);
    oLowerBand = Average(RawLower, Smoothing);
    oMidBand   = (oUpperBand + oLowerBand) / 2;
    oPercentC  = iff((oUpperBand - oLowerBand) <> 0,
                     (Close - oLowerBand) / (oUpperBand - oLowerBand), 0.5) * 100;
    oWidthC    = (oUpperBand - oLowerBand) / Average(Close, LookBack) * 100;
end;

$SOf_CaseyBands = 1;

Defaults: LookBack 20, ATRLookBack 20, Multiplier 1.25, Smoothing 3. Note that EasyLanguage's AvgTrueRange is a simple average of true range, not Wilder's smoothing, and xAverage is the exponential average.

Python — the version that produced every number in this article:

import numpy as np, pandas as pd

def _sma(x, n):
    return pd.Series(x).rolling(n).mean().to_numpy()

def _ema(x, n):                      # EasyLanguage xAverage
    return pd.Series(x).ewm(span=n, adjust=False).mean().to_numpy()

def casey_bands(high, low, close, length=20, mult=1.25, smoothing=3):
    prev_close = np.concatenate([[np.nan], close[:-1]])
    tr = np.maximum.reduce([high - low,
                            np.abs(high - prev_close),
                            np.abs(low - prev_close)])
    atr = _sma(tr, length)
    upper = _sma(_ema(high, length) + atr * mult, smoothing)
    lower = _sma(_ema(low,  length) - atr * mult, smoothing)
    return lower, (upper + lower) / 2.0, upper

def channel_position(close, lower, upper):        # Close% / PercentC / %B
    width = upper - lower
    return np.where(width == 0, 50.0, (close - lower) / width * 100.0)

def channel_width(close, lower, upper, length=20):   # WidthC
    return (upper - lower) / _sma(close, length) * 100.0

Those last two functions are the reason this comparison was possible at all: swap casey_bands for a Bollinger or Keltner calculation and channel_position gives you the same 0-100 reading, so the same strategy code runs on any of them.

The EasyLanguage above is my own code and I am publishing it here for you to use and modify. Please do not redistribute it as your own.

The verdict — and the honest limits

Casey Bands are not better than Bollinger Bands or Keltner Channels. They are also not worse. On the measure that ends up mattering — what is left after you pay for the trades — they and Keltner finish level at 0.228 and 0.230 MAR while Bollinger falls to 0.116, and the reason is simply that they trade half as often for nearly the same return.

Where the hype is right: a tighter, ATR-based channel built off the highs and lows really does behave differently from a standard-deviation channel built off the close. The difference is measurable, consistent, and worth something.

Where it is wrong — including where I was wrong: no band family is "the profitable one". The choice between them is a 0.52 decision on median return-to-drawdown. The choice between long and short is a 90.4-point decision. Anyone selling you a band as an edge has the ratio backwards.

Limits, because a study that hides them is not worth trusting.

  • The main sweep is frictionless. The costs section prices that, but only for three settings on one market. Every other number in this article is an upper bound.
  • The best settings sit at the short, tight end of the grid — lengths of 3 and 4 with multipliers of 0.25 to 0.5. That is well away from every published default, it trades 600 to 1,200 times, and it is precisely where costs and slippage do the most damage. Treat it as the direction the edge points, not as a recommendation.
  • Five markets, one family. ES, SPY, QQQ, IWM and DIA are all US equity indexes and they move together. 206 of the study's 213 length-and-multiplier cells were profitable in all five, which sounds like broad validation and is really one market tested five ways.
  • The futures results are quoted as ratios, deliberately. One E-mini contract carries roughly $376,750 of notional against a $35,000 account, so percentage-of-account figures on ES are meaningless. Every percentage in this article comes from SPY, where whole-share sizing is unleveraged.
  • A backtest is not a live edge. These are historical fills at historical opens with no queue, no partial fills and no bad night's sleep.

What this means for you

  1. Stop choosing between band families. The decision is worth 0.52 on return-to-drawdown. Pick whichever one you can read on a chart and move on.
  2. Spend the effort on direction and style instead. Long mean reversion on a US index was profitable in 95.2% of long variants. Short was profitable in 4.8%. That is where your testing time belongs.
  3. Count your trades before you admire your equity curve. Two settings with the same frictionless return and a 2:1 difference in trade count are not the same strategy. The busier one is borrowing from your broker to look good.
  4. Never accept a win rate on its own. The 77%-win-rate Keltner variants earned 2.58 return-to-drawdown against 3.04 for the family. Ask for the risk-adjusted number, every time.
  5. If you want the tightest channel, take the escapes with it. Casey Bands close outside the channel 30.1% of the time even at a matched width. That is a design choice, not a defect — decide whether you want it.

If you want the tested library rather than one indicator, the $37 mean-reversion ebook collects 36 of these signals with the same treatment.

The next study, and the ones that quietly overturn something I published last year, land in the Overfit newsletter first. StatOasis.com/Overfit

Published 2 August 2025 · rebuilt from scratch and last updated 19 August 2026. Every figure above is computed from this study's own results table, which you can download and check. This is research, not investment advice, and a backtest is not a promise — trading involves risk of loss.

Methodology

Data source
E-mini S&P 500 futures (ES, regular session) plus SPY, QQQ, IWM and DIA — daily bars from my own end-of-day vendor files, held in this repo and not redistributed.
Date range
ES 2007-01-03 to 2026-07-01 (5,026 bars, 19.5 years); SPY 1993-02-02 to 2026-06-12 (8,398 bars); QQQ 1999-03-10 to 2026-06-26 (6,866); IWM 2000-06-28 to 2026-06-26 (6,537); DIA 1998-01-20 to 2026-06-26 (7,153). 116,640 variants in total, 23,328 per market.
Entry / exit rules
Every family is reduced to one 0-100 reading of where the close sits inside its channel. Mean reversion long: the reading closes below the entry level, buy the next open; it closes above the exit level, sell the next open. Breakout is the same rule reversed, short is the mirror of both. A protective time exit of 0, 5 or 10 bars caps every trade.
Sizing
$35,000 per position, no compounding. Futures size one contract via BigPointValue; ETFs size whole shares out of the same capital. Frictionless in the main sweep — no commission and no slippage — and that assumption is priced explicitly in the costs section rather than left as a disclaimer.
Overlap mode
Flat-only. One position at a time; a signal arriving while a trade is open is skipped, exactly as it would be in life.
Look-ahead
Structural, not promised. The decision is taken on the close of bar t and the fill happens at the open of bar t+1. The engine's signal path has no way to express a same-bar fill.
Minimum sample
50 trades. The engine default. Thin cells are flagged and reported, never dropped — 98,894 of the 116,640 variants clear it.
Buy-and-hold benchmark
Long from the first open to the last close, sized identically, scored through the same metric engine. On SPY: $551,738 net, 8.82% a year, a worst drawdown of 56.5%, MAR 0.156.
Random control
A seeded, frequency-matched coin flip — it fires as often as this study's own median variant and holds as long, averaged over 10 replications from base seed 20260803. On SPY: $36,253 net (spread $10,954), worst drawdown 31.0%, MAR 0.068.
Parameter scopeParameters swept

The study searched the parameter space and reports the spread, not one tuned setting.

Band length (8 values, 3 to 40), multiplier (9 values, 0.25 to 3.0), entry level (3), exit level (3), entry style (2), side (2) and protective time exit (3) are all swept, identically for all three families, on all five markets. Two things are held fixed and both are declared: Casey Bands' smoothing stays at its defined default of 3 bars, and its ATR lookback is tied to its band length, so every family sits on one length axis rather than Casey getting two extra knobs the others do not have.

Run to v1 of the StatOasis research standard - the rules every study here has to meet before it is published. The version is the study's own: a standard that gained a rule later never reaches back and claims this one met it.

Historical backtest results are not a guarantee of future returns. This content is for educational purposes only and is not investment advice. Hypothetical performance disclosure (CFTC Rule 4.41).

Frequently asked questions

Which is better, Bollinger Bands or Keltner Channels?⌄

On 116,640 backtests across five US index markets, neither. Long mean-reversion variants ran 3.52 median return-to-drawdown for Bollinger against 3.04 for Keltner while the trading was free — but Bollinger's best durable setting trades 1,169 times to Keltner's 593, so at 0.05% a side Bollinger keeps 59% of its profit and Keltner keeps 80%. Once you pay for the trades, Keltner is ahead.

Are Bollinger Bands included in the Keltner Channel?⌄

No — they are two separate indicators that happen to draw a similar picture. Bollinger Bands set their width from the standard deviation of the close; Keltner Channels set theirs from Average True Range. They are often plotted together because a Bollinger band sitting inside a Keltner channel is the popular 'squeeze' signal.

What are Keltner Channels in trading?⌄

A price channel: a 20-period exponential moving average of the close, with an upper and lower line placed a multiple of Average True Range away from it. StockCharts publishes the default as a 20-period EMA plus and minus 2 times ATR(10). Because ATR moves more calmly than standard deviation, the channel width changes more smoothly than a Bollinger band's.

What is the best setting for Keltner Channels?⌄

On this data the most durable Keltner setting was a band length of 4 with a 0.5 multiplier, profitable in all five markets, median MAR 0.304 against 0.156 for holding SPY. That is a far shorter lookback than the published 20-period default, and it is a mean-reversion setting, not a trend one.

What is the success rate of Bollinger Bands?⌄

It depends almost entirely on which side you trade. 93.5% of long Bollinger variants made money in this sweep and 6.5% of short ones. On the long mean-reversion side the median win rate was 67.0% — but a high win rate is not the same as a good strategy, which is the point of the 77% section below.

Do professional traders use Bollinger Bands?⌄

Widely, and they are a perfectly sound tool — John Bollinger's own site is still the reference for them. What this study argues is that the choice between one band family and another is a much smaller decision than traders treat it as: the spread between the best and worst family here was 0.52 on median return-to-drawdown, against a 90.4-point gap between trading long and trading short.

What are Casey Bands?⌄

A price channel I built in 2025. The upper band is an exponential average of the daily highs plus a multiple of ATR, the lower band an exponential average of the daily lows minus the same, and both are then smoothed by a short simple average. Centring on the highs and lows instead of the close is the whole difference, and it makes the channel the tightest of the three: 3.52% of price on the E-mini S&P 500 at its default, against 4.93% for Bollinger.

What is the Casey Bands formula?⌄

UpperBand = SMA(EMA(High, n) + Multiplier × ATR(n), s) and LowerBand = SMA(EMA(Low, n) − Multiplier × ATR(n), s), with MidBand the midpoint of the two. The defaults are n = 20, Multiplier = 1.25 and s = 3. The full code is in this article.

What is Close% (PercentC) on Casey Bands?⌄

Where the close sits between the two bands, on a 0 to 100 scale: (Close − LowerBand) ÷ (UpperBand − LowerBand) × 100. Zero means price is exactly on the lower band, 100 exactly on the upper, and anything outside that range means price has broken through. Computed on Bollinger Bands the identical formula is the standard %B.

What is channel width (WidthC), and what is it for?⌄

The gap between the bands as a percentage of average price: (UpperBand − LowerBand) ÷ SMA(Close, n) × 100. It is a volatility reading — dividing by an average price instead of the last close is what makes it comparable across instruments and across decades. Bollinger's own %bandwidth is the same idea divided by the middle band.

How do I interpret ATR bands?⌄

Both Keltner Channels and Casey Bands are ATR bands: the width is a multiple of recent average range rather than a statistical spread. Wide means the market has been moving; narrow means it has been quiet. On this data the reading that mattered was not the width itself but how often price closed outside it — 20.0% of days for Keltner at its default, 37.7% for Casey Bands.

Do Casey Bands repaint?⌄

No. Every input is a completed bar's high, low or close, so a band value fixes when the bar closes and never changes afterwards. The backtests above take the decision on that close and fill at the next open, which is the same discipline.

Can I use Casey Bands on other markets or intraday?⌄

The settings do not carry over untested. This study covers daily bars on five US equity index markets, and 206 of its 213 length-and-multiplier cells were profitable in all five — but that is a family of highly correlated markets, and nothing here says anything about currencies, commodities or a five-minute chart.

↓Download the dataset (19 MB)

Read the Strategies, Backtested hub
← Back to Research

Table of contents

  • TL;DR — the answer box
  • How is each band actually calculated?
  • How we tested
  • Does the band you choose change your results?
  • Is Keltner really the trend band and Bollinger the mean-reversion one?
  • What actually decides whether a band strategy makes money?
  • Where is the profitable zone — and is it really widest for Casey Bands?
  • Do Casey Bands really hug price more tightly?
  • Is a 77% win rate worth anything?
  • Do any of them beat just holding the S&P 500?
  • What happens when the trading isn't free?
  • Does combining all three smooth the ride?
  • Where's the free code?
  • The verdict — and the honest limits
  • What this means for you
  • Methodology
  • FAQs

Overfit - the newsletter

Skip the hype. Trust the data.One practical takeaway per issue.

Running a quick security check before this can be sent.

Delivered +2 times a month - when the work is ready, not on a calendar.I'll never sell your address.Unsubscribe in one click, any time.

Related Articles

Back to all research
#115

RSI Deep Dive: How to Trade the S&P 500 Like a Pro with Mean Reversion

Feb 7, 2025 · 3 min read

Deep dive into RSI strategies for S&P 500 mean reversion trading. Unlock higher profits with filters and proven optimizations

Read more→
#132

Donchian Channel Strategy: I Backtested '40 In, 20 Out' 1,188 Ways on 33 Years of SPY

Jun 6, 2025 · 7 min read

The classic 40-in/20-out channel breakout, re-tested 1,188 ways on 33 years of SPY: long-only still made 105.5% frictionless — but the famous 20-day-low exit lost to a plain 20-bar time exit, shorts destroyed the account, and the edge has decayed every decade.

Read more→
#121

Z-Score Mean Reversion Strategy: 2,400 Backtests on Futures and SPY, and the 74% Win Rate Is a Trap

Mar 21, 2025 · 7 min read

The z-score mean reversion strategy tested 2,400 ways on S&P futures and SPY: the famous 74% win rate reproduces on both markets, yet 0 of 1,008 reliable SPY variants beat buy-and-hold, a single leveraged futures contract's buy-and-hold draws down 114% of the account, and the only tradable edge is a stable region at the 10-day lookback.

Read more→
#114

CaseyC% Oscillator: A Smarter Mean Reversion Strategy for SP500 Traders

Jan 31, 2025 · 2 min read

Discover how CaseyC% oscillator can diversify your mean reversion strategies and improve portfolio performance in SP500 trading.

Read more→

Overfit - the newsletter

Skip the hype. Trust the data.

One practical, evidence-driven takeaway per issue - strategy testing, portfolio construction, market structure, trading psychology, tactical asset allocation.

Running a quick security check before this can be sent.

Delivered +2 times a month - when the work is ready, not on a calendar.I'll never sell your address.Unsubscribe in one click, any time.

StatOasis is calm, evidence-based algorithmic-trading education, founded by Ali Casey. Ali builds systematic trading strategies and teaches the workflow behind them: research, build, test, combine, deploy. He writes the Overfit newsletter, published since 2024, and runs the Algo Trading Masterclass.

Socials

  • X ↗
  • YouTube ↗
  • Instagram ↗
  • LinkedIn ↗
  • GitHub ↗
  • Muck Rack ↗
  • LinkedIn SO ↗
  • GitHub SO ↗

Products

  • Overfit - the newsletter
  • Algo Trading Masterclass ↗
  • StatOasis Community
  • Digital Products
  • 36 Ways to Buy the Dip
  • AlgoChef ↗

Reading & tools

  • Research
  • Methodology
  • Survive the Decade
  • Wall of Love

StatOasis

  • About Ali Casey
  • Contact
© 2026 StatOasis. Calm, evidence-based.
PrivacyTermsHypothetical resultsCalifornia