Индикатор CCI: настройки и сигналы
CCI показывает, насколько текущая типичная цена отклонилась от своей средней, измеряя отклонение в единицах среднего разброса.
Как индикатор выглядит на реальном графике
Данные: EUR/USD, дневные бары, 2025-06-16 — 2026-07-20. Индикатор рассчитан по 400 барам, на графике показаны последние 180. Источник котировок: Binance Spot REST API (api.binance.com/api/v3/klines).
| Режим | Оценка |
|---|---|
| Трендовый рынок | 44 |
| Флэт | 56 |
| Высокая волатильность | 42 |
| Низкая волатильность | 48 |
Что индикатор измеряет на самом деле
Дональд Ламберт разрабатывал индикатор для товарных рынков с выраженной цикличностью, отсюда и название. В основе — типичная цена, среднее из максимума, минимума и закрытия: она полнее описывает бар, чем одна цена закрытия.
Отклонение типичной цены от её скользящей средней делится на среднее абсолютное отклонение и на константу 0,015. Эта константа подобрана так, чтобы приблизительно 70–80% значений попадало в коридор от −100 до +100 — то есть границы задают не предел, а статистическую необычность.
В отличие от RSI и стохастика шкала CCI не ограничена. В сильных движениях индикатор свободно уходит за ±200 и ±300, и это не аномалия, а прямое следствие отсутствия нормировки на фиксированный диапазон.
Формула
Константа 0,015 в знаменателе — не физическая величина, а калибровочный коэффициент. Ламберт подобрал её эмпирически, чтобы большая часть значений укладывалась в диапазон ±100, что делает выход за эти границы содержательным событием.
Стандартные настройки
| Параметр | Значение |
|---|---|
| Стандартный период | 20 |
| Пороговые уровни | +100 / −100 |
| Константа Ламберта | 0.015 |
Период 20 распространён для дневных баров, 14 — более чувствительный вариант. Уровни ±100 работают как граница обычного поведения; в трендовых системах их иногда используют наоборот — как подтверждение силы движения, а не как сигнал разворота.
Код реализации (Python)
def cci(high, low, close, period=20):tp = (high + low + close) / 3sma = tp.rolling(period).mean()mad = tp.rolling(period).apply(lambda x: (x - x.mean()).abs().mean())return (tp - sma) / (0.015 * mad)
Когда индикатор перестаёт работать
- Неограниченная шкала не позволяет заранее сказать, насколько далеко может уйти значение.
- При низкой волатильности среднее отклонение мало, и индикатор становится избыточно чувствительным.
- Расчёт по типичной цене делает индикатор уязвимым к шипам максимумов и минимумов.
Типичные ошибки применения
- Считать уровень ±100 пределом. Это лишь граница, за которой оказывается меньшинство значений, а вовсе не потолок.
- Применять одинаковые пороги на инструментах с разной волатильностью, не проверив фактическое распределение значений.
- Торговать возврат из зоны в сильном тренде — в направленном движении CCI держится за границей длительное время.
- Смешивать две несовместимые трактовки: разворотную (выход за ±100 как перекупленность) и трендовую (тот же выход как подтверждение силы) внутри одной системы.
Кому и зачем это нужно
Подходит трейдерам, работающим с циклическими инструментами и умеющим калибровать пороги под конкретный актив. Требует больше настройки, чем RSI, но и даёт более тонкую картину отклонений.
Частые вопросы
Откуда взялась константа 0,015?
Из эмпирической калибровки автора: она подобрана так, чтобы примерно 70–80% значений индикатора попадали в коридор ±100. Никакого теоретического обоснования у числа нет, это чисто масштабирующий коэффициент.
CCI ушёл за +300 — это сигнал к развороту?
Скорее признак необычно сильного движения. Шкала CCI не ограничена, и в мощных трендах значения за ±300 встречаются регулярно. Трактовать это как гарантию разворота — распространённая ошибка; в трендовых системах такой выход, наоборот, читают как подтверждение силы.
Чем CCI лучше RSI?
Не лучше, а по-другому устроен. CCI работает с типичной ценой и неограниченной шкалой, что даёт более детальную картину отклонений, но требует калибровки порогов. RSI имеет жёсткие границы 0–100 и потому проще в применении «из коробки».