Работающий процесс ещё не означает работающую торговую систему. Нужны контроль данных, ордеров, позиции, риска и понятный путь ручного вмешательства.
01Наблюдать всю цепочку
Мониторинг разделяют на инфраструктуру, рыночные данные, стратегию, исполнение и риск. Один зелёный статус сервера ничего не говорит о свежести котировок или совпадении позиции.
Для каждого слоя определяют нормальное состояние, предупреждение и условие остановки. Эти правила проверяются до реального запуска.
Панель должна отвечать на три вопроса: получает ли бот данные, почему он принял последнее решение и соответствует ли биржа локальному состоянию.
02Жив ли процесс и его зависимости
Heartbeat подтверждает, что основной цикл продвигается, а не просто существует в памяти. Отдельно проверяются WebSocket, REST API, база и канал уведомлений.
Метрика последнего успешного события полезнее общего uptime. Процесс может работать часами с зависшим потоком данных.
Перезапуск ограничивают, чтобы неисправность не создала бесконечный цикл запросов и новых заявок.
03Свежесть и целостность данных
Измеряйте возраст последней котировки, пропуски последовательности, число переподключений и расхождение часов.
При потере обновления локальный стакан объявляется недействительным. Новые сигналы блокируются до получения и сверки снимка.
Аномальная цена или объём не должны автоматически попадать в стратегию. Фильтр отмечает событие и требует подтверждения соседними источниками или новым обновлением.

04Жизненный цикл каждого ордера
Система хранит время создания, отправки, принятия, частичных исполнений, отмены и финального статуса. Заявка без обновления дольше лимита требует сверки.
Отслеживаются отклонения, повторные запросы и rate limits. Серия одинаковых ошибок переводит исполнителя в безопасный режим.
Уникальный клиентский идентификатор связывает журнал решения с фактом на бирже и помогает восстановиться после сбоя.
05Позиция сверяется с биржей
Периодическая reconciliation сравнивает локальный объём, направление, среднюю цену и открытые заявки с биржей. Расхождение блокирует новые входы.
Автоматическое исправление допустимо только для заранее понятных случаев. Необъяснимая позиция требует уведомления и ручного решения.
Сверка выполняется после старта, переподключения и любой неоднозначной ошибки отправки.
06Риск наблюдается независимо от стратегии
Отдельный контур считает текущую экспозицию, плечо, дневной результат и расстояние до лимитов. Он не полагается на внутреннее состояние сигнала.
Kill switch запрещает новые заявки и по выбранной политике отменяет открытые. Закрытие позиции — отдельное осознанное действие, потому что рыночный выход тоже несёт риск.
Кнопка ручной остановки и отзыв API-ключа должны оставаться доступными, даже если основное приложение не отвечает.

07Уведомления должны требовать действия
Не отправляйте каждую нормальную сделку как тревогу: поток шума учит оператора игнорировать сообщения. Разделяйте информацию, предупреждение и критическое событие.
Хорошее уведомление содержит время, компонент, проблему, текущее безопасное состояние и следующий шаг. Секреты и полные ответы API в него не попадают.
Периодически проверяйте сам канал алертов тестовым сигналом. Молчание может означать не отсутствие проблем, а неисправную доставку.
08Регламент реакции на инцидент
Для типовых ситуаций заранее записывают порядок: остановить входы, сверить ордера, проверить позицию, сохранить данные и только затем перезапускать.
После инцидента фиксируют временную линию и первопричину. Исправление сопровождается тестом, который воспроизводит отказ.
Возврат к торговле проходит через теневой режим или минимальный объём. Устранение сообщения об ошибке ещё не подтверждает восстановление всей цепочки.
Материал носит информационный характер и не является индивидуальной инвестиционной рекомендацией. Торговля связана с риском потери капитала.
