Как ускорить взаимодействие с T-Invest API
Ниже привели рекомендации, которые помогут уменьшить временные издержки при запросе данных и выставлении поручений.
Сетевые задержки
Серверы брокера находятся в датацентрах M1 и Dataspace. Чем ближе к ним располагается ваше оборудование, тем меньше сетевые задержки.
Скорость исполнения поручений
-
Скорость исполнения поручений со включенной маржинальной торговлей значительно ниже. Если маржинальная торговля для вас необязательна, её лучше отключить.
-
Задержки в скорости выставления заявок пропорциональны количеству сделок, которые проводятся на аккаунте в течение торгового дня. Если вы выставляете много поручений (десятки тысяч в сутки) и испытываете проблемы со скоростью исполнения, рекомендуем открыть дополнительные брокерские счета и равномерно разделить торговлю между ними.
-
Если поручения исполняются медленно, вы хотите выставлять больше заявок и не успеваете выбирать весь предоставленный лимит — рекомендуем архитектурно выставлять заявки в несколько программных потоков параллельно.
Порядок доставки информации об исполнении заявок
Так как брокер — не строго консистентная система, при исполнении заявок в разных сервисах информация придёт с разными задержками. Порядок доставки обновлений от самого быстрого к медленному:
- Обновление в
GetOrders / GetOrderState
. GetPosition
,TradeStream
.GetPortfolio
.- Операции в
GetOperations
.
Скорость доставки рыночных котировок
-
Рекомендуем следить, чтобы клиентский код успевал вычитывать всю присланную в стриминге информацию — иначе сервер может разорвать соединение.
-
Обновления в
tradeStream
приходят немного быстрее, чем вCandles
. -
В потоке котировок свечей есть ограничение на частоту отправки — свечи отправляются не раньше, чем через 300мс с момента отправки последней свечи по тому же инструменту.
Асинхронный метод выставления заявок
С целью уменьшить latency доставки торговых поручений до биржи в T-Invest API реализован асинхронный метод выставления заявок. Этот метод позволяет ускорить выставление поручений на биржу.