Перейти к содержимому
Все документы библиотеки

Поддержание книги заявок в реальном времени по обновлениям WebSocket

Код Библиотека курсов по квантовому трейдингу

Сводка

В примере описан клиент WebSocket, который подключается к бирже деривативов, проходит аутентификацию, подписывается на общедоступные потоки книги заявок и после аутентификации запрашивает закрытые потоки, связанные со счётом. Рабочий цикл получает сообщения, вызывает обработчики событий и переподключается после сбоев сокета; отдельный поток периодически отправляет ping-кадры. Пример хранит уровни спроса и предложения в словарях, ключами которых служат идентификаторы заявок, и обновляет их при получении частичных снимков, добавлений, изменений и удалений.

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

Ключевые идеи

  • Клиент проходит аутентификацию через WebSocket перед подпиской на закрытые потоки.
  • Один рабочий поток получает сообщения и переподключается при ошибках сокета, а другой периодически отправляет ping-запросы.
  • Снимки книги заявок и инкрементальные сообщения обновляют словари уровней заявок на покупку и продажу, где ключами служат идентификаторы заявок.
  • Пять лучших уровней выбираются после сортировки заявок на покупку по убыванию цены, а на продажу — по возрастанию.
  • В примере нет данных о результатах; не рассматриваются восстановление после пропусков обновлений и безопасное хранение учётных данных.

Теги

Материал из частной учебной коллекции; оригинал не опубликован.