繁体   English   中英

如何从 python 中的 Binance Websocket 获取多个烛台流? (不同的硬币)

[英]How do I get multiple candlestick-streams from Binance Websocket in python? (different coins)

我正在尝试通过 Binance Websocket 从多个硬币接收实时数据。

这是一些示例数据。 我的目标是使用实时数据。

import json
import websocket

TRADE_SYMBOL = "ETHBUSD"
TRADE_SYMBOL2 = "BTCUSD"

message1 = ""
message2= ""


def on_open(ws):
    print("open")

def on_message(ws,message):
    json_message = json.loads(message) 
    candle = json_message['k']  
    print(message)

    is_candle_closed = candle['x']


def on_close():
    print("closed")
    

SOCK = "wss://stream.binance.com:9443/ws/{}@kline_1m".format(TRADE_SYMBOL.lower())   
SOCK2 = "wss://stream.binance.com:9443/ws/{}@kline_1m".format(TRADE_SYMBOL2.lower())   
ws = websocket.WebSocketApp(SOCK, on_open=on_open,on_close=on_close, on_message=on_message)
ws2 = websocket.WebSocketApp(SOCK2, on_open=on_open,on_close=on_close, on_message=on_message)

on_open(ws)
on_open(ws2)
on_message(ws,message1)
on_message(ws,message2)

ws.run_forever()
ws2.run_forever()

提前谢谢你们! 注意安全

您可以获得多个加密货币对,如果您愿意,还可以在同一个 Binance websocket stream 上获得不同的时间范围(参见下面代码中的 url)。 如果您仍然需要同时拥有多个 websocket,请阅读库文档: https://websocket-client.readthedocs.io/en/latest/examples.html#dispatching-multiple-websocketapps

在代码中,我更正了回调的 arguments,stream 的 url,以及烛台数据结构信息的一些细节。 我已经在 google colabs 中对其进行了测试,并且可以正常工作。 (之前运行 !pip3 install websocket-client )

import json
import websocket

# websocket.enableTrace(True) #uncomment for debug

def on_open(ws):
    print("open")

def on_message(ws,message):
    json_message = json.loads(message) 
    candle = json_message['data']['k']  
    print(message)
    is_candle_closed = candle['x']
    if is_candle_closed:
        print(json.dumps(candle, indent=2))

def on_close(ws, close_status_code, close_msg):
    print("closed")
  
SOCK = "wss://stream.binance.com:9443/stream?streams=ethusdt@kline_1m/btcusdt@kline_1m/bnbusdt@kline_1m/ethbtc@kline_1m"

ws = websocket.WebSocketApp(SOCK, on_open=on_open,on_close=on_close, on_message=on_message)
ws.run_forever()

问题是当我使用它时,我收到一条 502 Bad Gateway 消息

解决了似乎我之前和之后都有空间=

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM