list_0 = []
list_1 = []
def sort_data():
trades = client.get_recent_trades(symbol='BTCUSDT', limit=50)
for t in trades:
id_zero = [int(t["id"]), int(t["isBuyerMaker"]), float(t["quoteQty"]).__round__(2)]
list_0.append(id_zero)
dup = [x[0] for x in list_0]
for x in dup:
if x not in list_1:
?
while True:
sort_data()
我连接到Binance的API,我想检查最近的交易。到目前为止,一切顺利,我可以用client.get_recent_trades
得到它们我必须一次下载50个交易,否则它会太慢,我将失去大部分交易。我可以在特定的id上看到它。
例如,ID: 560, 565, 576, 587, ...
对我来说是无用的,我失去了其他的。
在每个数据包中只有少量的"新鲜"数据。的人。我不想在我的列表中添加重复项,所以我尝试检查id以使用
过滤掉重复项。dup = [x[0] for x in list_0]
Example sublist: [234543234, 1, 4543.45]
我不知道如何做以下工作:检查list_0
中每个条目的ID (ID在子列表中的索引0上),当ID不在list_1
时,将整个数据集/子列表[ID, isBuyerMaker, quoteQty]复制到list_1
。
当它是"static"例程,我知道该怎么做,但这里我有一个每秒都有新数据的例程,我不知道如何处理它。我不能用迭代[-1]
来做,因为它太慢了。
在这种情况下不要使用,使用websocket:
from binance.websockets import BinanceSocketManager
from binance.client import Client
client = Client('PUBLIC', 'PRIVATE')
lst = []
def process_message(msg):
lst.append(msg)
print (lst)
bm = BinanceSocketManager(client)
conn_key = bm.start_trade_socket('BNBBTC', process_message)
bm.start()
列表lst
将只包含您的符号的唯一最近交易。将该列表写入一个文件并加载到make orders脚本中。