Package: tinvest
T-Investpip install tinvestДанный проект представляет собой инструментарий на языке Python для работы с OpenAPI Тинькофф Инвестиции, который можно использовать для создания торговых роботов.Клиент предоставляет синхронный и асинхронный API для взаимодействия с Тинькофф Инвестиции.Есть возможность делать запросы через командную строку, подробнеетут.pip install tinvest[cli]

# Пример использования
tinvest openapi --token TOKEN portfolioPerformancepip install tinvest[uvloop]
pip install tinvest[orjson]orjsonuvloopНачало работыГде взять токен аутентификации?В разделе инвестиций вашеголичного кабинета tinkoff. Далее:Перейдите в настройкиПроверьте, что функция "Подтверждение сделок кодом" отключенаВыпустите токен для торговли на бирже и режима "песочницы" (sandbox)Скопируйте токен и сохраните, токен отображается только один раз, просмотреть его позже не получится, тем не менее вы можете выпускать неограниченное количество токеновДокументацияtinvestinvest-openapiБыстрый стартДля непосредственного взаимодействия с OpenAPI нужно создать клиента. Клиенты разделены на streaming и rest.Примеры использования SDK находятсяниже.У меня есть вопросОсновной репозиторий с документацией— в нем вы можете задать вопрос в Issues и получать информацию о релизах в Releases.
Если возникают вопросы по данному SDK, нашёлся баг или есть предложения по улучшению, то можно задать его в Issues.ПримерыДля работы с данным пакетом вам нужно изучитьOpenAPI Тинькофф ИнвестицииStreamingПредоставляет асинхронный интерфейс.При сетевых сбоях будет произведена попытка переподключения.importasyncioimporttinvestastiasyncdefmain():asyncwithti.Streaming('TOKEN')asstreaming:awaitstreaming.candle.subscribe('BBG0013HGFT4',ti.CandleResolution.min1)awaitstreaming.orderbook.subscribe('BBG0013HGFT4',5)awaitstreaming.instrument_info.subscribe('BBG0013HGFT4')asyncforeventinstreaming:print(event)asyncio.run(main())Синхронный REST API ClientДля выполнения синхронных http запросов используется библиотекаrequests.
С описанием клиентов можно ознакомиться по этойссылке.importtinvestTOKEN="<TOKEN>"client=tinvest.SyncClient(TOKEN)response=client.get_portfolio()# tinvest.PortfolioResponseprint(response.payload)# Handle error...client=tinvest.SyncClient(TOKEN)try:response=client.get_operations("","")excepttinvest.BadRequestErrorase:print(e.response)# tinvest.ErrorАсинхронный REST API ClientДля выполнения асинхронных http запросов используется библиотекаaiohttp.
Клиенты имеют такой же интерфейс как в синхронной реализации, за исключением того,
что функции возвращают объект корутина.importasyncioimporttinvestTOKEN="<TOKEN>"asyncdefmain():client=tinvest.AsyncClient(TOKEN)response=awaitclient.get_portfolio()# tinvest.PortfolioResponseprint(response.payload)awaitclient.close()asyncio.run(main())SandboxSandbox позволяет вам попробовать свои торговые стратегии, при этом не тратя реальные средства. Протокол взаимодействия полностью совпадает с Production окружением.client=tinvest.AsyncClient(SANDBOX_TOKEN,use_sandbox=True)# client = tinvest.SyncClient(SANDBOX_TOKEN, use_sandbox=True)EnvironmentsnamerequireddefaultTINVEST_TOKENoptional''TINVEST_SANDBOX_TOKENoptional''TINVEST_USE_ORJSONoptionalTrueTINVEST_USE_UVLOOPoptionalTrueContributingПредлагайте свои пулл реквесты, проект с открытым исходным кодом.