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