T-Invest
pip install tinvest
Данный проект представляет собой инструментарий на языке Python для работы с OpenAPI Тинькофф Инвестиции, который можно использовать для создания торговых роботов.
Клиент предоставляет синхронный и асинхронный API для взаимодействия с Тинькофф Инвестиции.
Есть возможность делать запросы через командную строку, подробнее тут.
pip install tinvest[cli]
# Пример использования
tinvest openapi --token TOKEN portfolio
Performance
pip install tinvest[uvloop]
pip install tinvest[orjson]
Начало работы
Где взять токен аутентификации?
В разделе инвестиций вашего личного кабинета tinkoff. Далее:
- Перейдите в настройки
- Проверьте, что функция "Подтверждение сделок кодом" отключена
- Выпустите токен для торговли на бирже и режима "песочницы" (sandbox)
- Скопируйте токен и сохраните, токен отображается только один раз, просмотреть его позже не получится, тем не менее вы можете выпускать неограниченное количество токенов
Документация
Быстрый старт
Для непосредственного взаимодействия с OpenAPI нужно создать клиента. Клиенты разделены на streaming и rest.
Примеры использования SDK находятся ниже.
У меня есть вопрос
Основной репозиторий с документацией — в нем вы можете задать вопрос в Issues и получать информацию о релизах в Releases. Если возникают вопросы по данному SDK, нашёлся баг или есть предложения по улучшению, то можно задать его в Issues.
Примеры
Для работы с данным пакетом вам нужно изучить OpenAPI Тинькофф Инвестиции
Streaming
Предоставляет асинхронный интерфейс.
При сетевых сбоях будет произведена попытка переподключения.
import asyncio
import tinvest as ti
async def main():
async with ti.Streaming('TOKEN') as streaming:
await streaming.candle.subscribe('BBG0013HGFT4', ti.CandleResolution.min1)
await streaming.orderbook.subscribe('BBG0013HGFT4', 5)
await streaming.instrument_info.subscribe('BBG0013HGFT4')
async for event in streaming:
print(event)
asyncio.run(main())
Синхронный REST API Client
Для выполнения синхронных http запросов используется библиотека requests.
С описанием клиентов можно ознакомиться по этой ссылке.
import tinvest
TOKEN = "<TOKEN>"
client = tinvest.SyncClient(TOKEN)
response = client.get_portfolio() # tinvest.PortfolioResponse
print(response.payload)
# Handle error
...
client = tinvest.SyncClient(TOKEN)
try:
response = client.get_operations("", "")
except tinvest.BadRequestError as e:
print(e.response) # tinvest.Error
Асинхронный REST API Client
Для выполнения асинхронных http запросов используется библиотека aiohttp.
Клиенты имеют такой же интерфейс как в синхронной реализации, за исключением того,
что функции возвращают объект корутина.
import asyncio
import tinvest
TOKEN = "<TOKEN>"
async def main():
client = tinvest.AsyncClient(TOKEN)
response = await client.get_portfolio() # tinvest.PortfolioResponse
print(response.payload)
await client.close()
asyncio.run(main())
Sandbox
Sandbox позволяет вам попробовать свои торговые стратегии, при этом не тратя реальные средства. Протокол взаимодействия полностью совпадает с Production окружением.
client = tinvest.AsyncClient(SANDBOX_TOKEN, use_sandbox=True)
# client = tinvest.SyncClient(SANDBOX_TOKEN, use_sandbox=True)
Environments
| name | required | default |
|---|---|---|
| TINVEST_TOKEN | optional | '' |
| TINVEST_SANDBOX_TOKEN | optional | '' |
| TINVEST_USE_ORJSON | optional | True |
| TINVEST_USE_UVLOOP | optional | True |
Contributing
Предлагайте свои пулл реквесты, проект с открытым исходным кодом.
Release files for tinvest 3.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| tinvest-3.0.5.tar.gz | 20.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| tinvest-3.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 42.6 kB
Release files / tinvest-3.0.5.tar.gz
| Download URL | tinvest-3.0.5.tar.gz |
|---|---|
| Size | 20.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4bb89b27e13ebfbcec1b9305ff880b1d1152f5cfe3b9dd511c38bbaac8d11d59
|
|
BLAKE2b-256 checksum How to use checksums |
d98ae0cb38ceb2efc6f571ad12875a6bb906af8cdc1eeecbee1f9e2a92fc19ff
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.7 CPython/3.8.7 Linux/4.15.0-1077-gcp
|
Release files / tinvest-3.0.5-py3-none-any.whl
| Download URL | tinvest-3.0.5-py3-none-any.whl |
|---|---|
| Size | 22.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5158361ae0032f4dea8c064de8ce04712f26297dd246a0d5bb2a5cbf7795ce3b
|
|
BLAKE2b-256 checksum How to use checksums |
be5a8580399951059018bf0e440932393182f2ced250401e6d4b62400aa2054a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.1.7 CPython/3.8.7 Linux/4.15.0-1077-gcp
|