Chaikin Volatility Indicator: Formula, Settings and How to Read It
Chaikin Volatility measures how quickly the average bar range is changing, by taking the rate of change of an exponential moving average of high minus low. A positive reading means ranges are wider than they were M bars ago; a negative one means they are contracting.
Senzoukria · Indicators · Updated September 2026
Chaikin Volatility ships with the Senzoukria desktop app, in the Volatility group of the indicator catalogue. It is drawn in its own panel below the chart.
What Chaikin Volatility measures
The indicator smooths the bar range with an EMA over N bars, compares that EMA with its own value M bars earlier, and reports the difference as a percentage of the earlier value. Defaults are an EMA of 10 and a rate-of-change lookback of 10, Chaikin's own. It reads range only — the ground a bar covered — and not the close, so a wide bar that finishes where it started counts in full. No value appears until the EMA is defined both at the current bar and M bars back. When the reference EMA is zero or below, meaning no range at all across the smoothing window, nothing is emitted either: zero divided by zero is not zero percent, it is an absence of information.
The formula, as implemented
This is not a description of how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:
Chaikin Volatility : ROC_M de l'EMA_N du range (high − low) — CV = (EMA_N(H−L)[i] − EMA_N(H−L)[i−M]) / EMA_N(H−L)[i−M] × 100 Défauts N=10, M=10 (Chaikin). Référence ≤ 0 (marché sans range sur toute l'EMA) → null : 0/0 n'est pas « 0 % », c'est « pas d'info » (même règle que delta-percent). Warm-up (EMA indéfinie à i ou i−M) → null.
How to read it
- Above zero, the average bar is bigger than it was M bars ago; below zero, the market is compressing.
- Direction is absent from this measure — strong expansion accompanies breakouts and violent reversals alike.
- A long stretch near zero means the range regime is stable, not that the market is flat: a market can trend steadily with a constant bar size.
- Extremes here are rate-of-change extremes, not price extremes. After a very quiet window the comparison base is small, so an ordinary bar can print a large percentage.
- Reading it next to a plain range or ATR line prevents that mistake: one gives the level, this one gives the change.
Parameters and defaults
The EMA period (default 10) decides how much of a single wide bar survives into the smoothed range. The ROC period (default 10) sets how far back the comparison reaches; raising it alone compares against an older and usually more different regime, which increases the amplitude of the output without any change in the underlying ranges. Both accept 1 to 100.
| Parameter | Type | Default | Range |
|---|---|---|---|
| EMA period | number | 10 | 1 – 100 |
| ROC period | number | 10 | 1 – 100 |
What it does not show
Because the output is a percentage change, its scale depends entirely on the comparison base — a small denominator after a quiet window produces a large number for a modest expansion. The measure ignores volume, delta and where the close landed inside the bar. Lag enters twice: the EMA delays the range change, and the comparison is then made between two already delayed values. And on gappy or thinly traded data, high minus low under-reports the real move, since the distance between one bar's close and the next bar's extremes is never part of it.
Using it in Senzoukria
Add it from the Indicators panel of any footprint chart or candle chart. It runs on futures data from Rithmic or Databento and on crypto pairs from Binance and Bybit, on the same engine — the calculation does not change with the venue, only the data feeding it does. Market data subscriptions are billed by the provider, separately from the app.
Related indicators
- True Range — Volatility
- Std Dev — Volatility
- Squeeze — Volatility
- Realized Vol — Volatility
- Skewness — Volatility
- Kurtosis — Volatility
See the full indicator library, or start with the order flow guide if you are new to reading aggression, delta and absorption.
Frequently asked questions
- What does a negative Chaikin Volatility reading mean?
- It means the smoothed high-low range is smaller now than it was M bars ago, so bars are contracting. It says nothing about price direction: a market can compress while trending or while going nowhere. The depth of the negative value reflects how much the range shrank relative to that earlier reference.
- Is Chaikin Volatility the same as ATR?
- No. ATR averages the true range, which includes the gap from the previous close, and reports a level in price units. Chaikin Volatility averages the plain high-low range and reports how fast that average is changing, as a percentage. One answers how big bars are, the other answers how quickly that size is shifting.
- What are the default settings for Chaikin Volatility?
- An EMA period of 10 and a rate-of-change period of 10, which are Chaikin's original values. Both accept 1 to 100 in Senzoukria. Changing the ROC period has the larger visible effect, since it sets the distance of the comparison.