Volatility envelopes plotted a multiple of Average True Range above and below price, sized by how much the market has actually been moving.
ATR Bands are a volatility envelope built by adding and subtracting a multiple of the Average True Range (ATR) from a price source, typically the close. The result is two lines that track price directly, with a gap that widens when recent bars have been large and narrows when they have been small. The idea is straightforward: instead of drawing an envelope a fixed percentage away from price, size the envelope by the market's own recent movement, so 'far from price' means the same thing in calm and volatile conditions. This is also the cleanest way to answer how ATR Bands differ from Keltner Channels: ATR Bands are centered on price itself (or another raw source), while Keltner Channels place the same kind of ATR-based envelope around an exponential moving average — a smoothed centerline rather than raw price. The distinction matters because Keltner Channels lag price twice (once in the EMA, once in the ATR) while ATR Bands lag only through the ATR. ATR Bands describe recent volatility around price; they do not predict where price will go. This is educational material only, not financial advice, and trading always involves risk of loss.
The engine is the Average True Range. Each bar's true range is the largest of: high minus low, the absolute distance from the previous close to the current high, and the absolute distance from the previous close to the current low — a definition that captures gaps as well as intrabar range. ATR is then a smoothed average of true range, and Wilder's original smoothing (the RMA, which is what ta.atr uses in Pine Script) responds gradually to changes in bar size. The bands are simply: upper band = source + multiplier × ATR, lower band = source − multiplier × ATR, with 14-period ATR and a multiplier around 2.0 as common defaults. Because the source is usually the raw close, the bands follow every wiggle in price, and only the width evolves smoothly. Compare the family: Bollinger Bands use standard deviation of price around an SMA basis; Keltner Channels use ATR around an EMA basis; ATR Bands use ATR around price itself. Each choice trades centerline smoothness against responsiveness. Related tools such as the Chandelier Exit and SuperTrend take the same ATR offset but add a ratchet or flip rule so the line trails price instead of straddling it.
ATR length 14 (Wilder's original default) with a multiplier of 2.0 is the most common starting point; multipliers from 1.0 to 3.0 are widely used depending on how much room the envelope should give. The source is usually the close, though some versions center on hl2 or an EMA — at which point the tool effectively becomes a Keltner Channel. As always, the defaults are conventions rather than optimal values, and changing length, multiplier, or source changes every reading.
//@version=6
indicator("ATR Bands", overlay = true)
atrLen = input.int(14, "ATR Length", minval = 1)
mult = input.float(2.0, "ATR Multiplier", minval = 0.1, step = 0.1)
src = input.source(close, "Source")
atrValue = ta.atr(atrLen)
upperBand = src + mult * atrValue
lowerBand = src - mult * atrValue
plot(upperBand, "Upper ATR Band", color = color.teal)
plot(lowerBand, "Lower ATR Band", color = color.teal)
plot(src, "Center (Source)", color = color.new(color.gray, 50))Pro tip: Before comparing ATR Bands across platforms or scripts, confirm three things: the ATR length, the multiplier, and — most often missed — what the bands are centered on. A script centered on an EMA is a Keltner Channel wearing an ATR Bands label, and its values will legitimately differ from a price-centered version. Use the bands as a volatility yardstick for risk placement rather than as entry signals. Educational content only, not financial advice; all trading carries risk of loss.
Educational only — not financial advice, not a recommendation to trade. No indicator is predictive; trading involves substantial risk of loss.