Стрим заявок
О стриме
Стрим-соединение T-Invest API для получения изменений состояния заявок.
Используется для получения событий по заявкам с момента выставления до момента исполнения или отмены. Переход заявки от одного статуса в другой формирует событие в стриме.
В статусе PARTYALLY_FILL
события формируются по мере исполнения заявки.
Особенности работы
В методе передаются все заявки по счёту из подписки, но связать заявку в стриме с поручением, которое отправлено через метод PostOrder, можно не всегда.
Заявки, которые транслируются в стриме, можно идентифицировать по order_request_id
— ключу идемпотентности. Он передаётся при выставлении заявки.
Чтобы поддержать клиентский идентификатор в стриме:
- заявка должна содержать явно заданный алгоритм исполнения;
- ключ идемпотентности должен быть передан в формате UID.
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
передаётся внутренний номер.
Состав сообщений
Некоторые параметры ответа, например, список сделок и маркер, опциональные и ориентированы на будущее развитие метода.