Индикатор RSI Коннора (CRSI): математика триады, возврат к среднему и фильтрация ложных сигналов
Содержание
- Что такое RSI Коннора и как он устроен на первом экране
- Архитектура триады: почему классический RSI запаздывает
- Пошаговый математический расчет компонентов
- Компонент 1: Price Momentum (сглаживание Уайлдера против SMA)
- Компонент 2: Streak RSI (числовой алгоритм серийности)
- Компонент 3: Percent Rank против классического ROC
- Настройка сигнальных зон: почему уровни 30/70 разрушают депозит
- Системная стратегия возврата к среднему (Mean Reversion по тренду)
- Практический риск-менеджмент: сквозной расчет объема позиции
- Квантовая статистика: распределение доходности по корзинам (Bucket Analysis)
- Граничные ситуации: когда индикатор дает сбой
- Сравнение осцилляторов: Wilder RSI vs Stoch RSI vs Connors RSI
- Сравнительный анализ платформ для скрининга и бэктестинга
- Готовый код индикатора на Pine Script v6 для TradingView
- Чек-лист проверки торгового сетапа перед входом
- Пошаговый регламент освоения инструмента
- Вопросы и ответы (FAQ)
Что такое RSI Коннора и как он устроен на первом экране
Индикатор Connors RSI (CRSI) — это трехкомпонентный композитный осциллятор со шкалой от 0 до 100, разработанный исследовательской группой Connors Research под руководством Ларри Коннорса. Инструмент количественно оценивает локальное ценовое истощение и находит высоковероятные точки возврата к среднему значению (Mean Reversion) строго внутри доминирующей рыночной тенденции.
Если классический 14-периодный индекс относительной силы Уайлдера (RSI) работает как стандартный спидометр со средней скоростью за две недели и неизбежно опаздывает при резких движениях, то CRSI действует как «спидометр с памятью движения». Представьте оценку спринтера на дистанции:
- Текущий рывок (Momentum): с какой скоростью он бежит прямо сейчас.
- Усталость от монотонности (Streak): сколько шагов подряд сделано в одном направлении без единой паузы на передышку.
- Аномальность спринта (Percent Rank): насколько сегодняшний скачок выделяется на фоне его последних 100 забегов.
Базовая формула индикатора объединяет три независимые метрики в равновесное среднее арифметическое:
CRSI(3,2,100) = (RSI(Close, 3) + RSI(Streak, 2) + PercentRank(100)) / 3
| Рыночный сегмент | Рабочий таймфрейм | Сигнальные границы (экстремумы) | Опорный трендовый фильтр |
|---|---|---|---|
| Фондовые акции (США / РФ) | Дневной (1D) | 10 / 90 (базовый стандарт Коннорса) | Close > SMA(200) для длинных позиций |
| Криптовалютные пары | 4-часовой (4H) — Дневной (1D) | 5 / 95 (отсечение хвостовых всплесков) | Вектор цены относительно EMA(200) |
| Товарные фьючерсы и FX | 1-часовой (1H) — 4-часовой (4H) | 10 / 90 | SMA(200) с контролем торговых сессий |
| Внутридневной шум (M1–M15) | Ниже 1 часа | Не рекомендуется к работе | Отсутствует статистическое преимущество |
Архитектура триады: почему классический RSI запаздывает
Классический осциллятор RSI(14) Уэллса Уайлдера обладает высокой инерцией: при резкой капитуляции покупателей или продавцов линия индикатора запаздывает и часто не доходит до зон перепроданности. Искусственное сжатие окна анализа до 2–3 свечей превращает график в высокочастотный хаос. Ларри Коннорс решил эту проблему, объединив три разнородных математических слоя.
| Модуль индикатора | Исходные данные | Математическая сущность | Прикладная роль в системе |
|---|---|---|---|
| Мгновенный импульс | Close последних 3 баров | RSI(Close, 3) со сглаживанием Уайлдера (RMA) | Оценивает скорость и крутизну краткосрочного смещения цены |
| Длина серии | Счетчик направления баров | RSI(Streak, 2) от массива знаковых серий | Фиксирует психологическую монотонность движения без пауз |
| Масштаб скачка | Однодневная доходность Rt | PercentRank(100) среди 100 прошлых баров | Определяет статистическую аномальность текущей свечи |
Усреднение этих слагаемых отсекает ложные сигналы: одиночный глубокий ценовой прокол без серии баров или затяжное медленное сползание котировок на околонулевых объемах не смогут одновременно увести все три показателя в область экстремумов.
Пошаговый математический расчет компонентов
Компонент 1: Price Momentum (сглаживание Уайлдера против SMA)
Первый компонент рассчитывается как индекс относительной силы от цен закрытия с коротким расчетным окном N=3:
RS = WilderSmoothing(Gain, 3) / WilderSmoothing(Loss, 3)
RSI(Close, 3) = 100 - (100 / (1 + RS))
Распространенная ошибка алгоритмических скриптов — замена оригинального сглаживания Уайлдера (RMA, модифицированная EMA) на стандартную простую скользящую среднюю (SMA) или чистую EMA. В оригинале Уайлдер использует рекуррентное взвешивание с коэффициентом сглаживания α = 1/N:
AvgGaint = (AvgGaint-1 ⋅ (N - 1) + Gaint) / N
AvgLosst = (AvgLosst-1 ⋅ (N - 1) + Losst) / N
Экспертный факт: Использование базовой SMA(3) вместо метода Уайлдера смещает показания компонента RSI(Close, 3) на 3–8 пунктов шкалы. Такое искажение провоцирует преждевременные входы в позицию еще до реального истощения ценового импульса.
Компонент 2: Streak RSI (числовой алгоритм серийности)
Второй блок оценивает непрерывность однонаправленного движения. Вначале формируется массив целочисленных значений (UpDown Streak):
- ЕСЛИ Closet > Closet-1 и прошлый бар был растущим: счетчик прибавляет +1. При смене направления с падения на рост счетчик сбрасывается и принимает значение +1.
- ЕСЛИ Closet < Closet-1 и прошлый бар был падающим: счетчик вычитает -1 (принимая значения -2, -3 и далее). При смене знака с плюса на минус счетчик сбрасывается в -1.
- ЕСЛИ свечи закрылись по равным ценам (Closet = Closet-1): непрерывная серия прерывается, а счетчик обнуляется (Streak = 0).
Затем к полученному числовому массиву применяется 2-периодный расчет RSI Уайлдера: RSI(Streak, 2).
| Временной шаг | Цена закрытия (Close) | Направление бара | Значение Streak | Логика изменения массива |
|---|---|---|---|---|
| t-5 | 100.00 | Точка отсчета | 0 | Формирование базового буфера |
| t-4 | 102.50 | Рост (Closet > Closet-1) | +1 | Первый бар восходящего движения |
| t-3 | 104.00 | Рост (Closet > Closet-1) | +2 | Вторая подряд растущая сессия |
| t-2 | 101.00 | Падение (Closet < Closet-1) | -1 | Смена вектора: сброс серии в минус единицу |
| t-1 | 99.50 | Падение (Closet < Closet-1) | -2 | Усиление локального давления продавцов |
| t | 99.50 | Равенство (Closet = Closet-1) | 0 | Закрытие тик-в-тик: серия полностью обнулена |
Компонент 3: Percent Rank против классического ROC
В интерфейсе платформы TradingView третий параметр исторически обозначен как ROC Length. Из-за этого поверхностные обзоры ошибочно заявляют, будто в расчет заложен импульсный осциллятор Rate of Change:
ROC = ((Pt - Pt-n) / Pt-n) ⋅ 100
В оригинальной концепции Коннорса рассчитывается процентильный ранг суточной доходности, а не классическая кривая ROC:
- Вычисляется процентное изменение текущего бара относительно предыдущего:
Rt = (Closet - Closet-1) / Closet-1 - Алгоритм собирает массив доходностей за заданный ретроспективный период (по умолчанию 100 баров).
- Подсчитывается количество сессий в 100-дневном окне, где процентная доходность была строго меньше сегодняшней (Rt-i < Rt):
PercentRank(100) = (∑ I(Rt-i < Rt) / 100) ⋅ 100
Технический нюанс: Равные доходности не плюсуются в пользу текущего бара. Если сегодняшнее снижение составило -2.8%, и за предыдущие 100 сессий лишь 3 дня закрылись с еще более глубоким падением, ранг составит ровно 3.0.
Итоговое значение Connors RSI представляет собой среднее арифметическое полученных модулей:
CRSI = (RSI(Close, 3) + RSI(Streak, 2) + PercentRank(100)) / 3
Настройка сигнальных зон: почему уровни 30/70 разрушают депозит
Перенос стандартных уровней 30 и 70 с 14-периодного RSI Уайлдера на CRSI неизбежно приводит к череде ложных входов.
Поскольку Connors RSI оперирует сверхкороткими периодами (3 и 2 свечи), индикатор чрезвычайно динамичен. В фазе обычного рыночного баланса осциллятор регулярно колеблется в границах от 20 до 80 пунктов. Порог 30 пробивается до 10–15 раз в месяц, из-за чего подавляющая часть сигналов оказывается рыночным шумом в середине направленной тенденции.
| Набор пороговых уровней | Частота сигналов | Доля ложных срабатываний | Целевой рыночный класс | Практический регламент |
|---|---|---|---|---|
| 30 / 70 (Ошибочный перенос) | 10–15 входов в месяц | Более 65% (убытки от комиссий) | Не применим ни на одном рынке | Запрещено к практической эксплуатации |
| 10 / 90 (Базовый стандарт) | 2–4 входа в месяц | 25–30% | Ликвидные акции США, голубые фишки РФ | Оптимальная конфигурация для классического свинга |
| 5 / 95 (Ультра-экстремум) | 1–2 входа в месяц | 15–20% | Криптовалюты (BTC, ETH), высоковолатильные техи | Максимальное математическое ожидание отскока |
Системная стратегия возврата к среднему (Mean Reversion по тренду)
Методология Ларри Коннорса строго распределяет роли между трендовым фильтром, триггером локальной перепроданности и скользящей средней для фиксации прибыли:
- Глобальный трендовый фильтр:
Длинные позиции открываются исключительно тогда, когда текущая цена находится выше 200-периодной простой скользящей средней (Close > SMA(200)). Открытие лонга под SMA(200) исключено. - Сигнальный триггер входа:
На импульсном откате котировок значение CRSI опускается ниже 10 (для умеренных фондовых активов) или ниже 5 (для криптовалютного рынка). - Динамический выход из позиции:
Сделка закрывается не по статичному тейк-профиту, а в момент возврата цены закрытия выше короткой скользящей средней SMA(5). Это фиксирует возврат к динамическому равновесию.
// Логика открытия Long-позиции
ЕСЛИ (Close > SMA(200)) // 1. Фильтр глобального восходящего тренда
И (Connors_RSI < 10) // 2. Вход в зону локального истощения продавцов
И (Close > Low) // 3. Отсутствие закрытия в абсолютном минимуме бара
ТО: Открыть Long на закрытии сигнальной свечи
// Логика фиксации прибыли (Exit Long)
ЕСЛИ (Close > SMA(5)) // Восстановление цены к динамическому балансу
ТО: Закрыть позицию по рыночной цене
Для коротких позиций (Short) алгоритм зеркален: котировки находятся под SMA(200), индикатор поднимается выше отметки 90, а закрытие шорта осуществляется при фиксации цены закрытия ниже линии SMA(5).
Практический риск-менеджмент: сквозной расчет объема позиции
В ранних публикациях Коннорса жесткий защитный стоп-лосс намеренно опускался, так как исторически на фондовом рынке расширение просадки в качественных акциях повышало вероятность выкупа. На современных рынках с каскадными ликвидациями такой подход недопустим. Профессиональный регламент требует обязательного выставления защитного ордера на основе индикатора Average True Range (ATR) с ограничением риска в пределах 1% от торгового капитала.
Формулы расчета
Допустимый риск в валюте депозита (R):
R = Депозит ⋅ 0.01
Дистанция защитного стоп-лосса в пунктах цены (ΔStop):
ΔStop = 2.0 ⋅ ATR(14)
Рабочий объем позиции (V):
V = R / ΔStop = (Депозит ⋅ 0.01) / (2.0 ⋅ ATR(14))
Сквозной пример расчета
Исходные данные торгового счета:
- Депозит: 10 000 USD
- Допустимый риск на сделку: 1% = 100 USD
- Цена закрытия сигнального бара: Close = 150.00 USD
- Значение индикатора волатильности: ATR(14) = 2.50 USD
- Сигнал CRSI: значение 7.4 при Close > SMA(200)
Порядок вычисления:
- Допустимый долларовый убыток:
R = 10 000 ⋅ 0.01 = 100 USD - Дистанция стоп-лосса:
ΔStop = 2.0 ⋅ 2.50 = 5.00 USD - Уровень защитного приказа:
StopLoss = 150.00 - 5.00 = 145.00 USD - Объем позиции:
V = 100 / 5.00 = 20 акций - Необходимый капитал:
20 ⋅ 150.00 = 3 000 USD (без маржинального плеча)
Если рынок пробьет уровень 145.00 USD, убыток составит запланированные 100 USD (1% капитала). Биржевые комиссии (0.02-0.05% от торгового оборота) отнимут дополнительно порядка 1.2-3.0 USD, сохраняя строгий математический баланс торговой системы.
Квантовая статистика: распределение доходности по корзинам (Bucket Analysis)
Для подтверждения устойчивости математического ожидания исследователи Connors Research провели децильный анализ выборки ликвидных акций бирж NYSE и NASDAQ за 15 лет с трендовым фильтром Close > SMA(200):
| Корзина значений CRSI (Bucket) | Средняя доходность за 3 дня | Средняя доходность за 5 дней | Win Rate отскока | Фаза рыночного состояния |
|---|---|---|---|---|
| 0 – 5 (Ультра-экстремум) | +1.84% | +2.45% | 74.2% | Паническая капитуляция продавцов |
| 5 – 10 | +1.12% | +1.60% | 68.5% | Сильный импульсный откат |
| 10 – 25 | +0.42% | +0.70% | 54.1% | Умеренная рядовая коррекция |
| 25 – 75 | +0.05% | +0.12% | 50.2% | Нейтральный шумовой диапазон |
| 75 – 90 | -0.35% | -0.58% | 46.8% | Восходящее развитие импульса |
| 90 – 95 | -0.85% | -1.15% | 61.2% (для Short) | Локальный перегрев покупателей |
| 95 – 100 (Ультра-экстремум) | -1.45% | -2.10% | 66.8% (для Short) | Кульминация покупок (эйфория) |
Статистическая матрица демонстрирует выраженную асимметрию рынков: вход в лонг в корзине 0–5 обеспечивает вероятность положительного закрытия свыше 74%. Короткие позиции в зоне перекупленности 95–100 отрабатывают слабее (Win Rate 66.8%), поскольку затяжные трендовые ралли на фондовых площадках регулярно сопровождаются шорт-сквизами.
Граничные ситуации: когда индикатор дает сбой
| Сценарий сбоя | Механика рыночной ловушки | Системный регламент защиты |
|---|---|---|
| «Залипание» в импульсе | При каскадных ликвидациях CRSI падает до 0–2 пунктов и держится там 4–7 свечей подряд. | Вход строго маркет-ордером на закрытии бара, показавшего отскок от локального дна (Close > Low), со стопом 2.0 ⋅ ATR. |
| Холодный старт (Warm-up) | На свежих листингах не хватает истории для стабилизации рекуррентного ряда RMA и буфера ранжирования. | Проверять глубину графика. Инструменты моложе 250 закрытых баров исключаются из скрининга. |
| Гэпы выходного дня | Разрыв между закрытием пятницы и открытием понедельника сбивает счетчик Streak. | Полный запрет на открытие позиций по CRSI в первые 60 минут сессии понедельника. |
| Мультиколлинеарность | Все 3 модуля считаются от единственного массива цен закрытия (Close). | Обязательно вводить независимый трендовый фильтр SMA(200) или профиль горизонтального объема. |
Сравнение осцилляторов: Wilder RSI vs Stoch RSI vs Connors RSI
| Параметр сравнения | Классический RSI Уайлдера (14) | Stochastic RSI (14, 14, 3, 3) | Connors RSI (3, 2, 100) |
|---|---|---|---|
| Что измеряет | Отношение среднего прироста к среднему убытку за 14 свечей | Положение базового RSI(14) внутри диапазона Min/Max за 14 баров | Комплекс: импульс, длина непрерывной серии и процентиль скачка |
| Рабочие границы | 30 / 70 (опорная медиана 50) | 20 / 80 | 10 / 90 (акции), 5 / 95 (криптовалюты) |
| Скорость реакции | Медленная, запаздывает при свингах | Сверхбыстрая, повышенная зашумленность | Высокая скорость со встроенной фильтрацией серийности |
| Оптимальная среда | Поиск дивергенций, трендовые подтверждения | Скальпинг от границ диапазона в боковиках | Торговля импульсных откатов (Mean Reversion) строго по тренду |
| Поведение в тренде | Дрейфует в диапазоне 60–80 без ложных сигналов | Часто залипает на значениях 0 или 100 | Быстро фиксирует завершение отката и возвращается к нейтрали |
Сравнительный анализ платформ для скрининга и бэктестинга
| Платформа | Стек / Назначение | Сильные стороны | Ограничения и порог входа |
|---|---|---|---|
| TradingView | Pine Script v5 / Скрининг графиков, ручная торговля, алерты | Встроенный штатный скрипт, открытый язык Pine Script, серверные оповещения | Требуется вручную накладывать трендовые скользящие средние |
| Veles Finance | No-code / Автоматизация криптоботов (DCA и Grid) | Готовый пресет CRSI, интеграция по API с биржами (Bybit, OKX, Binance) | Фиксированная архитектура исполнения, закрытый бэкенд |
| TrendSpider | No-code / Скрининг акций США, безинтерфейсные бэктесты | Потоковый сканер перепроданности по индексу S&P 500, бэктесты без кода | Платная подписка, высокий порог освоения интерфейса |
| Backtrader | Python / Количественные институциональные бэктесты | Полный контроль математики, симуляция комиссий и проскальзываний без заглядывания вперед | Требуются навыки разработки на Python и самостоятельная подготовка датасетов |
| StockSharp | C# / Высокочастотный алготрейдинг, прямое подключение к биржам | Предельная скорость расчетов, прямое подключение к шлюзам бирж (MOEX, криптобиржи) | Высокий порог входа, требование к знанию архитектуры C# и событийного трейдинга |
Готовый код индикатора на Pine Script v6 для TradingView
Встроенный скрипт TradingView не содержит наглядной цветовой подсветки зон. Представленный ниже код на версии Pine Script v5 исправляет это и защищен от ошибок расчета:
//@version=6
indicator(title = 'Connors RSI (CRSI) [Custom Clean]', shorttitle = 'CRSI', format = format.price, precision = 2)
// --- Входные параметры ---
rsiLength = input.int(3, title = 'RSI Price Length', minval = 1)
streakLength = input.int(2, title = 'Streak RSI Length', minval = 1)
rankLength = input.int(100, title = 'Percent Rank Lookback', minval = 10)
obLevel = input.int(90, title = 'Overbought Level', minval = 50, maxval = 100)
osLevel = input.int(10, title = 'Oversold Level', minval = 0, maxval = 50)
// 1. Компонент цены закрытия (RMA сглаживание Уайлдера)
priceRSI = ta.rsi(close, rsiLength)
// 2. Компонент непрерывных направленных серий (Streak)
calcStreak() =>
var int streakCount = 0
if close > close[1]
streakCount := streakCount > 0 ? streakCount + 1 : 1
streakCount
else if close < close[1]
streakCount := streakCount < 0 ? streakCount - 1 : -1
streakCount
else
streakCount := 0
streakCount
streakCount
currentStreak = calcStreak()
streakRSI = ta.rsi(currentStreak, streakLength)
// 3. Компонент процентильного ранга суточного скачка
oneDayReturn = (close - close[1]) / close[1]
countLower = 0
for i = 1 to rankLength by 1
if oneDayReturn[i] < oneDayReturn
countLower := countLower + 1
countLower
pctRank = countLower / rankLength * 100.0
// 4. Итоговое сведение в композитный индекс
crsi = (priceRSI + streakRSI + pctRank) / 3.0
// --- Отрисовка линий и заливка сигнальных зон ---
plot(crsi, title = 'CRSI Line', color = color.blue, linewidth = 2)
hUpper = hline(obLevel, 'Overbought', color = color.red, linestyle = hline.style_dashed)
hLower = hline(osLevel, 'Oversold', color = color.green, linestyle = hline.style_dashed)
hline(50, 'Center Axis', color = color.gray, linestyle = hline.style_dotted)
fill(hUpper, hline(100), color = color.new(color.red, 90), title = 'Overbought Zone Fill')
fill(hLower, hline(0), color = color.new(color.green, 90), title = 'Oversold Zone Fill')
Порядок установки в TradingView
- Откройте ценовой график и перейдите во вкладку Pine Editor в нижней панели терминала.
- Очистите окно редактора, вставьте представленный код и нажмите Save.
- Нажмите Add to chart (Добавить на график).
Чек-лист проверки торгового сетапа перед входом
Перед отправкой ордера сверьте параметры рынка с чек-листом:
- [ ] Буфер истории: на графике присутствует не менее 250 закрытых свечей (период прогрева формулы RMA и буфера ранжирования пройден).
- [ ] Тренд подтвержден: текущая цена закрытия находится строго выше линии SMA(200) для покупок (или ниже для продаж).
- [ ] Экстремум зафиксирован: значение CRSI опустилось ниже 10 (акции) или ниже 5 (криптовалюты).
- [ ] Свечной тест: сигнальный бар закрылся выше своего минимума (Close > Low), безоткатное падение приостановлено.
- [ ] Риск-менеджмент: стоп-лосс рассчитан по формуле 2.0 ⋅ ATR(14), риск на сделку не превышает 1% депозита.
- [ ] План выхода: закрытие позиции запланировано строго по сигналу фиксации свечи выше SMA(5).
Пошаговый регламент освоения инструмента
- Настройка рабочей среды:
Установите на дневной график ликвидных акций (AAPL, MSFT или ETF SPY) скользящую среднюю SMA(200), быструю линию SMA(5) и индикатор CRSI(3, 2, 100). - Калибровка уровней:
Установите сигнальные границы на 10 и 90 (для фондового рынка) или 5 и 95 (для криптовалют). Полностью отключите шаблонные уровни 30 и 70. - Исторический бэктест вручную:
Найдите на графике 20 последних ситуаций, когда цена находилась выше SMA(200), а CRSI опускался ниже 10. Зафиксируйте долю успешных выходов по SMA(5) и максимальную промежуточную просадку. - Отработка расчета лота на симуляторе:
Совершите 15–20 сделок на демо-счете или минимальным лотом с жестким ограничением риска 1% через стоп-лосс по формуле 2.0 ⋅ ATR(14). - Переход на рабочий капитал:
Подключайте основной депозит только после того, как серия из 20 тестовых сделок подтвердит дисциплину выхода по SMA(5) и положительное математическое ожидание.
