Quantitative Finance & Trading
Bollinger Bands Formula: Upper/Lower Envelope, %B Position & Squeeze Bandwidth
Calculate John Bollinger’s adaptive volatility envelope (SMA +- k*sigma), normalized %B position oscillator (Close - Lower)/(Upper - Lower), and relative Bandwidth %.
Normalize price location and volatility compression with %B and Bandwidth!
John Bollinger’s volatility bands center an N-period Simple Moving Average Middle = SMA_N (typically N = 20) inside Upper = Middle + k * sigma and Lower = Middle - k * sigma (typically k = 2). Two companion indicators make Bollinger Bands systematically comparable across hundreds of tickers:
(1) %B = (Close - Lower) / (Upper - Lower), which equals 0.00 at the lower band, 0.50 at the middle SMA, 1.00 at the upper band, and > 1.00 on upper-band breakouts; and (2) Bandwidth (%) = 100 * (Upper - Lower) / Middle = 100 * (2 * k * sigma) / Middle, whose 6-month lows identify low-volatility "Bollinger Squeezes" preceding sharp range expansions!
| Price Scenario (SMA = 100, sigma = 5, k = 2 -> [90, 110]) | Bollinger %B | Bandwidth (%) | Regime Interpretation |
|---|---|---|---|
| Close = 108 (Near Upper 110) | 0.9000 | 20.00% | Upper quartile strength (90% of band span) |
| Close = 114 (Above Upper 110) | 1.2000 | 20.00% | Active upper-band breakout (> 1.00) |
| Close = 88 (Below Lower 90) | -0.1000 | 20.00% | Lower-band excursion (< 0.00) |
Bollinger %B Relative Band Position Oscillator
Evaluates (Close - Lower) / (Upper - Lower) where Lower = B3 - B5*B4 and Upper - Lower = 2*B5*B4.
=IF(OR(B3 <= 0, B4 <= 0, B5 <= 0), "Requires Positive SMA, Sigma, and Multiplier k", ROUND((B2 - (B3 - B5 * B4)) / (2 * B5 * B4), 4))Bollinger Bandwidth (%) Volatility Width Ratio
Expresses total envelope span 2 * k * sigma as a percentage of the middle moving average B3.
=IF(B3 <= 0, 0, ROUND(100 * (2 * B5 * B4) / B3, 2))Try the example
Use the original values or change them to test your understanding.