Асинхронный метод выставления заявок
С целью уменьшить latency доставки торговых поручений до биржи в T-Invest API реализован асинхронный метод выставления заявок. При подаче поручений асинхронным методом брокер не дожидается подтверждения от биржи об успешном статусе выставления заявки и присвоении ей биржевого номера. При работе с асинхронным методом есть ряд особенностей.
Метод позволяет выставлять поручения параллельно, не создавая очереди заявок, что возможно при работе с PostOrder. Это позволяет ускорить работа алгоритма распараллелив процессы.
PostOrderAsync запрос
Входные параметры асинхронного метода идентичны PostOrder. При этом есть особенности:
Идентификатор ключа идемпотентности order_id
является обязательным
и должен быть передан в UUID формате любой версии.
PostOrderAsync ответ
В случае ошибки
При выставлении асинхронного поручения на стороне брокера проводятся предварительные проверки, идентичные синхронному взаимодействию. В случае ошибок валидации ответ будет идентичен PostOrder.
Успешное выставление заявки
Если проверки пройдены и заявка передана на биржу, то вернется ответ, где
order_request_id
- ключ идемпотентности, переданный в запросе в виде order_id
.
В ответе метода нет биржевого идентификатора. trade_intent_id
— внутренний идентификатор брокера.
Успешный ответ не гарантирует, что заявка будет выставлена на бирже. Биржа на своей стороне может отклонить заявку.
Получить статус торгового поручения
Получать изменения статуса торгового поручения можно через подписку на cтрим заявок.
order_request_id
в сообщениях стрима соответствует order_request_id
в ответе PostOrderAsync, order_id
— биржевому номеру заявки.
Получив из стрима биржевой номер, дальнейшие статусы можно отслеживать через методы GetOrderState
и GetOrder, а отменить через метод CancelOrder.
Дополнительно в методы GetOrderState и CancelOrder добавлена поддержка работы по ключу идемпотентности order_request_id
.