交易机器人

币安WebSocket实时行情数据怎么接入?

发布于 2026-03-07 | 3 分钟

介绍币安WebSocket API的接入方法和常用数据流类型。

如果你在做量化交易或行情监控,WebSocket是获取币安实时数据的最佳方式。相比REST API轮询,WebSocket延迟更低、效率更高。

使用币安API需要先有账号,通过 注册币安 注册。手机端管理也很方便,可以 下载币安APP

WebSocket基础地址

币安现货WebSocket的基础地址是 wss://stream.binance.com:9443/ws/,合约的基础地址略有不同。连接时在地址后面拼接你要订阅的数据流名称即可。

也可以使用组合流地址同时订阅多个数据流:wss://stream.binance.com:9443/stream?streams=流名称1/流名称2。

常用数据流类型

逐笔成交(Trade):实时推送每一笔成交记录,包括价格、数量和时间。流名称格式:btcusdt@trade。

K线数据(Kline):实时推送K线更新。流名称格式:btcusdt@kline_1m(1分钟K线)。支持多种时间周期。

深度数据(Depth):实时推送买卖盘口变化。流名称格式:btcusdt@depth 或 btcusdt@depth@100ms(100毫秒更新频率)。

24小时行情(Ticker):推送24小时内的价格变动和成交量统计。流名称格式:btcusdt@ticker。

接入步骤

第一步:选择一个WebSocket客户端库。Python可以用websocket-client或websockets,JavaScript可以用ws。

第二步:建立连接。连接到币安WebSocket地址,带上你要订阅的流名称。

第三步:处理消息。连接建立后,币安会持续推送JSON格式的数据,你的程序解析并处理这些数据即可。

第四步:心跳保活。WebSocket连接每24小时会断开,你的程序需要能自动重连。建议每隔几分钟发送一个pong帧保持连接。

注意事项

单个连接最多订阅200个流。如果需要更多,可以建立多个连接。

WebSocket连接不需要API Key(公开数据流),但用户数据流(比如订单更新、账户变动)需要先通过REST API获取一个listenKey。

网络不稳定时连接可能断开,务必在代码中实现自动重连逻辑。

用户数据流

如果你需要实时获取自己的订单状态和账户余额变化,需要订阅用户数据流。先调用REST API的POST /api/v3/userDataStream获取listenKey,然后用这个key连接WebSocket。listenKey每60分钟需要续期一次。