Моментум-осциллятор Чанде (CMO): расчет, тонкая настройка и торговые сценарии
Оглавление
- Суть и базовый принцип работы на первом экране
- Архитектура и математический фундамент индикатора
- Сравнительный анализ: Chande Momentum Oscillator против RSI
- Торговые сценарии и правила открытия позиций
- Скрытые дивергенции: определение точек продолжения тренда
- Граничные ситуации: когда алгоритм дает сбои
- Параметры индикатора под различные финансовые рынки
- Расчет безопасного объема позиции и риска
- Сравнительный анализ инфраструктуры и торгового софта
- Готовый код для TradingView: фильтрованный CMO (Pine Script v6)
- План практического освоения индикатора
- Протокол проверки сигнала перед открытием позиции
- Ответы на частые вопросы (FAQ)
Суть и базовый принцип работы на первом экране
Осциллятор импульса Чанде (Chande Momentum Oscillator, CMO) — технический индикатор с симметричной шкалой от -100 до +100 пунктов, созданный для измерения чистой динамики котировок без скрытого запаздывания. В отличие от большинства стандартных осцилляторов, формула Чанде исключает внутреннее сглаживание: алгоритм напрямую сопоставляет абсолютные суммы положительных и отрицательных ценовых приращений. За счет этого инструмент фиксирует импульс и истощение локальной ликвидности на 1–2 бара быстрее типовых аналогов.
Работу индикатора легко понять через аналогию с перетягиванием каната между покупателями и продавцами. Классический индекс относительной силы (RSI) замеряет скорость движения центральной ленты каната, принудительно усредняя данные скользящей средней Уайлдера. Индикатор Чанде фиксирует чистый метраж рывков каждой стороны напрямую. Если за расчетный цикл быки протащили канат на 80 метров, а медведи отыграли только 20, осциллятор отобразит численный перевес инициативы без сглаживающих искажений.
| Уровень / Диапазон | Рыночное состояние | Интерпретация импульса | Действие трейдера |
|---|---|---|---|
| Выше +50 | Перекупленность | Экстремальный перегрев покупателей | Запрет на открытие покупок; подготовка к шорту строго при возврате под уровень +50 |
| От 0 до +50 | Бычья зона | Умеренное доминирование спроса | Сопровождение открытых длинных позиций (лонгов) по тренду |
| 0 | Нейтральная граница | Паритет спроса и предложения | Запрет на открытие новых сделок без явного трендового контекста |
| От 0 до -50 | Медвежья зона | Умеренное доминирование предложения | Сопровождение коротких позиций (шортов) по тренду |
| Ниже -50 | Перепроданность | Панический сброс позиций | Запрет на продажи; подготовка к лонгу строго при возврате выше уровня -50 |
Архитектура и математический фундамент индикатора
Индикатор представили трейдер Тушар Чанде и финансовый аналитик Стэнли Кролл в совместной работе «The New Technical Trader» (1994). Целью авторов было создание измерителя скорости изменения котировок (Rate of Change), который сохраняет строгую нормированную шкалу, но не скрадывает амплитуду рыночных рывков экспоненциальными средними.
Шкала зафиксирована в диапазоне от -100 до +100 пунктов. Нулевая отметка служит балансиром: значения выше 0 отражают преобладание покупателей, показатели ниже 0 — продавцов.
Базовая формула расчета
CMO = ((Su - Sd) / (Su + Sd)) * 100
Где:
Su (Sum of Gains) — сумма положительных ценовых приростов (Pt - Pt-1 > 0) за выбранный период n баров.
Sd (Sum of Losses) — абсолютная сумма отрицательных приращений (|Pt - Pt-1| при Pt - Pt-1 < 0) за тот же отрезок n.
Знаменатель дроби (Su + Sd) отражает полный суммарный ценовой пробег актива, а числитель (Su - Sd) вычисляет чистую разницу между восходящим и нисходящим движением.
Пошаговый ручной расчет на 5 свечах
Разберем механику работы алгоритма на периоде n=4 (для которого требуются 5 последовательных цен закрытия) на круглых значениях актива:
| Свеча | Цена закрытия (P) | Приращение (ΔP = Pt - Pt-1) | Вклад в Su (Рост) | Вклад в Sd (Падение) |
|---|---|---|---|---|
| День 1 | $100,00 | — (базовая точка отсчета) | 0,00 | 0,00 |
| День 2 | $104,00 | +$4,00 | 4,00 | 0,00 |
| День 3 | $102,00 | -$2,00 | 0,00 | 2,00 (по модулю) |
| День 4 | $105,00 | +$3,00 | 3,00 | 0,00 |
| День 5 | $108,00 | +$3,00 | 3,00 | 0,00 |
Вычисляем сумму приростов (Su):
Su = 4,00 + 3,00 + 3,00 = 10,00
Вычисляем сумму спадов (Sd):
Sd = |-2,00| = 2,00
Подставляем полученные значения в формулу:
CMO = ((10,00 - 2,00) / (10,00 + 2,00)) * 100 = (8,00 / 12,00) * 100 ≈ +66,66
Вывод: Полученное значение +66,66 пункта превышает контрольный порог +50. Рынок пребывает в фазе сильного перегрева. Открытие новых покупок по текущей цене математически неоправданно из-за повышенной вероятности резкого отката.
Сравнительный анализ: Chande Momentum Oscillator против RSI
Оба осциллятора оценивают силу покупателей относительно продавцов, однако принципиальная разница в обработке исходных дельт формирует разную скорость и специфику сигналов.
| Критерий оценки | Chande Momentum Oscillator (CMO) | Relative Strength Index (RSI) | Практическое значение для трейдера |
|---|---|---|---|
| Алгоритм фильтрации | Прямая сумма сырых дельт (Su и Sd) без сглаживания | Экспоненциальное сглаживание Уайлдера (RMA/EMA) | CMO реагирует на импульс на 1–2 бара быстрее RSI, но острее реагирует на локальный рыночный шум |
| Диапазон шкалы | От -100 до +100 с нулем в центре | От 0 до 100 с серединой на отметке 50 | Симметричная шкала CMO удобнее для алгоритмизации и визуального контроля паритета сил |
| Поведение на экстремумах | Формирует острые V-образные вершины | Формирует сглаженные дугообразные развороты | CMO наглядно регистрирует объемные кульминации покупок и продаж |
| Реакция на импульс | Резкий сдвиг к границам шкалы за 1 свечу | Постепенный подъем из-за влияния хвоста предыдущих свечей | Инструмент Чанде чувствителен к новостным барам и требует обязательной фильтрации направлением старшего тренда |
Торговые сценарии и правила открытия позиций
1. Выход из зон экстремумов (Разворот импульса)
Условие для покупки (Long): линия опустилась глубже отметки -50, после чего свеча закрылась выше -50. Ордер выставляется на открытии следующего бара.
Условие для продажи (Short): линия поднялась выше +50, после чего бар закрылся ниже +50. Вход осуществляется на открытии следующей свечи.
⚠️ Предостережение по рискам:
Никогда не входите в позицию, пока кривая находится за пределами ±50. Нахождение осциллятора внутри зон перекупленности или перепроданности отражает силу текущего движения, а не его слом. Попытка перехватить падающий актив на первом касании экстремума — частая причина быстрой потери депозита.
2. Преодоление нулевого балансира
Покупка: пересечение линии 0 снизу вверх при условии, что перед пробоем линия находилась в отрицательной области не менее 3–5 свечей и опускалась глубже -20 пунктов.
Продажа: пересечение отметки 0 сверху вниз после подтвержденного пребывания в положительной плоскости выше отметки +20 пунктов.
3. Классические разворотные дивергенции
Медвежья дивергенция: котировки актива обновляют локальный максимум (Higher High), в то время как следующий пик осциллятора оказывается ниже предыдущего (Lower High).
Правило точки входа: дождаться закрытия свечи, сформировавшей разворотную ценовую конструкцию, и открывать короткую позицию в момент возврата кривой индикатора под сигнальную линию SMA 9 либо под уровень +50.
Бычья конвергенция: котировки формируют более низкий ценовой минимум (Lower Low), а соответствующая впадина индикатора фиксируется выше предыдущего минимума (Higher Low).
Правило точки входа: вход в длинную позицию осуществляется на открытии следующего бара после закрытия свечи, на которой линия CMO развернулась вверх и пересекла сигнальную среднюю снизу вверх.
Скрытые дивергенции: определение точек продолжения тренда
Скрытые расхождения подтверждают завершение локальной коррекции и возобновление доминирующей тенденции.
| Тип сетапа | Поведение котировок | Поведение осциллятора | Рыночная логика |
|---|---|---|---|
| Скрытая бычья (вход в лонг) | Формируется более высокий минимум (Higher Low) | Формируется более глубокое дно (Lower Low) | Коррекция котировок неглубокая, но индикатор успел полностью разгрузиться. Свидетельствует о скрытом наборе позиций крупными участниками. Вход — при развороте кривой вверх |
| Скрытая медвежья (вход в шорт) | Формируется более низкий максимум (Lower High) | Формируется более высокий пик (Higher High) | Отскок котировок незначителен, но потенциал индикатора исчерпан. Указывает на дефицит спроса в нисходящем тренде. Вход — при первом изломе линии вниз |
Граничные ситуации: когда алгоритм дает сбои
Отсутствие встроенного сглаживания делает инструмент чувствительным к структурным переменам фаз рынка.
| Сбойная ситуация | Рыночная механика сбоя | Риск торговли по шаблону | Инженерное решение (Защитный фильтр) |
|---|---|---|---|
| Залипание в тренде (Market Squeeze) | Институциональный тренд развивает безоткатный ход; линия индикатора прижимается к уровням +80 или -80 | Череда убыточных попыток поймать контртрендовый разворот | Фильтр старшего тренда: сделки разрешены строго по вектору EMA 200 со старшего таймфрейма; запрет любых входов против тренда до возврата линии в диапазон ±50 |
| Пилообразные колебания (Zero Whipsaw) | Сжатие волатильности в боковике; линия осциллятора многократно пересекает отметку 0 с амплитудой ±3–5 пунктов | Рост транзакционных издержек из-за серии ложных срабатываний | Фильтр минимального замаха: пробой нулевого уровня признается рабочим, если перед разворотом осциллятор зашел вглубь зоны минимум на 20 пунктов |
| Свечной шум формулы (Noise Spike) | Одиночная новостная свеча смещает линию на 40–60 пунктов без изменения общего баланса сил | Преждевременное закрытие рабочей позиции по ложному сигналу | Сглаживающий триггер: наложение на осциллятор 9-периодной скользящей средней (SMA 9) в качестве сигнальной линии |
💡 Заметка практика:
Если рынок переходит в узкий диапазон с падением торгового объема более чем на 40%, отключите сигналы пересечения нулевой отметки. В боковом движении отрабатываются исключительно границы перекупленности и перепроданности со смещением порогов до ±40 вместо стандартных ±50.
Параметры индикатора под различные финансовые рынки
Универсального расчетного периода не существует. Длину рабочего окна настраивают под волатильность и расписание торговых сессий конкретного актива.
| Класс активов | Рабочий таймфрейм | Оптимальный период | Трендовый фильтр | Специфика рынка и издержки |
|---|---|---|---|---|
| Криптовалюты (BTC, ETH, SOL) | 4H / 1D | 9 | EMA 100 или SuperTrend | Торговля в режиме 24/7; высокая волатильность; обязательный учет ставки финансирования (Funding Rate) каждые 8 часов |
| Форекс (EUR/USD, GBP/USD) | 1H / 4H | 14 | EMA 200 или Alligator | Сессионная ликвидность; расширение спреда во время межбанковского клиринга (23:00–01:00 UTC) |
| Фондовый рынок (Акции, ETF) | 1D | 20 | SMA 200 | Учет утренних ценовых разрывов (гэпов) на открытии биржевой сессии; дивидендные отсечки |
Расчет безопасного объема позиции и риска
Осциллятор помогает определить точку входа, но сохранность депозита зависит от математики управления капиталом. Расчет базируется на допустимом риске на одну сделку (1–2% от депозита) и текущей рыночной волатильности (ATR).
Формулы расчета
Предельный риск в денежном выражении (Risk$):
Risk$ = Deposit * (Risk% / 100)
Дистанция защитного стоп-лосса (SLdist):
SLdist = |Priceentry - PriceSL| = k * ATR14
(где k=1,5 — коэффициент запаса хода на рыночный шум)
Безопасный рабочий объем позиции (PositionSize):
PositionSize = Risk$ / SLdist
Пример практического расчета
Депозит трейдера: $10,000.
Допустимый риск на сделку: 1,0% (Risk$ = $100).
Инструмент: BTC/USDT (сигнал на покупку при выходе кривой с периодом 9 выше отметки -50).
Цена входа (Priceentry): $60,000.
Значение индикатора ATR (14) на таймфрейме 4H: $800.
Локальный структурный минимум: $58,800.
Определение стоп-лосса по волатильности:
Запас хода: 1,5 * ATR = 1,5 * 800 = $1 200.
Расчетный уровень Stop Loss: 60 000 - 1 200 = $58 800 (совпадает со структурной поддержкой).
Дистанция стоп-лосса (SLdist): 60 000 - 58 800 = $1 200.
Расчет размера рабочей позиции:
PositionSize = $100 / $1 200 ≈ 0,0833 BTC
Контроль торговых издержек:
Номинальная стоимость позиции: 0,0833 * 60 000 = $4 998 (используемое плечо менее 1:1, риск принудительной ликвидации отсутствует).
Комиссия биржи (вход и выход лимитными ордерами по ставке Maker 0,02%):
Fee = 4 998 * 0,0002 * 2 ≈ $2,00
Суммарная комиссия составляет всего 2% от заложенного риска ($100), что укладывается в допустимый норматив торговых издержек.
Сравнительный анализ инфраструктуры и торгового софта
| Платформа / Инструмент | Категория | Сильные стороны | Ограничения и специфика издержек |
|---|---|---|---|
| TradingView | Веб-терминал / Скриптинг | Нативная поддержка функции ta.cmo(); быстрое тестирование; обширная библиотека пользовательских модификаций | Комплексные алерты на несколько таймфреймов и глубокий бэктест требуют платной подписки |
| MetaTrader 4 / MT5 | Десктопный терминал | Прямой доступ к брокерской ликвидности; поддержка алгоритмов на MQL4/MQL5 | Инструмент отсутствует в стандартной поставке; требуется ручная загрузка и компиляция файлов .mq4/.mq5 |
| OsEngine (C#) | Алготрейдинг (Мосбиржа, криптобиржи) | Прямые коннекторы к торговым площадкам; открытый исходный код роботов на GitHub; высокая скорость симуляции | Требуется среда разработки Visual Studio, понимание объектно-ориентированного программирования и C# |
| Veles Finance | Облачные торговые боты | Визуальный конструктор криптоботов; запуск триггеров на базе индикатора без программирования | Комиссия до 20% с прибыльных ордеров (критично для высокочастотных сеток); фиксированный набор индикаторов |
| QuantConnect (LEAN) | Институциональный бэктестинг | Встроенный метод self.cmo() на Python; тестирование стратегий на тиковых данных без искажения спреда | Высокий порог входа; требует знания программной архитектуры движка LEAN |
Готовый код для TradingView: фильтрованный CMO (Pine Script v6)
Для отсечения ложного свечного шума в скрипт добавлена 9-периодная сигнальная средняя SMA. Торговый триггер активируется не на резком единичном изломе осциллятора, а строго при пересечении индикатором своей сглаженной линии.
//@version=6
indicator(title = 'Chande Momentum Oscillator (Pro Filtered)', shorttitle = 'CMO Pro', overlay = false)
// 1. Входные параметры
cmoLength = input.int(14, minval = 1, title = 'Период CMO')
sigLength = input.int(9, minval = 1, title = 'Период сигнальной SMA')
obLevel = input.int(50, title = 'Уровень перекупленности')
osLevel = input.int(-50, title = 'Уровень перепроданности')
src = input.source(close, title = 'Источник цены')
// 2. Расчет осциллятора и сигнальной линии
cmoValue = ta.cmo(src, cmoLength)
sigLine = ta.sma(cmoValue, sigLength)
// 3. Координатная сетка уровней
hTop = hline(100, display = display.none)
hOB = hline(obLevel, 'Перекупленность', color = color.new(color.red, 30), linestyle = hline.style_dashed)
hZero = hline(0, 'Нейтраль', color = color.new(color.gray, 50), linestyle = hline.style_solid)
hOS = hline(osLevel, 'Перепроданность', color = color.new(color.green, 30), linestyle = hline.style_dashed)
hBot = hline(-100, display = display.none)
// 4. Заливка зон экстремумов
fill(hOB, hTop, color = color.new(color.red, 88), title = 'Фон перекупленности')
fill(hOS, hBot, color = color.new(color.green, 88), title = 'Фон перепроданности')
// 5. Построение графиков
plot(cmoValue, title = 'Линия CMO', color = color.blue, linewidth = 2)
plot(sigLine, title = 'Сигнальная SMA', color = color.orange, linewidth = 1)
// 6. Формирование триггерных меток
longTrigger = ta.crossover(cmoValue, osLevel) or ta.crossover(cmoValue, sigLine) and cmoValue < 0
shortTrigger = ta.crossunder(cmoValue, obLevel) or ta.crossunder(cmoValue, sigLine) and cmoValue > 0
plotshape(longTrigger, title = 'Бычий триггер', style = shape.triangleup, location = location.bottom, color = color.green, size = size.tiny)
plotshape(shortTrigger, title = 'Медвежий триггер', style = shape.triangledown, location = location.top, color = color.red, size = size.tiny)
План практического освоения индикатора
Этап 1: Добавление на график.
Откройте терминал TradingView, перейдите в меню «Индикаторы», найдите Chande Momentum Oscillator либо вставьте представленный выше код в консоль Pine Editor.
Этап 2: Калибровка периода под актив:
ЕСЛИ торгуются криптовалюты внутри дня (таймфреймы 1H/4H) → ТО выставляется период 9 для быстрой реакции на импульс.
ЕСЛИ анализируются валютные пары форекс (1H/4H) → ТО сохраняется базовое значение 14.
ЕСЛИ удерживаются среднесрочные фондовые акции (1D) → ТО устанавливается период 20.
Этап 3: Подключение трендового ориентира:
Добавьте на график скользящую среднюю EMA 200.
ЕСЛИ котировки находятся выше EMA 200 → ТО отрабатываются исключительно бычьи паттерны (выход из перепроданности или отскок от нуля вверх).
ЕСЛИ цена опустилась ниже средней → ТО в работу берутся только короткие позиции при подтверждении сигналов на продажу.
Этап 4: Проверка на исторической выборке.
Проведите серию минимум из 50 тестовых сделок на демо-счете или в тестере стратегий. Стабильной рабочей моделью считается винрейт от 52% при минимальном соотношении прибыли к риску 2:1.
Протокол проверки сигнала перед открытием позиции
Перед отправкой торговой заявки в стакан сверьте параметры сетапа по контрольному чек-листу:
- [ ] Глобальный тренд подтвержден? Положение котировок относительно фильтра EMA 200 совпадает с вектором сделки: для длинной позиции график выше средней, для короткой — ниже.
- [ ] Зафиксирован факт выхода из экстремума? Линия осциллятора не просто коснулась критической области, а завершила бар и пересекла уровень ±50 обратно внутрь центрального диапазона.
- [ ] Условие достаточного замаха выполнено? До момента пересечения нулевой отметки линия индикатора отходила вглубь зоны минимум на 20 пунктов (защита от распиливания депозита во флэте).
- [ ] Сигнальная средняя подтверждает импульс? Кривая осциллятора пересекла сглаживающую SMA 9 по направлению планируемой сделки.
- [ ] Определен защитный ордер? Стоп-лосс вынесен с запасом 1,5×ATR за ближайший структурный экстремум, а расчетный риск не превышает 1–2% депозита.
- [ ] Экономический календарь проверен? В пределах 30 минут до и после входа не запланирована публикация данных по инфляции (CPI, PPI) или заседаний центробанков по процентным ставкам.
Ответы на частые вопросы (FAQ)
Почему индикатор отсутствует в стандартной библиотеке MT4 и MT5?
Компания MetaQuotes исторически ограничила предустановленный пакет терминала базовым набором классических алгоритмов 1970–1980-х годов (RSI, Stochastics, MACD). Для работы с алгоритмом Чанде загрузите файл с расширением .mq4 или .mq5 из базы разработчиков MQL5. В терминале откройте меню «Файл» → «Открыть каталог данных», перейдите по пути MQL4/MQL5 → Indicators, переместите файл в эту директорию и перезапустите терминал.
В чем преимущество алгоритма Чанде перед классическим Momentum?
Индикатор Momentum рассчитывается по формуле (Pt / Pt-n) * 100 и колеблется вокруг отметки 100 с бесконечной шкалой. Из-за отсутствия жестких пределов трейдер не может задать объективные пороговые зоны перекупленности и перепроданности. Формула CMO строго нормирована в границах от -100 до +100 пунктов, что гарантирует стабильность контрольных уровней независимо от масштаба текущего тренда.
Допустимо ли открывать сделки исключительно по показаниям CMO?
Нет, самостоятельное применение осциллятора ведет к системным ошибкам. Во время сильных направленных трендовых движений кривая способна удерживаться около предельных отметок неделями. Попытка торговать против движения без учета трендовых фильтров (EMA 200, горизонтальные уровни ликвидности) приводит к серии закрытий позиций по стоп-лоссу.
Какую задачу решает наложение скользящей средней (SMA 9) поверх линии осциллятора?
Прямой расчет индикатора без предварительного сглаживания повышает его чувствительность к единичным теням свечей и случайным всплескам волатильности. Скользящая средняя выступает фильтрующим триггером: позиция открывается не на локальном шуме линии осциллятора, а после преодоления усредненной траектории, подтверждающей истинность развивающегося импульса.
Как комиссии биржи влияют на результативность торговли по осциллятору?
При уменьшении расчетного окна до 9 баров на интервалах M5–M15 число сигналов достигает 5–10 в течение торгового дня. Если торговая комиссия за полный цикл сделки (Taker Fee) составляет порядка 0,05–0,08%, а спред расширяется на волатильности, то при коротких тейк-профитах до 30–40% суммарной прибыли уйдет на покрытие биржевых издержек. Для сохранения положительного математического ожидания используйте лимитные ордера (Maker) и отдавайте приоритет таймфреймам от 1H и выше.
