Tinkoff / invest-python

Tinkoff Invest Python gRPC client
https://tinkoff.github.io/invest-python/
Apache License 2.0
313 stars 90 forks source link

API vs Tinkoff Terminal: на открытии биржи через API систематично отстреливаются заявки по причине 30079, а через терминал эти же заявки выставляются! #193

Closed nicholasid7 closed 1 year ago

nicholasid7 commented 1 year ago

Что случилось?

Был неоднократно протестирован следующий кейс: одновременно с Tinkoff Terminal (https://www.tinkoff.ru/terminal/) вручную и также роботом через API (tinkoff-investments==0.2.0b35) выставлялись одинаковые инструменты. Проводился хронометраж. Результаты: 1 Через Tinkoff Terminal заявка по клику открывается через 2 секунды (с учетом времени реакции человека). 2 Через API открытие заявки происходит через 7.633 секунды с 11-го повтора, поскольку все 10 раз сервер "отпинывает" по причине details = "30079" (Инструмент недоступен для торгов), приходится делать retry. Задержки во 2 случае могут доходить до 15 сек, с той же причиной " 30079"

image

Получается, что терминал в ручном режиме работает быстрее.

Воспроизведение

1. Настроить бота для открытия заявок ровно в момент открытия биржи, используя метод client.orders.post_order или нативно OrdersServiceStub(channel) и PostOrderRequest
2. Подготовить работу в терминале - https://www.tinkoff.ru/terminal/ 
3. В п.1 и 2 одновременно выставлять одинаковые заявки в момент старта биржи (в 06:00:00 UTC)
4. Зафиксить моменты времени открытия заявок со статусом "New"

Tinkoff Invest Version

0.2.0-beta35

Python Version

3.10

OS

Linux

Логи

No response

AlexanderVolkovTCS commented 1 year ago

Исправлено. Была задержка, вызванная запаздыванием трансляции СПБ биржей статуса торгов. Терминал не проверял этот статус. Теперь мы для доступности торгов смотрим не только статус, но и расписание.