ML-модель анализа технических индикаторов RSI, MACD и Bollinger Bands

Сигналы, которые работают на тренде, сыпятся на боковике, и решение приходится пересматривать вручную. Мы разрабатываем AI-модели анализа технических индикаторов под ключ: от разбора истории котировок до регламентов эксплуатации. На выходе — устойчивость к смене режима и заметно меньшая доля ложных сигналов.
Часто задаваемые вопросы

Почему AI-модель технических индикаторов ломается на смене режима

RSI нормирует движение на выбранное окно, и на тренде это играет против разметки: индикатор неделями висит в зоне перекупленности, а каждое касание границы модель читает как разворот. Часть таких сигналов отрабатывает на откате, часть — нет, и отличить их по одному значению невозможно. MACD устроен ещё честнее в своей слабости: он считается как разность скользящих средних, поэтому запаздывание сигнала заложено в саму формулу. Пересечение фиксируется, когда движение уже прошло, а гистограмма разворачивается позже точки входа.

Bollinger Bands добавляют третье измерение — ширину канала. Пробой полосы при сжатом канале и пробой при расширенном — статистически разные события, хотя для модели это один и тот же признак. Ложные сигналы индикаторов здесь не шум, а следствие того, что индикаторы описывают цену, а не причину её движения.

Основная поломка происходит на обучении. Подгонка под историю — это когда AI-модель технических индикаторов находит сочетания значений RSI, MACD и Bollinger Bands, совпадавшие с ростом в прошлом окне, но не имеющие повторяемой причины. На исторических данных точность выглядит высокой ровно потому, что эти же данные участвовали в настройке, а не проверяли её.

Анализ RSI, MACD и Bollinger Bands теряет силу в момент смены характера ряда: меняется волатильность, соотношение тренда и боковика, связи между инструментами. Признаки, отобранные на спокойном участке, перестают предсказывать — и это не деградация весов, а смещение самих данных. Разбираем, как это закрывается устойчивыми к режиму признаками и проверкой на данных, которых модель не видела.

Точность сигналов, задержка отклика и устойчивость к смене режима

Точность сигналов — не одно число, а три независимых измерения: доля ложных срабатываний, задержка отклика и поведение на смене режима. Модель может выигрывать на среднем по истории отрезке и терять всё на боковике, где RSI разворачивается часто, а MACD даёт ложные пересечения. Поэтому принимаем работу по фиксированному списку проверок, где каждый пункт считается отдельно на отложенном отрезке.

  • Доля ложных срабатываний. Считаем не общую точность, а долю входов, закрытых по защитному условию раньше целевого уровня — по каждому режиму отдельно, а не в среднем по выборке.
  • Задержка отклика. От закрытия бара с подтверждённым сигналом до расчёта целевой позиции держим доли бара, иначе вход проходит по цене хуже той, на которой посчитан признак.
  • Боковик. Отдельный прогон на участках без направленного движения: полосы Боллинджера схлопываются, и модель не должна открывать вход на каждом касании границы.
  • Трендовый участок. Проверяем удержание позиции через откаты — сигнал не должен переворачиваться от первого возврата цены к средней.
  • Качество признаков. RSI, MACD и полосы считаем по одной методике и одному периоду сглаживания (TA-Lib как эталон) — расхождение даёт систематический сдвиг сигнала.
  • Устойчивость к смене режима. Момент переключения фиксируем по волатильности, а не ручным правилом, и смотрим долю ошибок в первые часы после смены.
  • Воспроизводимость. Повторный прогон того же отрезка даёт те же сигналы — без этого метрики точности ничего не значат.

Варианты построения: от пороговых правил до гибридных схем

Технические индикаторы дают формализуемый сигнал, поэтому способ его разбора определяет устойчивость всей системы. Жёсткие пороги читаются человеком и не требуют накопленных данных, но на смене режима рынка дают серию ложных срабатываний — RSI держится в зоне перекупленности дольше, чем заложено в правиле, а полосы Bollinger Bands расширяются ровно тогда, когда прежний порог перестаёт что-либо значить.

Вариант Когда подходит Ограничения
Правила на индикаторах Нужна полная объяснимость решения, истории мало, сигнал проверяется вручную Ломается при смене волатильности, пороги приходится перебирать заново
Модель на табличных признаках Индикаторы уже сведены в один срез на момент решения, важны их нелинейные сочетания Теряет порядок событий: вход в зону и выход из неё выглядят одинаково
Модель на последовательности Важен сам путь индикатора — серии, дивергенции, накопление сигнала Нужна длинная история и аккуратная разметка, поддержка дороже
Гибридная схема Режим рынка меняется, нужны и объяснимость, и гибкость Требует контура регулярного дообучения и контроля смещения распределения

Выбор идёт не по «сложности модели», а по объёму истории, цене ошибки и требованию к объяснимости. На практике чаще работает гибридная схема: правила задают каркас и отсекают заведомо недопустимые состояния, модель уточняет вес признаков внутри разрешённой области. Дальше её качество держит регламент: раз в отчётный период регулярное дообучение на свежем окне данных, проверка на отложенном участке, сравнение с текущей рабочей моделью и откат, если метрики просели. Без этого контура любая схема деградирует молча.

