Skip to main content

Tinkoff Invest

Project description

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

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

Project details


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

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.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page