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

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

Следующие рекомендации позволят уменьшить временные издержки при запросе данных и выставлении поручений.

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

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

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

  1. Скорость исполнения поручений со включенной маржинальной торговлей значительно ниже, поэтому если маржинальная торговля не является обязательной для вас, ее лучше отключить.
  2. Задержки в скорости выставлении заявок пропорциональны количеству сделок, проведенных на данном аккаунте в течение торгового дня. Поэтому если вы выставляете много поручений (десятки тысяч в сутки) и испытываете проблемы со скоростью исполнения, рекомендуем открыть дополнительные брокерские счета и равномерно разделить торговлю между ними.
  3. Если исполнение осуществляется достаточно медленно, вам надо выставлять больше заявок и вы не успеваете выбирать весь предоставленный лимит, то рекомендуем архитектурно выставлять заявки в несколько программных потоков параллельно.

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

Так как брокер - не строго-консистентная система, то при исполнении заявок в разных сервисах информация придет с различными задержками:

  1. Самое быстрое - придет обновление в GetOrders / GetOrderState
  2. Далее - GetPosition, TradeStream
  3. Далее - GetPortfolio
  4. Позже обновятся операции в GetOperations

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

  1. Рекомендуем следить, чтобы клиентский код успевал вычитывать все присланную в стриминге информацию, иначе сервер может разорвать соединение.
  2. Обновления в tradeStream приходят чуть быстрее, чем в Candles
  3. В потоке котировок свечей есть ограничение на частоту отправки - свечи не отправляются ранее, чем через 300мс с момента отправки последней свечи по тому же инструменту.