Этапы внедрения: от аудита котировок до эксплуатации

Работу ведём последовательно: сначала проверяем пригодность данных, затем строим признаки, и только потом обучаем модель. Каждый этап закрывается проверяемым артефактом — отчётом, набором признаков, метриками. Пропущенный шаг на аудите данных дороже всего обходится в эксплуатации.

  1. Аудит исторических данных. Сводим котировки из разных источников к единому шагу по времени, размечаем пропуски и разрывы торговых сессий. Проверяем ряд на заглядывание вперёд: значение текущего бара не должно попадать в расчёт до момента принятия решения.

  2. Проектирование признаков. RSI, MACD и Bollinger Bands считаем на скользящих окнах с лагами, добавляем производные — расхождение цены с индикатором, ширину полос, смену знака гистограммы. Для каждого признака фиксируем формулу, окно и источник.

  3. Обучение и подбор параметров. Ряд разбиваем по времени, а не случайно, иначе модель запоминает соседние бары и показывает завышенное качество. Параметры подбираем на участке, который не пересекается с проверочным.

  4. Валидация на отложенном периоде. Прогоняем модель на данных, которых она не видела, и отдельно смотрим поведение в разных режимах рынка — тренд, боковик, высокая волатильность. Если качество держится только в одном режиме, признаки переделываем.

  5. Настройка контура расчёта. Собираем регулярный пересчёт признаков и сигналов, сверяем результат контура с обучающим на одних и тех же данных: расхождение означает ошибку в обработке.

  6. Передача в эксплуатацию. Отдаём конфигурации контура, регламент переобучения, панель с метриками качества и оповещения о дрейфе данных. Команда заказчика запускает расчёт самостоятельно.

Что остаётся у вас: код, признаки, регламенты, документация

Модель — примерно половина результата, вторая половина — то, что позволяет считать её воспроизводимо и переобучать без нас. Поэтому передаём не только AI-модель технических индикаторов, но весь контур: код, признаки, расчётную схему и правила эксплуатации, а не один файл с весами.

  • Исходный код обучения и расчёта с фиксированными версиями зависимостей — окружение поднимается с нуля на чистой машине.
  • Конфигурация признаков: окна RSI, периоды MACD, отклонения полос Боллинджера, правила обработки пропусков и перехода между интервалами баров — в декларативных файлах, а не зашиты в код.
  • Схема расчётного контура: где считаются индикаторы, где применяется модель, как обновляются данные, где стоят проверки и повторы при сбоях.
  • Регламент переобучения: условия запуска — деградация контрольных метрик или смена режима рынка, окно обучения, порядок валидации и откат к предыдущей версии.
  • Контрольные метрики на отложенной выборке с фиксированными разрезами: версии сравниваются между собой на одних и тех же данных.
  • Техническая документация: описание признаков, форматов входных данных, интерфейсов и границ применимости модели.
  • Приёмочные тесты на эталонных данных — по ним расчёт воспроизводится на вашей стороне и сверяется с нашим результатом.

Как сократили долю ложных сигналов на боковике: разбор проекта

Заказчик — команда алгоритмической торговли AlgoDesk: сигналы генерировались автоматически по RSI, MACD и Bollinger Bands, но контур не различал тренд и диапазон. На тренде входы отрабатывали, а на боковике большинство сделок закрывалось по стопу в первые минуты — цена возвращалась к середине канала, хотя индикаторы показывали согласованный сигнал. Трейдеры снимали такие входы вручную, то есть автоматизация нагрузку не снимала.

Переобучать модель на «удачных» сделках не стали — это подгонка под историю. Добавили отдельный слой оценки режима: по сжатию полос волатильности, наклону средней и расхождению подтверждающих индикаторов участок помечается как трендовый или боковой. В диапазоне порог срабатывания выше и вход требует подтверждения со старшего интервала; на тренде чувствительность прежняя, чтобы не терять начало движения.

Метрики до и после

  • Доля сигналов, закрытых по стопу сразу после входа на боковике: 61% → 23%.
  • Среднее число входов в час внутри диапазона: 14 → 5.
  • Прибыльность на трендовых участках: в прежнем коридоре, задержка входа — одна свеча.
  • Просадка в диапазонные недели: меньше примерно втрое.
  • Ручных снятий сигнала трейдером: с десятков за смену до единичных.

Отсев шума не зарезал чувствительность: стабильность на тренде сохранилась, а ложные сигналы на боковике перестали быть потоком. Управляемость вернулась к контуру — неблагоприятный режим модель помечает сама, трейдер вмешивается только в исключениях.

Чем отличается разбор индикаторов от прогноза по сырым котировкам?

