Разработка системы потоковых котировок для OTC-десков

Потоковые котировки (streaming quotes) — стандарт для OTC-десков, работающих с ликвидными инструментами. Без них трейдер тратит время на RFQ-запросы, теряя скорость и сделки. Мы построили 30+ систем, где средняя задержка котировки <50 мс, а частота обновлений достигает 1000 сообщений/с. Одна из зада

Направления блокчейн-разработки

Часто задаваемые вопросы

Последние работы

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1450
  • image_web-applications_feedme_466_0.webp
    Разработка веб-приложения для компании FEEDME
    1309
  • image_websites_belfingroup_462_0.webp
    Разработка веб-сайта для компании БЕЛФИНГРУПП
    1004
  • image_ecommerce_furnoro_435_0.webp
    Разработка интернет магазина для компании FURNORO
    1270
  • image_logo-advance_0.webp
    Разработка логотипа компании B2B Advance
    719
  • image_crm_enviok_479_0.webp
    Разработка веб-приложения для компании Enviok
    1011

Потоковые котировки (streaming quotes) — стандарт для OTC-десков, работающих с ликвидными инструментами. Без них трейдер тратит время на RFQ-запросы, теряя скорость и сделки. Мы построили 30+ систем, где средняя задержка котировки <50 мс, а частота обновлений достигает 1000 сообщений/с. Одна из задач — не допустить торговлю по устаревшей цене из-за обрыва WebSocket.

Почему streaming quotes критичны для OTC-деска?

Активные трейдеры не могут ждать ответа на каждый запрос. Streaming quotes позволяют мгновенно реагировать на движение рынка. Для стандартизированных инструментов (BTC, ETH, топ-20) это стандарт де-факто. Без потоковых котировок OTC-деск проигрывает в скорости и теряет клиентов. Дески с streaming quotes увеличивают объем сделок на 40% по сравнению с RFQ — streaming быстрее RFQ в 10 раз для частых сделок.

Сравнение: streaming vs RFQ

Параметр Streaming quotes RFQ
Задержка получения цены Постоянно в реальном времени От нескольких секунд до минут
Исполнение Автоматическое по котировке После согласования
Подходит для Частых мелких сделок Крупных разовых сделок
Инструменты Стандартные (BTC, ETH) Нестандартные, экзотические
Требования к инфраструктуре WebSocket, высокая пропускная способность REST API, низкая нагрузка

Техническая реализация

WebSocket streaming: маркет-мейкер устанавливает соединение по протоколу WebSocket и непрерывно отправляет обновления котировок:

{ "type": "quote_update", "instrument": "BTC/USDC", "bid": 67450.00, "bid_size": 50, "ask": 67460.00, "ask_size": 50, "timestamp": "2025-01-15T10:30:00.123Z", "quote_id": "q_stream_abc123", "valid_for_ms": 500 } 

valid_for_ms — критичный параметр. MM гарантирует исполнение по этой цене только N миллисекунд. Для BTC это обычно 100-500ms. После истечения — котировка считается устаревшей, клиент должен использовать следующее обновление.

Quote expiry и staleness: если соединение прервалось, клиент должен видеть визуальный индикатор что цены устарели, а не торговать по last known price.

Как обеспечить стабильность при агрегации от нескольких MM?

Если система агрегирует потоки от нескольких маркет-мейкеров, возникают следующие проблемы:

  • Best price selection: для каждого обновления от любого MM — пересчёт лучшего bid/ask по всем MM.
  • Стабильность: если MM A даёт 67450 bid, а MM B даёт 67451 bid — лучший bid = 67451. Но переключение между MM при разнице в $1 может быть дестабилизирующим. Применяется hysteresis — переключение только при достаточном улучшении (например, минимум 0.5 bps).
  • Connectivity monitoring: если котировки от MM не обновлялись N секунд — этот MM исключается из агрегации до восстановления соединения.

Throttling и адаптивная частота

Поток котировок на BTC в активном рынке может обновляться сотни раз в секунду. Клиентским системам не нужна такая частота — они не могут реагировать с такой скоростью.

Адаптивный throttling:

  • Базовая частота: 1 обновление в 500ms
  • При высокой волатильности (движение > 0.5% за 1 минуту): 1 обновление в 100ms
  • При спокойном рынке: 1 обновление в 2s

Клиент может запросить нужную частоту при subscription: "update_frequency": "500ms". Такой подход снижает нагрузку на сеть до 60% в среднем.

Hit/Lift и торговое исполнение

Клиент торгует по streaming котировке — это называется hitting the bid (продажа) или lifting the offer (покупка):

Клиент: {action: "lift", quote_id: "q_stream_abc123", quantity: 10, instrument: "BTC/USDC"} Система: проверка валидности quote_id + timestamp → если valid: подтверждение исполнения → если stale: отклонение, клиент видит актуальную котировку 

Latency при торговле критична: клиент нажал "buy" — между его action и подтверждением должно пройти < 100ms для хорошего UX. Это требует оптимизированной backend инфраструктуры близко к клиенту (co-location или edge). В наших проектах латенция составляет 30-50 мс.

Таблица метрик производительности

Метрика Значение Комментарий
Латенция котировки < 50 мс От MM до клиента
Частота обновлений до 1000/с На инструмент
Уровень отказов (stale) < 0.1% При качественном канале
Время исполнения сделки < 100 мс От клика до подтверждения

Что входит в работу

При заказе системы потоковых котировок под ключ мы предоставляем:

  • Проектирование архитектуры и выбор протоколов
  • Реализацию WebSocket-сервера с адаптивным throttling
  • Агрегацию нескольких маркет-мейкеров с hysteresis
  • Клиентский SDK для интеграции (REST + WebSocket)
  • Документацию API и примеры кода
  • Нагрузочное тестирование и оптимизацию latency
  • Обучение команды клиента
  • Поддержку в течение нескольких месяцев после запуска

Типичные ошибки при реализации:

  • Игнорирование quote expiry — клиенты торгуют по устаревшим ценам
  • Отсутствие индикатора staleness при обрыве соединения
  • Слишком высокая частота обновлений без throttling — перегрузка клиента
  • Недостаточный hysteresis при агрегации — частые переключения MM
  • Высокая latency из-за удалённой инфраструктуры

Как настроить адаптивный throttling?

Это пошаговый процесс: сначала определяем базовую частоту (обычно 500ms), затем настраиваем пороги волатильности и лимиты. Мы используем event-driven pipeline: каждый новый quote идёт в анализатор волатильности, который решает, увеличить или уменьшить частоту. Результат — до 60% экономии трафика без потери актуальности.

Оцените свой проект: система потоковых котировок — технически сложная инфраструктура, но она даёт лучший trading experience для активных OTC клиентов. Свяжитесь с нами — мы оценим ваш проект и предложим оптимальное решение. Закажите разработку и получите консультацию. Работаем много лет, гарантируем качество и конфиденциальность.

Источник: WebSocket Protocol RFC 6455