Индикатор ROC: настройки и сигналы
ROC — процентное изменение цены за N баров, самый прямой способ измерить скорость движения рынка.
Как индикатор выглядит на реальном графике
Данные: EUR/USD, дневные бары, 2025-06-16 — 2026-07-20. Индикатор рассчитан по 400 барам, на графике показаны последние 180. Источник котировок: Binance Spot REST API (api.binance.com/api/v3/klines).
| Режим | Оценка |
|---|---|
| Трендовый рынок | 45 |
| Флэт | 39 |
| Высокая волатильность | 49 |
| Низкая волатильность | 36 |
Что индикатор измеряет на самом деле
В отличие от большинства индикаторов ROC ничего не сглаживает и не нормирует по волатильности: он просто сравнивает текущую цену с ценой N баров назад. Из-за перевода в проценты значения сопоставимы между инструментами с разной ценой — редкое свойство среди осцилляторов.
Пересечение нулевой линии означает буквально то, что цена вернулась к уровню N-барной давности. Это делает индикатор удобным для сравнения относительной силы: если два актива за один период выросли на 3% и на 8%, второй демонстрирует более сильный импульс независимо от абсолютных цен.
Обратная сторона отсутствия сглаживания — чувствительность к базе сравнения. Если N баров назад пришёлся аномальный выброс, ROC покажет резкое изменение сегодня, хотя сегодня на рынке ничего не произошло. Эффект тот же, что и выпадение бара из окна SMA, но выраженный сильнее.
Формула
Разность текущей цены и цены N баров назад, делённая на цену N баров назад и умноженная на 100. Никакого сглаживания в формуле нет — отсюда и высокая чувствительность, и полная прозрачность значения.
Стандартные настройки
| Параметр | Значение |
|---|---|
| Стандартный период | 12 |
| Период для свинг-трейдинга | 9 |
| Уровень равновесия | 0% |
Период 12 распространён для дневных баров как приблизительный аналог двух недель. Более длинные периоды (25, 50) применяют для оценки среднесрочного импульса и сравнения относительной силы разных активов.
Код реализации (Python)
def roc(close, period=12):return 100 * (close - close.shift(period)) / close.shift(period)
Когда индикатор перестаёт работать
- Значение полностью зависит от одной точки в прошлом — цены N баров назад, что делает индикатор уязвимым к выбросам в базе сравнения.
- Отсутствие сглаживания даёт заметный шум на малых таймфреймах.
- Не учитывает путь цены между двумя точками: рост на 5% плавно и рост на 5% через глубокую просадку дадут одинаковое значение.
Типичные ошибки применения
- Не проверять, что происходило N баров назад. Резкое изменение ROC часто объясняется выбросом в базе, а не сегодняшним движением.
- Использовать пересечение нуля как самостоятельный сигнал на шумном инструменте — на малых таймфреймах оно происходит постоянно.
- Путать ROC с процентным изменением за сессию: индикатор всегда сравнивает с точкой N баров назад, а не с открытием дня.
- Сравнивать значения ROC, посчитанные с разными периодами, как будто они измеряют одно и то же.
Кому и зачем это нужно
Полезен для сравнения относительной силы нескольких инструментов и для быстрой оценки, ускоряется движение или затухает. Хорош как компонент ротационных стратегий, где активы ранжируются по импульсу.
Частые вопросы
Чем ROC отличается от Momentum?
Momentum показывает абсолютную разность цен, ROC — ту же разность в процентах. Форма кривых одинакова, но проценты сопоставимы между инструментами с разной ценой, а абсолютные значения — нет.
Почему ROC резко изменился без движения цены?
Потому что изменилась база сравнения: из расчёта вышел бар, который был N периодов назад. Если там был аномальный выброс, его уход меняет значение индикатора при полностью статичной текущей цене.
Какой период выбрать?
Период должен соответствовать горизонту решений. Для оценки краткосрочного импульса берут 9–12 баров, для среднесрочной относительной силы — 25–50. Смешивать в одной системе сигналы ROC с разными периодами без явного разграничения их ролей не стоит.