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

Асинхронный метод выставления заявок

С целью уменьшить latency доставки торговых поручений до биржи в T-Invest API реализован асинхронный метод выставления заявок. При подачи поручений асинхронным методом брокер не дожидается подтверждения от биржи об успешном статусе выставления заявки и присвоении ей биржевого номера. При работе с асинхронным методом есть ряд особенностей.

Метод позволяет выставлять поручения параллельно, не создавая очереди заявок, что возможно при работе с PostOrder. Это позволяет ускорить работа алгоритма распараллелив процессы.

PostOrderAsync запрос

Входные параметры асинхронного метода идентичны PostOrder. При этом есть особенности:

Идентификатор ключа идемпотентности order_id является обязательным и должен быть передан в UUID формате любой версии.

PostOrderAsync ответ

В случае ошибки

При выставлении асинхронного поручения на стороне брокера проводятся предварительные проверки, идентичные синхронному взаимодействию. В случае ошибок валидации ответ будет идентичен PostOrder.

Успешное выставление заявки

Если проверки пройдены и заявка передана на биржу, то вернется ответ, где order_request_id - ключ идемпотентности, переданный в запросе в виде order_id.

Важно
В ответе метода нет биржевого идентификатора. trade_intent_id — внутренний идентификатор брокера.

Важно
Успешный ответ не гарантирует, что заявка будет выставлена на бирже. Биржа на своей стороне может отклонить заявку.

Получить статус торгового поручения.

Изменение статуса торгового поручения можно подписавшись на Стрим заявок. order_request_id в сообщениях стрима соответствует order_request_id в ответе PostOrderAsync, order_id — биржевому номеру заявки. Получив из стрима биржевой номер, дальнейшие статусы можно отслеживать методами GetOrderState и GetOrder, а отменить методом CancelOrder.

Дополнительно в методы GetOrderState и CancelOrder добавлена поддержка работы по ключу идемпотентности order_request_id.