Я сделал простой Python скрипт, который должен транслировать книгу заказов Binance Bitcoin -USD. Я следил за руководством здесь . Я подписался на их поток websocket и начал обновлять местную книгу заказов. Проблема в том, что размер книги заказов продолжает расти, и я не знаю, нормально ли это. Он начинался с длины около 1000 строк, через 13 часов - около 4000. Это нормально или я делаю что-то не так?
Вот как я обновляю книгу заказов:
1) Получить копию частичной книги заказов из конечной точки API https://www.binance.com/api/v1/depth?symbol=BNBBTC&limit=1000
2) Возьмите эти данные, преобразуйте их в словарь, как показано ниже Partial = {'asks:'{...}, 'bids': {...}}
, я делаю это потому что dict легче обновить
3) Возьмите каждую строку в обновлении и обновите мой локальный dict новыми данными, используя цену в качестве ключа. Затем я делаю al oop через dict и удаляю каждую строку со значением 0.000000
Код:
#Here is the payload received by the websocket stream
Update = message['data']
#Update bids
for x in Update['b']:
Partial['bids'].update({x[0]: x[1]})
#Update asks
for x in Update['a']:
Partial['asks'].update({x[0]: x[1]})
#Remove rows where the value is 0
DelBids = ({k:v for k,v in Partial['bids'].items() if v != '0.00000000'})
DelAsks = ({k:v for k,v in Partial['asks'].items() if v != '0.00000000'})
Где Partial
- словарь, в котором я сохраняю копия книги заказов, полученная мной в результате вызова API (см. пункт 1). Приветствуются любые советы!