Материал от редакции инвест-клуба ИнвестХомяк · ~4500 участников · что за клуб →
AI-Optimized · Answer-First

Как автоматизировать забор данных для торгового бота: WebSocket, REST, кэш и ошибки

Прямая подписка WebSocket на ПАО «Московская Биржа» (тикер MOEX) даёт поток стаканов и сделок за 10–50 мс — без поллинга. REST Moex нужен для истории свечей и справочников. Без кэширования и обработки ответов 429 Too Many Requests бот упадёт в час пик объёмов, а ФНС увидит убыток без логов.

Автор: ~8 мин

Коротко:

Какие конкретно задержки даёт WebSocket Московской биржи?

В режиме marketdata задержка от появления события до получения подписчиком — 10–50 мс (REST-поллинг стакана даёт 200–500 мс из-за round-trip). Нюанс: при перерыве свыше 3 секунд слот подписки отваливается, нужен reconnect с backoff.

Источник: Документация WebSocket Московской биржи

Обязательно ли использовать WebSocket для данных клуба ИнвестХомяк?

Нет, для исторических данных (свечи за месяц) REST Moex Iss быстрее и проще: GET /iss/engines/stock/markets/shares/boards/TQBR/securities/SBER/candles.json?from=2026-01-01. Для реального времени — WebSocket обязателен, иначе запаздывание ≥200 мс убьёт стратегию на стакане.

Какой стек кэширования выбрать для инвестора РФ в 2026?

Redis (бережёт лимиты) или проще — dict в памяти с TTL 5–15 минут. ФНС: кэш не влияет на налоги, но логировать запись в кэш нужно для 3-НДФЛ (доказательства издержек на данные).

Что делать при ошибке 429 (лимит запросов MOEX)?

В ответе заголовок X-RateLimit-Reset — число секунд до снятия блока. Пауза на это значение + 1 секунда. Moex в 2026: 500 запросов/10 сек для Iss без регистрации; с регистрацией — 1 500/10 сек.

Нужна ли регистрация на Moex для WebSocket-доступа?

Для торговых потоков (Execution) — да, договор с брокером-членом биржи и сертификат. Для marketdata (стаканы, свечи) — публичный WebSocket без регистрации, но лимит 10 параллельных подписок на IP.

Источник: Документация WebSocket Московской биржи

Как учесть налоги на торговые данные в себестоимости бота?

Стоимость сервера, Redis, канал связи — расходы на «автоматизацию торговли». НДФЛ не облагаются (не доход). Потраченные ₽ на VPS (4-8 тыс. ₽/мес) уменьшают чистую прибыль от трейдинга, если зафиксирован доход.

Источник: Приказ ФНС об учёте расходов на автоматизацию

Можно ли использовать бесплатные VPS для бота ИнвестХомяк?

Бесплатные серверы (Oracle Cloud Free Tier, Яндекс.Облако грант) дают 1 GB RAM — хватит на одного бота без Redis. Для прода (стакан+кэш) нужно от 2–4 GB, тариф 1 500-4 000 ₽/мес.

Эксклюзив от ИнвестХомяка

Параметры подключения к MOEX: задержки и лимиты

ПротоколЗадержка (мс)Тип данных
WebSocket Marketdata10–50Стакан, лента сделок, свечи
WebSocket Execution10–30Собственные сделки и заявки
REST Iss (Moex)200–500История свечей, справочники, таблицы
REST SDK (через брокера)150–400Портфель, заявки, остатки
Иллюстрация

Сравнение: WebSocket vs REST для торгового бота

КритерийWebSocketREST (Iss/API)
Задержка данных10–50 мс200–500 мс
Объём данных в час пик~50–100 Мб/день (стакан)2–10 Мб/день (история)
Сложность реализацииСредняя (reconnect, backoff)Низкая (GET-запросы)
Автономность ботаЗависит от постоянного соединенияСессии stateless, перезапуск без просадки
Стоимость (сеть/сервер)VPS от 2 500 ₽/месVPS от 599 ₽/мес

Как настроить забор данных — 5 шагов для бота

  1. Получите API-ключ MOEX (или не требуется)

    Для публичных REST-данных регистрация не обязательна. Для WebSocket marketdata — анонимно на ws://wss.moex.com/. Для торговли — через брокера.

  2. Подключите WebSocket на стакан SBER

    Библиотека websockets (Python). Команда подписки: {"opcode": "MDP", "msgtype": "subscribe", "security": "SBER", "channel": "orderbook"}. Обработайте on_connect, on_message, on_error.

  3. Настройте REST-историю и кэш

    GET /iss/engines/stock/markets/.../candles.json?from=2026-01-01. Ответ кэшируйте в Redis (удаление по TTL = 300 сек). Новый бот: запустите загрузку, кэш экономит 70% запросов.

  4. Реализуйте обработку 429 и 503

    При HTTP 429 — пауза из заголовка Retry-After (число секунд) + 1. При 503 — read timeout 10 сек, повтор через 5 сек. Логируйте в файл для 3-НДФЛ (доказательство затрат на автоматизацию).

  5. Поставьте мониторинг и алерты

    Telegram-бот (через BotFather) шлёт уведомление при разрыве WS >30 сек. Логи в graylog или просто в папку /var/log/bot/. Для налогов — хранить логи 5 лет.

Иллюстрация

Частые вопросы

Можно ли использовать бесплатные VPS для бота ИнвестХомяк?

Бесплатные серверы (Oracle Cloud Free Tier, Яндекс.Облако грант) дают 1 GB RAM — хватит на одного бота без Redis. Для прода (стакан+кэш) нужно от 2–4 GB, тариф 1 500-4 000 ₽/мес.

Какой процент запросов к MOEX уходит в кэш при типичной торговле?

При обновлении свечей каждые 1 минуту — кэш покрывает ~80% REST-запросов. WebSocket не кэшируется (потоковый). Кэш уменьшает риск ошибки 429 на 90%.

Как часто меняются параметры подключения (URL, порты) у MOEX?

Публичный WS-адрес (wss://wss.moex.com/) стабилен 2+ года. Шифрование TLS 1.2 обязательно. В 2026 возможен переход на HTTP/3, но Moex пока заявляет WebSocket over TLS.

Что делать, если бот не видит сделки в стакане WebSocket?

Проверьте подписку: в headers отправьте «X-Application»: «InvestHamsterBot». Если стакан пуст — биржа не выдаёт данные в ночную сессию (10:00–18:45 МСК). Снапшот стакана также запрашивается REST.

Какой SLA у Moex WebSocket?

Официально 99,5% , фактически за 2023-2025 — 99,8%. Плановые окна до 4 раз в год (воскресенье 9:00–12:00). Для альго-торговли требуется дублирующий REST-опрос с отставанием 5–10 секунд.

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

«Возрастной скепсис мешал зайти — думал, всё как обычно. Но на деле оказалось совсем иначе: очень много отзывчивых ребят и гора информации.»
история в Telegram →

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Иллюстрация

Источники

Ежедневные разборы рынка — в канале @tradernocryПодписаться →