Technical analysis

CCI (20)

How far price strays from its 20-day average, measured in units of its typical average deviation.

Why it matters

It asks almost the same question as Bollinger %B — how far is price from its average — but with a technical difference that matters: instead of dividing by the standard deviation, it divides by the mean absolute deviation. Standard deviation squares distances, so a single extreme day inflates it a lot; mean absolute deviation doesn't. In practice that makes CCI less sensitive to one odd day and more sensitive to price having drifted away in a sustained way.

Build it yourself

Drag the three numbers and watch the effect of that 0.015 constant, which is all that separates this indicator from a z-score with a different denominator.

CCI = (Price − 20-day average) ÷ (0.015 × Mean absolute deviation)
CCI (20)

Without the constant: how many mean deviations away:

Illustrative example numbers for practice — not real data.

How it's calculated, step by step

  1. The simple average of the last 20 days' price is computed.
  2. The mean absolute deviation is computed: the average of the unsigned distances between each of those 20 prices and that average.
  3. CCI = (today's price − 20-day average) ÷ (0.015 × mean absolute deviation). That 0.015 is an arbitrary scaling constant from the original formulation, chosen so most values land between −100 and +100.
Coincident signal. Highly correlated with Bollinger %B by construction — two ways of measuring the same distance with two different denominators. Like this whole family, it's computed because the models take it as an input; tested as a threshold rule it did not beat buy-and-hold.

Chart

This is real Bitcoin data, computed from the blockchain — not the illustrative example above.

Data last updated on 2026-09-09.

← All indicators