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

Как ускорить взаимодействие с Tinkoff Invest API

Ниже привели рекомендации, которые помогут уменьшить временные издержки при запросе данных и выставлении поручений.

Сетевые задержки

Серверы брокера находятся в датацентрах M1 и Dataspace. Чем ближе к ним располагается ваше оборудование, тем меньше сетевые задержки.

Скорость исполнения поручений

  • Скорость исполнения поручений со включенной маржинальной торговлей значительно ниже. Если маржинальная торговля для вас необязательна, её лучше отключить.

  • Задержки в скорости выставления заявок пропорциональны количеству сделок, которые проводятся на аккаунте в течение торгового дня. Если вы выставляете много поручений (десятки тысяч в сутки) и испытываете проблемы со скоростью исполнения, рекомендуем открыть дополнительные брокерские счета и равномерно разделить торговлю между ними.

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

Порядок доставки информации об исполнении заявок

Так как брокер — не строго консистентная система, при исполнении заявок в разных сервисах информация придёт с разными задержками. Порядок доставки обновлений от самого быстрого к медленному:

  1. Обновление в GetOrders / GetOrderState.
  2. GetPosition, TradeStream.
  3. GetPortfolio.
  4. Операции в GetOperations.

Скорость доставки рыночных котировок

  • Рекомендуем следить, чтобы клиентский код успевал вычитывать всю присланную в стриминге информацию — иначе сервер может разорвать соединение.

  • Обновления в tradeStream приходят немного быстрее, чем в Candles.

  • В потоке котировок свечей есть ограничение на частоту отправки — свечи отправляются не раньше, чем через 300мс с момента отправки последней свечи по тому же инструменту.