Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
wiseplat
GitHub Repository: wiseplat/python-code
Path: blob/master/ invest-robot-contest_tinkoff-invest-volume-analysis-robot-master/utils/instrument_util.py
5931 views
1
import asyncio
2
from datetime import datetime
3
4
from tinkoff.invest import TradeInstrument, MarketDataRequest, SubscribeTradesRequest, SubscriptionAction
5
6
from settings import INSTRUMENTS
7
8
9
async def request_iterator(instruments):
10
figi_instruments = list(map(lambda instrument: TradeInstrument(instrument["figi"]), instruments))
11
yield MarketDataRequest(
12
subscribe_trades_request=SubscribeTradesRequest(
13
subscription_action=SubscriptionAction.SUBSCRIPTION_ACTION_SUBSCRIBE,
14
instruments=figi_instruments,
15
)
16
)
17
while True:
18
await asyncio.sleep(1)
19
20
21
def get_file_path_by_instrument(instrument):
22
return f"./data/{instrument['name']}-{datetime.now().strftime('%Y%m%d')}.csv"
23
24
25
def get_instrument_by_name(name: str):
26
return next(item for item in INSTRUMENTS if item["name"] == name)
27
28