如何使用binance API获取所有BTC和ETH订单书籍?现在我使用python
pairs = ["TRXETH", "TRXBTC"]
for pair in pairs:
# get market depth
depth = client.get_order_book(symbol=pair)
但是如果我需要从binance获取所有200个符号订单书,这种方式不起作用,因为它需要大约5分钟才能得到它,我认为服务器可以阻止我的API以获取垃圾邮件请求。有可能更快地完成吗?
答案 0 :(得分:0)
好吧,我在使用Rest API设置您正在使用的get_order_book调用中的深度限制时遇到了麻烦。但是我可以使用Binance的Websockets从订单簿中检索实时信息,您可以为每个符号定义一个websocket,然后启动套接字并让回调函数找出如何处理返回的信息
这样的事情:
# Callback function
def depth_message(msg):
print ("Symbol: ", msg['s'])
if msg['b']:
print ("Buy: ", msg['b'])
if msg['a']:
print ("Sell: ", msg['a'])`
# Creating the websocket and starting it.
bm = websockets.BinanceSocketManager(client)
time.sleep(3)
bm.start_depth_socket('BTCUSDT', depth_message)
bm.start_depth_socket('ETHUSDT', depth_message)
.
.
.
bm.start_depth_socket('TRXBTC', depth_message)
bm.start()
输出,我举例说明的回调函数应该如下所示: `
Symbol: BTCUSDT
Buy: [['7480.00000000', '0.37765500', []]]
Sell: [['7480.63000000', '0.01329200', []]]
Symbol: ETHUSDT
Buy: [['591.53000000', '0.27000000', []], ['591.50000000', '0.06706000', []], ['589.90000000', '7.81833000', []], ['587.86000000', '0.39787000', []]]
Sell: [['593.80000000', '0.66726000', []]
一旦你执行了这个例子,你应该看到一个恒定的输出,如上面的那个显示在你的控制台中,直到你停止程序,你不需要一个循环,因为套接字不断为你定义的每个符号更新一个插座。您可以使用循环为每个符号设置所需的所有websocket调用。
您可以在我的示例中阅读有关Binance Websockets here的更多信息以及我使用this Binance Python API。
希望这有帮助!