Tinkoff / invest-openapi

Документация для Тинькофф Инвестиции OpenApi
https://tinkoff.github.io/invest-openapi/
456 stars 52 forks source link

Python stream websocket. #565

Closed nuzhnoff closed 3 years ago

nuzhnoff commented 3 years ago

Ребята здравствуйте! Слушайте ну чайник я. ну уже сил нету. Можете написать строчку( спагетти методом) кода без классов, как передать вам сокет и подписку через websocket python. мне тутошние sdk не нужны и в них ну намудренно для профи. а я хочу всего лишь проанализировать исторические свечи. Спасибо заранее. могу даже задонатить, мне не в тягость.

sergeymavrin commented 3 years ago

Зачем для анализа исторических свечей streaming протокол?

nuzhnoff commented 3 years ago

Мне казалось, что только через stream?

sergeymavrin commented 3 years ago

https://tinkoffcreditsystems.github.io/invest-openapi/swagger-ui/#/market/get_market_candles

nuzhnoff commented 3 years ago
import asyncio
import websockets
list = []
token = "my token"
#Получение исторических свечей по FIGI
candle_subs = {'figi': 'BBG000C6GN04', 'from': '2021-08-14T10:00:00+03:00','to': '2021-08-14T18:00:00+03:00','interval': 'hour'}

async def hello():
    uri = "wss://api-invest.tinkoff.ru/openapi/md/v1/md-openapi/ws/market/candles"
    candle_subs = {'figi': 'BBG000C6GN04', 'from': '2021-08-14T10:00:00+03:00','to': '2021-08-14T18:00:00+03:00','interval': 'hour'}
    async with websockets.connect(uri, {'Authorization: Bearer' + token'}) as ws:
        msg = await ws.recv(candle_subs)
        #await websocket.send("Hello world!")
        #await websocket.recv()
        print(msg)
        list.append(msg)
        print(list)
asyncio.get_event_loop().run_until_complete(hello())
nuzhnoff commented 3 years ago

Вот, что я смог родить. но ответ сервера - 403

Fatal1ty commented 3 years ago

Вот пример, только свой токен для песочницы вставьте https://github.com/Fatal1ty/tinkoff-api#historical-data