Система алертов по микроструктуре рынка

Обновлено 18.02.2026

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

Коротко

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

Проект опубликован без названия платформы, инструмента и инфраструктуры — по просьбе заказчика.

Задача

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

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

Как устроена

Данные идут по цепочке: поток рынка → стакан → лента сделок → детекторы → общий балл → проверка моделью → алерт в мессенджер.

Работают одиннадцать детекторов, каждый отвечает за свой признак: спуфинг (крупные заявки, которые снимаются до исполнения), айсберги (скрытый объём, размазанный по мелким сделкам), дельта (перевес агрессора), абсорбция (объём поглощается, но цена не идёт), отклик цены, имбаланс, крупные стенки, сдвиг ликвидности, кластеры объёма, скорость ленты и ускорение сделок.

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

Как отсекаются ложные сигналы

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

Управление и надёжность

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

Компоненты разнесены по контейнерам и перезапускаются автоматически, состояние передаётся через брокер сообщений. Есть health-check, логи с ротацией, версионирование сборок и откат к предыдущей версии. Секреты живут только в переменных окружения — в коде и логах их нет.

Что дальше

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

← Назад Обсудить задачу