On this page
Chaikin Volatility — Volatility, 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 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.
Related indicators
- True Range — Volatility
- Std Dev — Volatility
- Squeeze — Volatility
- Realized Vol — Volatility
- Skewness — Volatility
- Kurtosis — Volatility
This page in other languages
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.