Перейти к содержанию

Стрим заявок

О стриме

Стрим-соединение Tinkoff Invest API для получения изменений состояния заявок.

Используется для получения событий по заявкам с момента выставления до момента исполнения или отмены. Переход заявки от одного статуса в другой формирует событие в стриме.

Статусная модель заявок

В статусе PARTYALLY_FILL события формируются по мере исполнения заявки.

Особенности работы

В методе передаются все заявки по счёту из подписки, но связать заявку в стриме с поручением, которое отправлено через метод PostOrder, можно не всегда.

Заявки, которые транслируются в стриме, можно идентифицировать по order_request_idключу идемпотентности. Он передаётся при выставлении заявки.

Чтобы поддержать клиентский идентификатор в стриме:

TimeInForceType

Чтобы идентифицировать заявку в стриме по ключу идемпотентности, нужно явно указать алгоритм исполнения поручения в PostOrderRequest.

Подходящие под условия варианты исполнения в зависимости от типа заявки:

OrderType TimeInForceType
ORDER_TYPE_LIMIT Один из алгоритмов:
TIME_IN_FORCE_DAY
TIME_IN_FORCE_FILL_AND_KILL
TIME_IN_FORCE_FILL_OR_KILL
ORDER_TYPE_MARKET TIME_IN_FORCE_DAY
ORDER_TYPE_BESTPRICE Указывать алгоритм исполнения не нужно, все bestprice-заявки маршрутизируются в стрим с ключом идемпотентности.

Важно
Если не передавать подходящий TimeInForceType, order_request_id не вернётся в сообщениях стрима. Однозначно связать выставленное поручение не получится.

Ключ идемпотентности в формате UID

order_request_id в сообщениях стрима передаётся только формате UID. Если в PostOrderRequest передать значение в другом формате, оно будет подменено в сообщениях стрима на сгенерированный API UID. Однозначно связать выставленное поручение не получится.

Возможные ответы стрима в зависимости от параметов, переданных в PostOrderRequest:

Ключ идемпотентности Тип исполнения Ответы стрима
Не передан
Передан не в UID
Передан в UID
Не передан или не соответствует типу заявки order_request_id нет в сообщениях
Не передан
Передан не в UID
Передан и соответствует типу заявки В сообщениях order_request_id, сгенерированный API
Передан в UID Передан и соответствует типу заявки В сообщениях order_request_id из PostOrder

ReplaceOrder

В методе изменения выставленной заявки пока не поддерживается новая маршрутизация. Мы доработаем это в ближайшее время.

Сообщения стрима

Статусы

Первое сообщение по поручению в стриме соответствует получению заявки брокером. На этом этапе ещё не определён биржевой номер заявки, в order_id передаётся внутренний номер.

Состав сообщений

Некоторые параметры ответа, например, список сделок и маркер, опциональные и ориентированы на будущее развитие метода.