Слогер Создать блог
Разработка

REST или WebSocket: как дать торговому боту реальное время

Разбираем, чем push-поток лучше опроса REST API, как подключить WebSocket к торговому боту и когда это оправдано.

Торговый бот, который получает цены по REST API раз в секунду, похож на джедая, размахивающего световым мечом по таймеру. Вроде стараешься, но удары всё время уходят в пустоту: резкие движения цены проходят мимо. Это ровно то, что случилось со мной на первом серьёзном боте. Логика стратегии была чистой, а данные безнадёжно устаревали.

REST-опрос — это вопрос «какая цена прямо сейчас?» с частотой раз в секунду. Ответ вы получаете, но он описывает прошлое. Для алгоритмической торговли прошлое на секунду меньше — почти вечность.

Почему REST-опрос проигрывает

Каждый вызов REST API — это отдельный HTTP-запрос с накладными расходами. К секунде-старой цене добавляются сетевые задержки, обработка запроса, сериализация. Вы ещё не получили ответ, а рынок уже ушёл.

Плюс у API есть rate limit. Если бот опрашивает сервер каждую секунду, он сжигает лимиты впустую. Чем больше символов в стратегии, тем чаще вы упираетесь в ошибки 429.

И ещё один нюанс: приложение без ретрая падает, как только соединение с API обрывается на долю секунды. В WebSocket вы подключаетесь один раз, и вопросы обрыва решаются отдельным обработчиком, а не крашем всего процесса.

Что даёт WebSocket

WebSocket — это постоянный канал двусторонней связи. Открыли соединение, отправили запрос на подписку — и сервер сам присылает каждый тик, каждое изменение стакана, каждое исполнение сделки. Вам не нужно спрашивать. Рынок сам говорит с вами.

Задержка падает до десятков миллисекунд. Вы перестаёте тратить время на HTTP накладные расходы, а бот начинает видеть микро-движения, которые раньше проскакивали мимо. Именно поэтому реальное время — не роскошь, а база для активной торговли.

Как подключить WebSocket: шаги на примере Alpaca

Alpaca подходит для демонстрации: у неё есть и REST, и WebSocket для американских акций. Эндпоинт WebSocket выглядит так: wss://stream.data.alpaca.markets/v2/iex. Работать с ним довольно просто.

  1. Открыть соединение с WebSocket-адресом.
  2. Аутентифицироваться: отправить JSON с полями action, key и secret.
  3. Подписаться на тикеры: передать action: subscribe и список символов для trades.
  4. В обработчике сообщений проверять тип сообщения и забирать цену, символ и время.
  5. Добавить обработчик ошибок и закрытия. При закрытии — подождать пару секунд и переподключиться.
  6. Держать соединение живым пингами с интервалом 30 секунд.

В Python это делается через библиотеку websocket-client. В колбэке on_open сначала отправляете аутентификацию, потом подписку. В on_message разбираете JSON и передаёте нужные поля в стратегию. В on_close не забываете про реконнект.

Сравнение: REST против WebSocket

Параметр REST polling WebSocket
Задержка данных сотни миллисекунд + период опроса единицы-десятки миллисекунд
Нагрузка на API новый HTTP-запрос каждую секунду одно соединение, без запросов на каждый тик
Rate limits кончаются быстро практически не тратите
Обработка обрывов нужен ретрай вручную нужен реконнект + пинги
Сложность внедрения проще для старта сложнее: подписка, обработчики, reconnect

Когда WebSocket не нужен

Всё зависит от горизонта торговли. Если стратегия держит позиции несколько дней и решает на основе дневных свечей, секундная задержка ничего не меняет. REST API вполне хватит, а настройка WebSocket только добавит хрупкости.

WebSocket нужен интрадей-стратегиям, арбитражу, market making — всему, что реагирует на микро-движения в течение нескольких секунд. Для этого опрос REST — просто убить производительность.

Типичные ошибки при переходе на WebSocket

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

Самый простой путь — начать с одного тикера, добавить реконнект и обработку ошибок, потом уже расширять на остальные символы. Так вы быстро увидите, как реальный поток отличается от опроса REST, и поймёте, стоит ли овчинка выделки для вашей стратегии.

В итоге WebSocket — это не магия, а правильный инструмент. Для активных роботов он обязателен, для редких сделок — лишняя сложность. Выбирайте по горизонту торговли, а не по красивым графикам.

По материалам: finance. Текст переработан редакцией Слогера.

← На главную

Рекламное место — Конец поста
Реклама · Слогер

Комментарии (5)

Войдите, чтобы комментировать.

Pollob roy 27.08.2026 13:15 ▲ 0
Interesting
Farabi Ahmed 30.08.2026 16:48 ▲ 0
Это отличная идея.
Afroza alom 06.09.2026 14:07 ▲ 0
Great Idea
Booyah m 06.09.2026 14:25 ▲ 0
Очень интересно и полезно, спасибо автору!
Ali Bayumi 09.09.2026 06:46 ▲ 0
Ты лучший, продолжай, чемпион
Fluxs lenta
Реклама · fluxs.ru
Разработка

Как внедрять ИИ в компании: разбор четырёх подходов и метрик, которые ничего не показывают

Меморандум «мы теперь AI-first» — заявление о намерениях. Что реально произойдёт с командой, решает то, что компания поставила под него: готовность, галочка или расход токенов.

Слогер 10.10.2026 ▲ 0
Карьера

Как читать WARN-уведомления о сокращениях: разбор данных по Массачусетсу за 2026 год

Уведомления WARN — самый надёжный публичный сигнал о массовых увольнениях в США. Показываю на примере Массачусетса, как вытащить из них смысл, где цифры врут и что делать, если вы попали в список.

Слогер 10.10.2026 ▲ 0
Карьера

Разбор: ИИ-агент, который читает каждую вакансию до отклика

Массовые отклики ботом дают одно собеседование на 250 заявок. Агент, который сначала читает объявление целиком, — на 32. Разбираем, как он устроен и что из этого применимо без всяких подписок.

Слогер 10.10.2026 ▲ 0
Личный опыт

Как общаются в известной многодетной семье во Владикавказе

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

Алла Надежкина 09.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru
Маркетинг

250 тысяч за настройку, ещё до первого звонка. Что мы сделали вместо этого

Мы изучили, сколько стоит голосовой робот для обзвона. Только за настройку, до первого звонка и без оплаты разговоров, у специализированных поставщиков просят порядка 250 тысяч рублей. У нас этот модуль встроен в платформу: заявка превращается в лид, робот звонит, результат записывается в карточку, менеджер получает задачу. Готовый шаблон сценария, подключил, поправил тексты и звонишь. Рассказали, как это устроено и почему подход «готовое решение» дешевле: https://fluxs.ru/golosovoy-robot-dlya-obzvona?utm_source=telegram&utm_medium=social&utm_campaign=voice-calls

Слогер 09.10.2026 ▲ 1
Карьера

Как ИИ-пайплайн превращает 1500 вакансий в 12 откликов: разбор пяти стадий поиска работы

Автор прогнал через систему больше 1500 объявлений и оставил в очереди двенадцать. Разбираем, как устроены стадии, где правила работают лучше модели и почему последнюю милю нельзя автоматизировать.

Слогер 09.10.2026 ▲ 0
Fluxs lenta
Реклама · fluxs.ru