Как можно стримить сразу несколько акций Tinkoff Api Invest
Нужно стримить сразу несколько акций через API Tinkoff Invest. Как можно это организовать, типа несколько итераторов?
import time
from tinkoff.invest import (
Client,
MarketDataRequest,
OrderBookInstrument,
SubscribeCandlesRequest,
SubscribeOrderBookRequest,
SubscriptionAction,
SubscriptionInterval,
)
TOKEN = "**********************************"
t = True
def main():
def request_iterator():
yield MarketDataRequest(
subscribe_order_book_request=SubscribeOrderBookRequest(
subscription_action=SubscriptionAction.SUBSCRIPTION_ACTION_SUBSCRIBE,
instruments=[
OrderBookInstrument(
figi="BBG00178PGX3",
depth = 1,
#interval=SubscriptionInterval.SUBSCRIPTION_INTERVAL_ONE_MINUTE,
)
],
)
)
time.sleep(1)
with Client(TOKEN) as client:
while t == True:
for marketdata in client.market_data_stream.market_data_stream(
request_iterator()
):
if (marketdata.orderbook == None):
continue
#bids = marketdata.orderbook.bids
#print(marketdata)
price = marketdata.orderbook.bids.__getitem__(0).__getattribute__('price')
lots = marketdata.orderbook.bids.__getitem__(0).__getattribute__('quantity')
print(price.units + price.nano / 1e9, lots)
#print(bids.__getitem__(0).__getattribute__('price'))
#t = True
if __name__ == "__main__":
main()