Почему mean reversion алгоритм ломается на живом рынке
Mean reversion алгоритм строится на допущении: цена колеблется вокруг равновесного уровня и рано или поздно к нему возвращается. Пока рынок в боковике, модель работает ровно и подтверждается историей. Ломается всё тогда, когда меняются статистические свойства ряда: среднее, волатильность и автокорреляция уже не те, на которых считались параметры. Это нестационарность режима — тренд превращает сигнал на возврат в вход против движения, и серия таких входов съедает накопленный результат.
Вторая зона просадки — исполнение. Проскальзывание и разъезжающиеся спреды съедают именно те несколько пунктов, из которых состоит заработок стратегии. На глубоком рынке эффект незаметен, но вход в момент расширения волатильности даёт расхождение, и фактическая цена отличается от расчётной. Если объём набирается частями, добавляется ошибка средней по позиции.
Задержка котировок — третий источник. Сигнал считается по срезу, который к приходу заявки уже устарел: цена успевает сместиться, и вход идёт хуже расчётного. Чем выше частота сделок, тем большая доля прибыли остаётся в этом разрыве.
И четвёртое — ложные сигналы на боковике. При низкой волатильности шум пробивает порог входа, стратегия набирает много мелких позиций, и после комиссий их ожидание уходит в минус. Отдельно расхождение истории и реальных сделок: тестовый прогон исполняет заявки, которые на живом рынке не нашли встречной стороны, и показывает доходность, которой не было. Дальше разбираем, как эти участки закрываются.
Что даёт настроенный контур: эффект в измеримых величинах
Контур настраивается под измеримый результат: каждую из пяти величин ниже мы считаем на истории и подтверждаем на данных, которых модель не видела.
Доля прибыльных сделок
Вход открывается, только если отклонение цены от средней превышает порог в единицах волатильности, а не в цене. Фильтр по ликвидности отсекает сделки, где издержки съедают преимущество.
Глубина просадки
Размер позиции считается от волатильности и лимита риска на сделку, поэтому серия убытков не превращается в просадку без выхода. Стоп ставится там, где сценарий возврата к средней сломан.
Издержки на сделку
Комиссия, спред и проскальзывание вычитаются из ожидаемого хода до решения о входе. Если преимущество меньше стоимости круга, сделка не открывается — контур не торгует ради активности и не изнашивает результат о комиссии.
Время реакции на смену режима
Смена тренда и боковика отслеживается по скользящим оценкам волатильности и автокорреляции. Экспозиция снижается за несколько свечей, а не после серии убытков — этот лаг съедает прибыль у параметров, подобранных на прошлом участке истории.
Устойчивость к сбоям канала данных
Обрыв потока или расхождение котировок между источником и исполнением не приводят к аварийному закрытию позиций. Контур ведёт основной канал Binance и резервный, сверяет данные и до восстановления работает в ограниченном режиме: новые входы не открываются, риск по открытым позициям под контролем.
Режимы работы: потоковые сигналы, портфель, ручной контроль
Режим исполнения — следствие устройства стратегии, а не настройка «на вкус». Возврат к среднему чувствителен к горизонту: чем короче окно, тем чаще пересчитывается сигнал и тем дороже обходится пропуск в данных. Ниже — три контура, между которыми реально выбирают при внедрении.
| Режим | Когда подходит | Ограничения |
|---|---|---|
| Потоковые сигналы, один инструмент | Ликвидная пара, узкий спред, короткий горизонт | Пересчёт на каждом обновлении цены; чувствителен к пропускам в потоке и проскальзыванию на тонком стакане |
| Портфельный режим, корзина | Несколько коррелирующих инструментов, общий контроль риска | Пересчёт по закрытию интервала: быстрые входы теряются, зато нет гонки за одновременным исполнением |
| Ручное подтверждение сделок | Вывод стратегии в бой, новые инструменты, нестабильный фон | Задержка между сигналом и сделкой: часть входов уходит по цене хуже расчётной |
Лимиты по инструментам задаются отдельно от логики входа: доля на инструмент, число одновременных позиций, размер заявки относительно объёма стакана. Частота пересчёта сигналов при этом остаётся управляемой — от обновления цены по одной паре до закрытия интервала по корзине, — и меняется без переписывания самой модели.
Переход между режимами идёт без переписывания стратегии: сначала полуручной контур на ограниченном наборе инструментов, затем портфельный режим, и только после устойчивой статистики — потоковый по отдельным парам.
Как мы строим алгоритм: от разбора данных до запуска
Mean reversion держится на допущении, что цена отклоняется от средней и возвращается к ней. Значит, вся конструкция опирается на качество данных и честную оценку отклонения: ошибка в котировках или подгонка параметров под историю превращают стратегию в генератор ложных входов. Поэтому идём этапами, и каждый следующий начинается только после проверки предыдущего.
- Аудит данных и инфраструктуры. Проверяем глубину истории, пропуски и дубли, сдвиги меток времени, сшивку контрактов при смене инструмента, доступность биржевых интерфейсов и реальную задержку исполнения.
- Схема сигналов и фильтров. Определяем, что считаем отклонением от средней, какое окно усреднения берём, какие фильтры по волатильности и ликвидности отсекают входы в моменты, когда возврат не работает.
- Прототип. Собираем минимальную версию логики и считаем частоту сигналов, издержки и распределение результата — до подбора параметров.
- Проверка на истории и вне выборки. Настраиваем на одной части данных, проверяем на другой, которая в настройке не участвовала: смотрим, сохраняются ли параметры при сдвиге периода.
- Риск-контроль и стоп-правила. Задаём размер позиции, лимиты на инструмент и на портфель, стоп по времени удержания и по величине отклонения, ограничение дневной просадки.
- Запуск в ограниченном объёме. Выводим стратегию на минимальные объёмы и сравниваем фактическое исполнение с модельным: расхождение по проскальзыванию и комиссиям показывает, где модель расходится с рынком.
- Передача. Отдаём код, конфигурации, регламент пересмотра параметров, мониторинг ключевых показателей и инструкцию по остановке стратегии.
Артефакты проекта: конфигурации, правила риска, документация
После сдачи проекта у вашей команды остаётся не только работающий контур, но и полный комплект документации, по которому стратегию можно развивать и сопровождать без нас. Каждый артефакт отвечает на конкретный вопрос: как воспроизвести параметры, почему сработал сигнал, что произойдёт при разрыве соединения с биржей.
- Рабочая конфигурация стратегии — значения вынесены из кода в отдельный файл: окно усреднения, пороги входа и выхода, размер позиции, шаг выставления ордеров. Смена режима не требует пересборки, а каждая правка версионируется и откатывается.
- Описание сигналов — формализованное правило словами и формулами: какие ряды и на каком горизонте считаются, как отсекаются выбросы, какое отклонение от скользящей средней считается входом и по какому условию позиция закрывается при возврате к среднему.
- Регламент риск-контроля — лимиты на позицию и на инструмент, допустимая просадка за сессию, порядок остановки торгов при серии убытков, правила ручного снятия лимитов и кто имеет на это право.
- Схема потоков данных — от приёма котировок до выставления ордера и записи сделки в журнал: где какой компонент, какая задержка считается допустимой, как система ведёт себя при обрыве потока и повторном подключении.
- Инструкция по сопровождению — запуск, плановая остановка, перезапуск после сбоя, где смотреть журналы и метрики, как обновить параметры и вернуться к предыдущему набору.
- Протокол проверок — какие сценарии прогонялись на исторических данных и на демо-контуре, с какими допущениями по комиссиям и проскальзыванию, при каких условиях стратегия обязана встать на паузу.
- Карта отказов — таблица «симптом → причина → действие»: рассинхрон позиции с биржей, отказ торгового интерфейса, нехватка средств на маржу.
Комплект передаётся вместе с доступами и разбором на созвоне — ваши инженеры могут воспроизвести расчёт сигнала и изменить параметры, не обращаясь к нам.
Кейс: метрики до и после на живом портфеле инструментов
Портфель из двух десятков инструментов на Binance вёл трейдер вручную: сигнал считался по отклонению цены от среднего, но вход зависел от скорости реакции. Метрики до и после мы снимали на одном и том же отрезке истории — так сравнение не смазывается сменой рыночного режима.
До: ручные сигналы и накопленное расхождение
Расхождение расчётной и фактической цены сделки доходило до десятых процента: пока вход подтверждался вручную, котировка уходила, а часть сигналов терялась совсем. Просадки случались редко, но каждая съедала около пятой части депозита — позиция усреднялась без жёсткого лимита. Вынужденные остановки занимали четверть торговых дней, и поводом был не рынок, а разбор инцидентов и усталость; после каждой восстановление растягивалось на дни.
После: единый контур и предсказуемые издержки
Логику свели в один контур: расчёт сигнала, проверка ликвидности, лимит на позицию, автостоп по просадке. Исполнение идёт частями, поэтому расхождение расчётной и фактической цены сократилось в разы и перестало перекрывать ожидаемую доходность. Глубина просадки ограничена порогом — вместо пятой части депозита несколько процентов; доля вынужденных остановок упала до единиц процентов, а время восстановления после сбоя — с дней до часов.
Каждое решение пишется в журнал: параметры сигнала, объём, фактическая цена, причина выхода. По нему видно, где модель ошибается, и откат к предыдущему набору правил занимает минуты, а не новую торговую сессию.
Чем возврат к среднему отличается от следования тренду
Возврат к среднему зарабатывает на отклонении цены от равновесного уровня и последующем схождении: у доходностей появляется отрицательная автокорреляция, а спред ведёт себя стационарно. Следование тренду — обратная ставка: вход по пробою и удержание позиции, пока направленное движение сохраняется.
Режим рынка решает, какой подход вообще имеет право торговать. В боковике трендовые входы собирают ложные пробои и мелкие стопы, а на разгоне без откатов возвратный контур теряет, потому что равновесный уровень уезжает вместе с ценой — этот эффект формализован в Avellaneda–Lee.
| Подход | Рабочий режим | Где теряет |
|---|---|---|
| Возврат к среднему | Боковик, стационарный спред | Тренд: средняя смещается, стопы идут подряд |
| Следование тренду | Пробой после сжатия волатильности | Пила и ложные пробои |
| Комбинированный контур | Смена режима по волатильности | Ошибка классификатора на границе |
Смысл комбинирования — взаимное гашение ошибок. Просадки контуров приходятся на разные фазы рынка, корреляция доходностей ниже единицы, поэтому итоговая кривая ровнее, а глубина просадки меньше, чем у каждого подхода по отдельности.
Переключение строим по волатильности и стационарности: тест на стационарность спреда, показатель Хёрста, реализованная волатильность и её перцентиль, время полураспада отклонения. Чтобы классификатор не переключался на каждом колебании, вводим гистерезис и подтверждение по нескольким закрытым барам, а размер позиции масштабируем обратно волатильности — риск считает один модуль на оба контура.
Технические сомнения: проскальзывание, ликвидность, сбои канала
Проскальзывание и ликвидность проверяются на исторических срезах, но самый дорогой класс сбоев — неполные данные. Когда поток котировок приходит с пропусками или задержкой, алгоритм продолжает считать по устаревшему состоянию и выдаёт сигнал на цене, которой уже нет.
Поэтому в mean reversion алгоритм закладываем три контура защиты: проверку полноты входного ряда перед каждым расчётом, ограничение частоты сделок на инструмент и журналирование решений — каждое действие фиксируется вместе с входными значениями и причиной срабатывания или отказа.
Что делает стратегия при обрыве канала данных?
Поток помечается как неактуальный, и алгоритм переходит в режим наблюдения: открытые позиции удерживаются по заранее заданным правилам выхода, новые сделки не открываются. После восстановления канала пропущенный интервал сверяется с независимым источником, и только затем торговля возобновляется.
Как проверяете устойчивость к смене режима рынка?
Стратегия прогоняется на отрезках с разной волатильностью и разной ликвидностью, включая участки резких движений. Смотрим не на результат одного удачного периода, а на разброс исходов и глубину просадок: если параметры подогнаны под один режим, это видно сразу.
Зачем ограничивать частоту сделок?
Ограничение защищает от серии ложных сигналов на рваном рынке и от роста издержек на комиссиях и проскальзывании. Лимит задаётся на инструмент и на период, а его срабатывание попадает в журнал — по нему видно, где стратегия упёрлась в потолок, а где отработала штатно.
Что попадает в журнал решений?
Входные значения на момент расчёта, признак полноты данных, версия правил, сам сигнал и причина его отклонения, если сделка не открыта. Этого достаточно, чтобы восстановить логику работы за любой период и отличить ошибку алгоритма от изменения рынка.
Обсудим задачу: инструменты, горизонт, правила риска
Чтобы вернуться с оценкой и планом работ, а не с общими словами, нам нужны вводные по вашей задаче. Ниже — что прислать: по этим пунктам мы считаем объём, подбираем окно расчёта и закладываем поведение стратегии на реальных издержках.
- Инструменты и площадки. Где торгуем — спот или срочный рынок, какие пары, через какие программные интерфейсы идёт доступ и есть ли лимиты по частоте обращений.
- Данные. Какая история нужна и что уже есть: выгрузки или потоковый канал, часовой пояс меток времени, глубина и полнота записей. Если истории не хватает, подскажем источник.
- Горизонт удержания. Типичное время жизни позиции — минуты, часы или дни. От этого зависит окно расчёта среднего и допустимая задержка исполнения.
- Ограничения по риску. Предельный размер позиции, максимальная просадка, при которой стратегия останавливается, число одновременных позиций и поведение при разрыве связи.
- Издержки исполнения. Комиссии площадки, ожидаемое проскальзывание, минимальный шаг цены и объёма — закладываем в проверку, чтобы сигналы не «съедались» расходами.
- Точки подключения к контуру. Как алгоритм получает данные и отправляет заявки: отдельный счёт, ключи с ограниченными правами, есть ли тестовый контур площадки.
- Контроль и отчётность. Что хотите видеть в журнале: сделки, отклонённые заявки, причина остановки стратегии, выгрузка итогов за период.
Опишите задачу в свободной форме — даже черновиком. Мы уточним недостающее, вернёмся с оценкой, планом работ и перечнем того, что нужно с вашей стороны для запуска.