Сырые котировки — зашумлённый ряд: микроструктурный шум, разрывы на новостях, смена волатильности. Модель на таком входе учится отличать закономерность от случайного всплеска, и ей нужна длинная история и проверка на отложенном периоде — иначе она запоминает прошлое вместо текущего режима. Индикаторы — сжатое представление того же ряда: RSI, MACD и Bollinger Bands уже сглажены и нормированы, поэтому вход получается компактнее и устойчивее к единичным выбросам.

Разбор индикаторов выигрывает там, где важна объяснимость результата. Пересечение MACD, выход RSI из зоны перекупленности, касание границы канала — решение раскладывается на проверяемые условия, которые можно прогнать по истории и обсудить с риск-контролем. Ложных срабатываний на коротких окнах меньше, а объёма данных для обучения требуется заметно скромнее.

Прогноз по сырым котировкам нужен, когда сигнал живёт в структуре самого ряда: смена режима волатильности, затяжной тренд, реакция на новостной разрыв. Индикаторы здесь запаздывают — они построены на сглаживании и физически не успевают за резким изменением. Для таких задач модель обучают на последовательности цен, а индикаторы подключают как дополнительные признаки, а не как единственный источник.

Выбор подхода мы делаем от задачи, а не от привычки: горизонт, допустимая задержка сигнала, объём истории, требования к объяснимости. На практике чаще работает гибрид — расчёт по индикаторам как каркас и модель на самом ряде для тонких зависимостей. Объяснимость при этом сохраняется: видно, какие индикаторы дали вклад, а какие участки ряда усилили сигнал.

Переобучение, утечки данных и разрывы: частые сомнения

Три возражения всплывают почти на каждом старте: как доказать, что модель не подогнана под историю, что делать с пропусками в ряде и не развалится ли результат при смене режима рынка. Короткие ответы по существу — без них обсуждать архитектуру рано.

Как проверяете, что модель не подогнана под историю?

Ряд делим по датам, а не случайной выборкой: обучение на одном отрезке, проверка на следующем, затем окно сдвигается — модель проходит через разные состояния рынка. Признаки считаются только по закрытым барам, иначе индикатор подглядывает в будущее. Смотрим не лучший результат, а разброс между окнами: держится в узком коридоре — подгонки нет.

Что делать с разрывами и пропусками в ряде?

RSI, MACD и полосы Боллинджера считаются по непрерывному окну, и пропуск внутри ломает значение. Календарь выравниваем по торговым интервалам, а не по календарным дням; короткие пропуски восстанавливаем, длинные — режем и помечаем как разрыв, чтобы модель не училась на склейке разнородных участков.

Как понимаете, что модель работает не в одном режиме рынка?

Метрики считаем отдельно по тренду и боковику: средняя точность скрывает провал в одном из них. В отчёте видно, где сигнал уверенный, а где модель отдаёт осторожный результат. Смена режима заметна по распределению признаков заранее, а не по просадке на счёте.

Насколько объясним результат?

По каждому сигналу видно, какие индикаторы дали вклад и на каких значениях — вплоть до участка истории, который пересчитывается вручную. Это и критерий приёмки: инженер заказчика воспроизводит сигнал и получает то же число.

Обсудим задачу и вернёмся с оценкой и планом работ

Достаточно принести то, что уже есть: выгрузку исторических котировок по нужному инструменту, правила расчёта сигналов в текущем виде и описание того, как результат используется сейчас. Этого хватает, чтобы оценить состав данных, этапность и объём работ — отдельная спецификация на входе не нужна.

  • Состав данных: источники и глубина истории, периодичность, известные пропуски и выбросы, какие индикаторы считаем (RSI, MACD, Bollinger Bands) и с какими окнами усреднения.
  • Требования к контуру: где считается модель — закрытый внутренний контур или внешние сервисы, кто имеет доступ к данным и результатам, нужно ли разделять обучение и вывод.
  • Целевое поведение: что считаем верным сигналом, какой горизонт прогноза, что дороже — ложное срабатывание или пропуск движения.
  • Режим работы: разовый расчёт, регулярный пересчёт по расписанию или непрерывный поток, с какой задержкой от появления свечи нужен результат.
  • Управление риском деградации: как модель отключается, что считаем ухудшением качества и по какому набору метрик это видно.
  • Точки приёмки: на каком историческом отрезке проверяем, кто со стороны заказчика подтверждает результат и как оформляем расхождение.
  • Доступы и роли: кто отвечает за выгрузки, кто — за приёмку, нужны ли тестовые данные с ограниченным доступом.

После обсуждения вернёмся с оценкой сроков, планом работ по этапам и требованиями к данным и контуру — в письменном виде, чтобы их можно было согласовать внутри команды.

Направления AI-разработки

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1542
  • Разработка веб-приложения для компании FEEDME
    Разработка веб-приложения для компании FEEDME
    1393
  • Разработка веб-сайта для компании БЕЛФИНГРУПП
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1081
  • Разработка интернет магазина для компании FURNORO
    Разработка интернет магазина для компании FURNORO
    1368
  • Разработка логотипа компании B2B Advance
    Разработка логотипа компании B2B Advance
    815
  • Разработка веб-приложения для компании Enviok
    Разработка веб-приложения для компании Enviok
    1139