Python Tinkoff API client for asyncio and humans
Project description
tinkoff-api
Python Tinkoff API client for asyncio and humans.
In active development.
Table of contens
Installation
Use pip to install:
$ pip install tinkoff-api
Usage example
import asyncio
from datetime import datetime
from tinkoff.investments.client import TinkoffInvestmentsRESTClient
from tinkoff.investments.client.environments import Environment
from tinkoff.investments.model.market.candles import CandleResolution
from tinkoff.investments.client.exceptions import TinkoffInvestmentsError
async def show_apple_year_candles():
try:
async with TinkoffInvestmentsRESTClient(
token='TOKEN',
environment=Environment.SANDBOX) as client:
candles = await client.market.candles.get(
figi='BBG000B9XRY4',
dt_from=datetime(2019, 1, 1),
dt_to=datetime(2019, 12, 31),
interval=CandleResolution.DAY
)
for candle in candles:
print(f'{candle.time}: {candle.h}')
except TinkoffInvestmentsError as e:
print(e)
async def jackpot():
try:
async with TinkoffInvestmentsRESTClient(
token='TOKEN',
environment=Environment.SANDBOX) as client:
instruments = await client.market.instruments.search(ticker='AAPL')
apple = instruments[0]
account = await client.sandbox.accounts.register()
await client.sandbox.accounts.positions.set_balance(
broker_account_id=account.brokerAccountId,
figi=apple.figi,
balance=100,
)
print('We created the following portfolio:')
positions = await client.portfolio.get_positions()
for position in positions:
print(f'{position.name}: {position.lots} lots')
except TinkoffInvestmentsError as e:
print(e)
asyncio.run(jackpot())
TODO
- add streaming protocol client
- rename some fields
- make some fields in snake case
- generate documentation
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tinkoff-api-0.1.2.tar.gz
(9.4 kB
view hashes)