Skip to main content

T-Invest

Build Status PyPI PyPI - Python Version Codecov GitHub last commit Tinvest

pip install tinvest

Данный проект представляет собой инструментарий на языке Python для работы с OpenAPI Тинькофф Инвестиции, который можно использовать для создания торговых роботов.

Клиент предоставляет синхронный и асинхронный API для взаимодействия с Тинькофф Инвестиции.

Есть возможность делать запросы через командную строку, подробнее тут.

pip install tinvest[cli]

# Пример использования
tinvest openapi --token TOKEN portfolio

Performance

pip install tinvest[uvloop]
pip install tinvest[orjson]

orjson uvloop

Начало работы

Где взять токен аутентификации?

В разделе инвестиций вашего личного кабинета tinkoff. Далее:

  • Перейдите в настройки
  • Проверьте, что функция "Подтверждение сделок кодом" отключена
  • Выпустите токен для торговли на бирже и режима "песочницы" (sandbox)
  • Скопируйте токен и сохраните, токен отображается только один раз, просмотреть его позже не получится, тем не менее вы можете выпускать неограниченное количество токенов

Документация

tinvest

invest-openapi

Быстрый старт

Для непосредственного взаимодействия с 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

Предлагайте свои пулл реквесты, проект с открытым исходным кодом.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tinvest-3.0.5.tar.gz (20.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tinvest-3.0.5-py3-none-any.whl (22.0 kB view details)

Uploaded Python 3

File details

Details for the file tinvest-3.0.5.tar.gz.

File metadata

  • Download URL: tinvest-3.0.5.tar.gz
  • Upload date:
  • Size: 20.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.8.7 Linux/4.15.0-1077-gcp

File hashes

Hashes for tinvest-3.0.5.tar.gz
Algorithm Hash digest
SHA256 4bb89b27e13ebfbcec1b9305ff880b1d1152f5cfe3b9dd511c38bbaac8d11d59
MD5 1b3cad244181f657e75d31414330ef28
BLAKE2b-256 d98ae0cb38ceb2efc6f571ad12875a6bb906af8cdc1eeecbee1f9e2a92fc19ff

See more details on using hashes here.

File details

Details for the file tinvest-3.0.5-py3-none-any.whl.

File metadata

  • Download URL: tinvest-3.0.5-py3-none-any.whl
  • Upload date:
  • Size: 22.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.1.7 CPython/3.8.7 Linux/4.15.0-1077-gcp

File hashes

Hashes for tinvest-3.0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 5158361ae0032f4dea8c064de8ce04712f26297dd246a0d5bb2a5cbf7795ce3b
MD5 ae0c5bb05920d82fce1f26e561795843
BLAKE2b-256 be5a8580399951059018bf0e440932393182f2ced250401e6d4b62400aa2054a

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.0.5 This release

2 files

3.0.4

2 files

3.0.3

2 files

3.0.2

2 files

3.0.1

2 files

3.0.0

2 files

2.3.3

2 files

2.3.2

2 files

2.3.1

2 files

2.3.0

2 files

2.2.0

2 files

2.1.1

2 files

2.1.0

2 files

2.0.0

2 files

1.0.24

2 files

1.0.23

2 files

1.0.22

2 files

1.0.21

2 files

1.0.20

2 files

1.0.19

2 files

1.0.18

2 files

1.0.17

2 files

1.0.16

2 files

1.0.15

2 files

1.0.14

2 files

1.0.13

2 files

1.0.12

2 files

1.0.11

2 files

1.0.10

2 files

1.0.9

2 files

1.0.8

2 files

1.0.7

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page