Биржа отправляет события, уведомляющие нас об изменениях ордеров – будь то их создание, частичный откуп или завершение. Мы обрабатываем каждое такое уведомление и можем оперативно реагировать, например, автоматически выставляя ордер на продажу, когда рыночные условия соответствуют заданным критериям.
Как это работает?
1). Установка и поддержка соединения с биржей. При активном соединении приходят сообщения в реальном времени, а при потере связи система запрашивает исторические данные, чтобы заполнить «пробелы».
2). Очередь сообщений. Все поступающие данные (как real-time, так и исторические) складываются в очередь, чтобы обрабатывать их последовательно и избежать дублирования или неправильного порядка.
3). Обработка ордеров.
- Если ордер создаётся вручную или его идентификатор меньше минимального – сообщение игнорируется.
- Если ордер новый, он добавляется в хранилище, и генерируется событие создания (ORDER_CREATED).
- Если ордер уже существует, вычисляется разница между предыдущим состоянием и новым (например, частичный откуп) – генерируется событие откупа (ORDER_TRADE).
- При завершении ордера (например, отмена или окончательное исполнение) обновляется статус ордера, генерируется событие завершения (ORDER_FINISHED), а завершённые ордеры удаляются из начала списка.