Горячие клавиши

← и →: предыдущая и следующая глава

S или /: поиск по книге

?: показать эту подсказку

Esc: закрыть подсказку или поиск

Брокеры

Общий интерфейс одинаков для всех брокеров, но сами брокеры отличаются. Эта страница - сводка различий, дальше по странице на каждого: БКС, Т-Банк, Финам, АЛОР, Bybit. Bybit - зарубежный сервис, остальные - российские брокеры.

БКСТ-БанкФинамАЛОРBybit
ПротоколREST и WebSocketgRPCgRPCREST и WebSocketREST и WebSocket
Входrefresh-токен, из него токен доступаодин статичный токенсекрет, из него JWT, обновляется самrefresh-токен с портала разработчика, из него токен доступа (30 минут), обновляется сампара ключ и секрет, каждый запрос подписывается (HMAC-SHA256)
Идентификатор инструментатикер и класс (SBER, TQBR)uid (его отдает справочник), figi или тикер и классSBER@MISX (тикер и MIC)тикер и режим торгов (SBER, TQBR). Биржа (MOEX или SPBX) берется из режима торговтикер контракта и категория (BTCUSDT@linear)
Что считает API в заявкецелое число штук (по документации)лоты, целое. Коннектор переводитштуки, число десятичноелоты, целое. Коннектор переводитколичество базовой монеты, десятичное
Qty в библиотекештуки, одинаково у всех. Не целое, нуль, некратное лоту (если лот передан): invalid_qtyштуки. Коннектор делит на лот и умножает обратноштуки. Некратное лоту (если лот передан): invalid_qtyштуки. Коннектор читает размер лота из справочника, делит и умножает обратно. Некратное лоту: invalid_qtyединицы базовой монеты, одинаково у всех. Не кратное шагу qtyStep или меньше minOrderQty: invalid_qty
Глубина стаканадо 201, 10, 20, 30, 40, 50 (запрошенное округляется вверх)до 50 (режем на своей стороне)до 50 (больший запрос режется)1, 50, 200, 1000 (ближайшая не меньше запрошенной, лишнее отрезается)
Изменить заявкуда (синхронный метод БКС)данет (метода нет в API)да (лимитную, рыночную нельзя)нет (изменение у биржи оставляет заявку и ее orderLinkId, это не новая заявка), Unsupported. Через raw() есть
Поток своих сделокиз потока статусов заявокотдельный поток сделокотдельный поток сделокотдельная подписка на сделки портфеляотдельный поток исполнений
Свечивсе, кроме 10-минуток (Unsupported)всевсе, 10-минутки собираются из 5-минутоквсе, 10-минутки есть у брокеравсе, кроме 10-минуток (Unsupported)
Стоп-заявкиусловные заявкиотдельный сервисобычная заявка типа стоп и метод SL/TPстоп-заявка (рыночная при срабатывании) и стоп-лимитобычная заявка с ценой срабатывания, рыночная или лимитная. Только «до отмены»
Песочницанетданетнет, но есть отдельный тестовый контурда, демо-счет с виртуальными деньгами (env=demo)
Срок обычной заявкивыбирает БКСвыбирает Т-Банквсегда «на день»«на день»лимитная «до отмены», рыночная исполняется сразу или отменяется
Где лимитына токен (по документации)на пользователяна пользователя (по документации)на логин (100 HTTP-запросов в секунду)на пользователя и метод (10 команд и 50 чтений в секунду) и на адрес (600 за 5 секунд)
Пауза перед переподключением0,5 с до 30 с (настраивается)0,5 с до 30 с0,5 с до 30 с0,5 с до 30 с (настраивается)0,5 с до 30 с (настраивается)

Что общее у всех

  • Два коннектора: MD и UD. UD на один счет (у АЛОРа на один портфель, у Bybit на один счет или субсчет ключа).
  • cid бота и правила заявок одинаковы (Круг команд). Меняется только то, куда cid кладется.
  • Все ответы на неясные команды - Unknown, повторов нет.
  • Стакан приходит полным снимком (у Bybit коннектор сам собирает его из снимка и изменений и отдает целиком).
  • Шлюз команд после запуска закрыт до reconcile, и закрывается снова при Overflow и при Reconnected (оборвался поток своих заявок или исполнений), и команда, которая стояла в очереди, проверяется шлюзом еще раз.
  • Ошибки одного вида: отказ токена это Config, “не найдено” это Rejected с кодом not_found, идентификатор инструмента другого брокера это Config без сети.
  • raw() у каждого коннектора.

Что у брокеров устроено по-разному

  • Счета. У БКС счет задает токен, у Т-Банка и Финама - account_id, у АЛОРа - портфель и биржа в настройке, у Bybit счет определяет ключ.
  • Лимиты. У каждого брокера своя область, см. Несколько счетов и брокеров.
  • Единицы количества. Одинаковые: Qty это число единиц инструмента (штуки, контракты), лотов бот не видит ни у одного брокера. Т-Банк и АЛОР считают лотами, коннектор переводит. Размер лота дает TradingParams::lot_size, заявка кратна ему (Деньги, цены и количества).
  • Что не поддерживает брокер. Помечено на странице брокера. Такие вызовы возвращают Unsupported сразу, без сети.

Листать можно клавишами Влево и Вправо.

brokapi by RunInfra