Skip to main content
All articlesSkip to article content
IndicatorsConcept PrimerJun 12, 2026 · 7 min read

What Is a Bollinger Band Squeeze in Futures Trading?

A Bollinger Band squeeze is a contraction in price volatility. Here is what band width measures, what a squeeze predicts, and what it does not predict.

By Imperial Analytics

A Bollinger Band squeeze is the chart pattern most futures traders meet before they meet the math underneath it. The bands pinch. The price chops. The squeeze is supposed to mean a move is coming. The question this post answers is narrower and more useful: what is band width actually measuring, and what does a contraction in that measurement tell you that is true, separate from what trader folklore claims about it.

By Imperial Analytics

What a Bollinger Band squeeze is, in one sentence

A Bollinger Band squeeze is a sustained contraction in the distance between the upper and lower Bollinger Bands relative to its own recent range, caused by a drop in the standard deviation of price over the lookback window, and indicating only that realized volatility has fallen, not the direction of any subsequent move.

The bands themselves are a three-line construct introduced by John Bollinger in the early 1980s and documented in his 2001 book.1 The middle line is a simple moving average of price across a lookback window, typically twenty periods. The upper band sits a fixed number of standard deviations above that moving average, typically two. The lower band sits the same distance below. The distance between the upper and lower band is therefore a direct function of the standard deviation of price across the lookback. When realized volatility falls, the standard deviation shrinks, and the bands pull toward the middle line. That is the squeeze.

Two things follow from that construction and are worth holding onto before any chart-pattern intuition takes over. The squeeze is a measurement, not a forecast. And the measurement is a backward-looking estimate of how spread out price has been across the last twenty bars, which is a different question from how spread out price will be across the next twenty.

How the bands are constructed, period by period

Each bar, the indicator computes a twenty-period simple moving average of the closing price, then computes the standard deviation of those same twenty closes around that average, then plots one band two standard deviations above the average and another two standard deviations below. The bands move every bar because both the average and the standard deviation refresh on a rolling window.

MES on a five-minute chart will make this concrete. Take a window of the most recent twenty five-minute closes. Add them, divide by twenty. That is the middle band for the current bar. Now take each of those twenty closes, subtract the average, square the result, sum the squares, divide by twenty, take the square root. That is one standard deviation of those twenty closes. Multiply by two, add to the middle band for the upper line, subtract from the middle band for the lower line.

When the next five-minute bar prints, the oldest close drops out, the newest close enters, and the whole calculation repeats. The middle band shifts by whatever the new average is. The width shifts by whatever the new standard deviation is. If the twenty closes that fed the current calculation were tightly clustered together, the standard deviation is small and the bands sit close to the middle. If those same twenty closes were widely dispersed, the standard deviation is large and the bands sit far apart.

The choice of twenty periods and two standard deviations is convention, not law. Bollinger noted that a twenty-period middle band fits a typical four-week reference for daily data and rolls cleanly to shorter intraday windows, and that two standard deviations captures roughly the bulk of recent observations under a normal-distribution assumption that price does not actually obey.1 Traders who run different windows get different bands and a different sensitivity to the squeeze. The mechanics do not change.

What band width actually measures

Band width is the upper band minus the lower band, often divided by the middle band to give a percent. That ratio is a direct readout of the recent standard deviation of price relative to the recent average of price. A falling band width means realized volatility has dropped. A rising band width means realized volatility has risen. The squeeze is a band width near the low end of its recent range.

A useful way to keep this honest is to write the ratio out. If the upper band is at 5,210 and the lower band is at 5,190 on ES and the middle band is at 5,200, then the band width is 20 points, the percent band width is 20 divided by 5,200 or about 0.0038, which is 0.38 percent. If thirty bars later the bands are 5,206 and 5,194 around a middle of 5,200, the band width is 12 points and the percent band width is about 0.23 percent. The squeeze label attaches to that drop from 0.38 to 0.23 percent because the second reading sits near the low end of the last few sessions of percent band width.

What it does not measure is intent. It does not know whether the contraction was caused by a sleepy lunch session, a holiday calendar, a pre-announcement coil, or a delicate balance between a heavy seller and a heavy buyer near the same price. It is a single scalar that summarizes how tightly the last twenty closes hugged their own average. Two charts can produce the same percent band width through very different microstructure.

Data note

The numerical examples in this post are illustrative. The ES band-width values, the 0.38 and 0.23 percent readings, the twenty-period window, and the two-standard-deviation default are chosen to make the arithmetic clear. They are not measurements drawn from a specific session or a specific date.

Why a squeeze sometimes precedes an expansion, and what it does not predict

