Oisigma/Blog
Research & notes

The Bollinger Band Drift Problem, Explained

If you've watched a strong rally on a chart with Bollinger Bands®, you've probably seen the pattern: price presses against the upper band bar after bar — traders call it "walking the band" — while the middle line trails far below and the lower band drops away into space nobody is trading in. The band is supposed to frame where price is; in a trend, it visibly stops doing that.

Most explanations stop at "Bollinger Bands are a lagging indicator." That's true, but it names the symptom, not the cause. The drift has a specific, two-part mechanism, and both parts come from the same design decision: the bands measure price levels rather than price changes. This article walks through the mechanism — and what changes when a band measures the same volatility in return space instead.

What the formula actually measures

Bollinger Bands® at the canonical settings compute two things over a 20-period window: a simple moving average of price, which becomes the middle line, and the standard deviation of price around that average, which sets the band width — usually ±2 standard deviations, written (20, 2).

Both statistics are computed on raw price levels. In a flat, range-bound market that distinction barely matters: the average of the last 20 closes sits near the current close, and the dispersion of those closes reflects day-to-day variability. The construction behaves as intended.

A trend breaks both statistics at once.

Problem one: the center lags the trend

A 20-period average of price is, by construction, an estimate of where price was on average over the last 20 bars — roughly, where price was 10 bars ago in a steady trend. When price is going nowhere, that's a fine proxy for where price is now. When price is trending, it isn't: the average is always anchored to older, lower (or higher) levels, so the middle line runs persistently behind the market.

The consequence is mis-centering. A band is only a meaningful "high and low" frame if its center tracks where price actually is. In a trend, the Bollinger center sits systematically on the wrong side of price — which is exactly why price appears to "walk" one band. Price isn't repeatedly doing something extreme; the band's center has drifted off-center, so ordinary continuation keeps landing near the same edge. One edge does all the work while the far edge trails uselessly behind the move.

Problem two: the width inflates for the wrong reason

The second effect is subtler. The band's width comes from the standard deviation of price levels over the window. But in a trend, the prices in the window differ from each other for two distinct reasons: genuine day-to-day variability, and the trend itself — the fact that price at the start of the window was simply at a different level than at the end.

The standard deviation can't tell those apart. It reads the trend's own displacement as dispersion, so the band widens even if daily variability hasn't changed at all. The width stops meaning "how much price typically fluctuates" and starts meaning "how far price has traveled lately" — a different quantity, and not the one a trader reads the band for.

Put the two together and you get the drift problem in full: a center that lags the market and a width inflated by the very trend the center is failing to track. Off-center plus mis-scaled means more closes escape the band than its nominal coverage suggests. That shortfall is measurable — our audit of how accurate Bollinger Bands® are found containment of about 83% at the canonical (20, 2) settings versus the ~95% the ±2SD construction nominally implies, a historical measurement, not a guarantee of future results.

Don't the settings fix it?

The natural objection: shorten the window, or widen the multiplier. Shortening the window does make the average hug price more closely — at the cost of a jumpier band that reacts to every wobble, which is the classic responsiveness-versus-stability trade-off every rolling window faces. Widening the multiplier just makes a mis-centered band wider.

Neither addresses the cause, because the cause isn't the tuning — it's what's being measured. Any average of price levels lags a trend, at any window length, and any standard deviation of price levels absorbs the trend into its width. Tuning changes how much; it can't change whether. Our working paper's head-to-head comparison makes the same point empirically: the gap between constructions persists when the settings are matched, which is why we describe the drift as a formula property, not a settings property. The methodology for that comparison is published in the working paper.

Measuring in return space instead

There is a construction that avoids both halves of the mechanism: measure volatility on returns — percentage changes from close to close — rather than on price levels, and then project the result back onto the chart anchored to the most recent close.

That single change addresses both problems at once. Centering: the band is re-anchored to the prior close every bar, so its center is where price actually is, not where price averaged out to be over the past month. Width: returns don't accumulate the trend's displacement the way levels do, so the dispersion being measured is the day-to-day variability itself — the quantity the band's width is supposed to represent.

The difference is visible and measurable. On our Proof page you can see the same chart drawn both ways — the price-based band lagging and sitting off-center through a rally while the return-space band stays wrapped around price — along with the published head-to-head numbers: at the same 2σ nominal width on the same data, the return-space band contained ~94% of next closes versus ~83% for standard Bollinger Bands® at (20, 2), and a price-based band matched to identical ±1SD settings held only ~42%. All of these are historical calibration measurements; past behavior is not a guarantee of future results. The comparison uses the containment metric — the band-testing method we've written up in how to compare band indicators — and is limited to that metric.

None of this makes a price-based band useless. Traders who read Bollinger Bands® as a relative high/low frame, without attaching probabilities to the edges, are using them in a way the drift affects less. The mechanism matters most if you read the band statistically — if a close outside the band means "rare event" to you, then a band that drifts off-center in trends is quietly redefining "rare" exactly when markets are moving. What "reading a band statistically" requires of the band — and how to check whether any band earns it — is the subject of our calibrated expected-range indicator pillar, and the direct product comparison lives on the Bollinger Bands® alternative page.

The takeaway

The Bollinger drift problem isn't noise, bad luck, or a settings mistake. It's two consequences of one design decision: averaging price levels puts the band's center behind any trending market, and taking the standard deviation of those levels inflates the band's width with the trend's own displacement. "Walking the band" is what that looks like on a chart. Measuring the same volatility in return space — changes rather than levels, re-anchored every bar — removes the mechanism rather than tuning around it, and the published containment numbers above show the size of the difference on historical data.

If you'd like to see the two constructions side by side on markets you actually trade, the Behavioral Transform Model draws a calibrated expected range on any TradingView chart — descriptive context, recalculated every bar, with its calibration record published on the Proof page. You can start a free 30-day trial and watch how each band behaves the next time a trend gets going.

Now, your charts

Curious how this looks on your charts?

Try it free for 30 days and see the range update as new bars print, on whatever symbols and timeframes you actually trade.

Start your free trial
Complete checkout
Read the paper

30 days free, then $15/mo. Cancel anytime from your account.

Pick up where you left off.