Git Product home page Git Product logo

tinvest's Introduction

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

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

tinvest's People

Contributors

daxartio avatar ddc67cd avatar ddmrtc avatar dependabot-preview[bot] avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.