Indicators: volatility (ATR %, True Range, Squeeze, Realized Vol)

The Volatility group contains six studies: ATR %, True Range, Std Dev, Squeeze, Chaikin Volatility and Realized Vol. They measure price distance from high, low and close, run continuously across sessions and ignore the tick size.

Senzoukria · Documentation · Updated September 2026


Where to find it

Where
Chart toolbar → Indicators → group "Library · Volatility"
Target
Pane, except Squeeze which draws dots on the price chart
Not here
ATR, Bollinger, Keltner and Donchian live in Averages & volatility
Session reset
None

What it does

ATR % divides Wilder's ATR by the close and multiplies by 100, making volatility comparable across instruments; a close ≤ 0 gives no value. True Range is a per-bar histogram of Wilder's TR, defined from the first bar (high − low) since no previous close exists. Std Dev is the windowed population standard deviation of the close (÷N), computed in two passes around the window mean to avoid catastrophic cancellation on futures prices.

Squeeze follows John Carter's TTM rule: a dot is placed at the close when the Bollinger bands are strictly inside the Keltner channel (BB upper < KC upper and BB lower > KC lower). It recomputes both envelopes internally with its own defaults rather than reading the Bollinger or Keltner studies. Chaikin Volatility is the percent change over M bars of the EMA(N) of high − low. Realized Vol is the sample standard deviation (÷(N−1)) of the last N log returns, annualised by the square root of the Periods / year parameter, in percent.

Settings

Parameters declared in the Volatility group
StudySettingDefault (range)What it changes
ATR %Period14 (1–200)Wilder ATR length before normalisation
True RangePositive color / Negative color / Smoothinggray / red / 1 (1–200)Histogram colors; optional SMA post-smoothing, 1 = off
Std DevPeriod20 (2–200)Window of the population σ of the close
SqueezeBB period / BB multiplier20 (2–200) / 2 (0.5–5)Internal Bollinger envelope
SqueezeKC period / KC multiplier20 (1–200) / 1.5 (0.5–5)Internal Keltner envelope, same period for EMA and ATR
SqueezeColoryellowDot color at the close
Chaikin VolatilityEMA period / ROC period10 (1–100) / 10 (1–100)EMA of the range, then its percent change distance
Realized VolPeriod20 (2–500)Number of log returns in the window
Realized VolPeriods / year362880 (1–10 000 000)Annualisation factor; default assumes 1-minute bars over 252 × 24 h days

How to use it

Enable a study from the Library groups of the Indicators panel. Squeeze shows nothing while either envelope is still in warm-up, and nothing when the bands coincide, because the comparison is strict. The Smoothing setting on True Range is the catalog-wide post-smoothing: the default 1 returns the raw series unchanged and any larger value applies a simple average over the histogram values.

For Realized Vol on a timeframe other than one minute, adjust Periods / year: for 5-minute bars the equivalent is 252 × 288 = 72 576. The default is documented as an approximation, since a CME futures session lasts about 23 hours rather than 24.

Limits and pitfalls

  • Std Dev and Squeeze use the population σ (÷N); Realized Vol uses the sample σ (÷(N−1)). Both conventions are documented in the code and are intentional.
  • Squeeze defaults (20/2 and 20/1.5) are not the Keltner study's defaults (20/10/2); changing one does not change the other.
  • Chaikin Volatility returns no value when the reference EMA is zero or undefined; a market without range is not 0 % change.
  • Realized Vol returns nothing if any close in the window is ≤ 0 (log undefined) or during warm-up.
  • These measures describe the loaded bars; the library does not certify data coverage or freshness.

This page in other languages

Frequently asked questions

Where are ATR, Bollinger and Keltner?
In the Averages & volatility group, shipped in the first wave. The Volatility group was merged later without replacing them, because an id already persisted in a user's settings must keep the exact behaviour it had.
Why is the default Periods / year 362 880?
It equals 252 × 1440, i.e. one-minute bars over 252 trading days of 24 hours. Change it to match the chart's bar duration; the parameter is a stated assumption, not a detected value.

Keep reading