Realized volatility clusters in time. Periods of low volatility often follow periods of low volatility, and periods of high volatility often follow periods of high volatility, and the regime can change abruptly. A squeeze marks the low-volatility cluster. The expansion that sometimes follows is the regime change. The squeeze does not tell you which direction the expansion will take, when it will happen, or whether it will happen at all inside any given trading session.

The empirical regularity behind the squeeze-then-expansion intuition is volatility clustering, the long-documented finding that absolute price changes are autocorrelated even when the signed price changes are not. Bollinger himself was careful in the 2001 text to describe a squeeze as a setup that frequently precedes a sharp move, not as a directional signal. The bands measure dispersion. Direction is a separate question that requires a separate read.

What this means at the trader's desk is that a squeeze read is a regime read, not an entry read. A trader who treats every contraction as a coming breakout will catch some real expansions and a long tail of fake-outs where the price punches through one band, reverses, and prints inside the channel again within a few bars. The squeeze did its job in both cases. It said volatility was compressed. It did not promise a sustained directional move, because that is not what band width measures.

↳ Note

A squeeze tells you volatility has compressed. It does not tell you which way the next expansion will run. Treating the first as proof of the second is how a clean indicator becomes a noisy signal.

How to log a squeeze trade so you can measure it later

Record the band-width percent at entry, the band-width percent at the prior peak in the lookback, the direction of the breakout, the time of day, and the realized excursion on both sides. Tag each trade with the volatility regime at entry. Compute expectancy per tag. Then you have a per-regime read that survives a losing week.

The honest way to use the squeeze is to treat it as a tag on a trade, not as a trade by itself. Three numbers and two labels are enough to make the data set worth keeping. At entry, write down the percent band width and the highest percent band width across the last forty or fifty bars on the same chart. The ratio of those two numbers is a single scalar that says how compressed price is right now relative to its own recent maximum. Add the direction of the entry, long or short. Add the time of day in fifteen-minute bins. Add the maximum favorable excursion and maximum adverse excursion on the trade.

That gives you a per-trade row with two regime labels (low band width or not, time of day) and three measurements (entry compression ratio, MFE, MAE). After twenty trades inside the low band width tag, you can ask the only question that matters. Is the average net result on those twenty trades better, worse, or the same as the average net result on the twenty most-recent trades outside that tag. If the difference is small or noisy, the squeeze tag is not paying you. If the difference is consistent across more rolling windows of twenty trades, you have a measurable behavioral edge tied to a measurable regime, and the band-width number stops being a chart-pattern intuition and starts being a number you can act on with discipline.

Twenty trades is the floor below which the comparison is not meaningful, per Imperial's sample-size standard. Below that you have a hypothesis, not a measurement.

Frequently asked questions

Frequently asked questions

  • q: Does a Bollinger Band squeeze predict the direction of the next move? a: No. Band width measures the recent dispersion of closing prices around their twenty-period average. It is a single scalar with no sign. A contraction tells you realized volatility has fallen. The direction of any subsequent expansion is a separate question and requires a separate read.
  • q: What lookback window should I use for the moving average and the standard deviation? a: Bollinger's default is twenty periods for the simple moving average and two standard deviations for the band offset. The default fits a typical four-week reference for daily data and rolls cleanly to intraday timeframes. Shorter windows make the bands more reactive and the squeeze more frequent. Longer windows produce fewer squeezes but each one reflects a deeper contraction.
  • q: Should I use percent band width or raw band width? a: Percent band width, defined as the upper band minus the lower band divided by the middle band, normalizes for the price level of the instrument. That makes it comparable across sessions where price has moved and across instruments. Raw band width in points cannot be compared across different price levels without that normalization.
  • q: How few bars of compressed band width counts as a squeeze? a: There is no universal threshold. A common working definition is a percent band width near the low end of its own range over the last fifty to one hundred bars on the same chart and the same timeframe. The threshold should be chosen and held constant before tagging trades, not adjusted after results come in.
  • q: Why does the squeeze sometimes fire and sometimes fail? a: Realized volatility regimes cluster, and the cluster can end in either direction or extend further. A squeeze identifies the low-volatility cluster. Whether the next expansion is up, down, sustained, or whipped is determined by order flow, news, time of day, and microstructure that band width does not see. The indicator is doing its job in both the clean-breakout case and the fakeout case.

Call to action

Sources

Footnotes

  1. John Bollinger, Bollinger on Bollinger Bands, McGraw-Hill, 2001. Source for the band construction, the twenty-period and two-standard-deviation defaults, the percent band width formula, and the description of the squeeze as a volatility contraction that frequently precedes a sharp directional move. 2

indicatorsvolatilitybollinger bandsmethodologyfutures