跳转至

WebSocket 客户端

实时行情订阅、全市场行情、L2 千档、交易回报推送等 WebSocket 方法。

依赖

WebSocket 功能需要安装 websockets 包:pip install "qmt-bridge[client]"

import asyncio
from qmt_bridge import QMTClient

client = QMTClient(host="192.168.1.100")

def on_tick(data):
    print(data)

asyncio.run(client.subscribe_realtime(
    stocks=["000001.SZ", "600519.SH"],
    callback=on_tick,
))

WebSocket 实时订阅客户端方法集合。

subscribe_realtime(stocks: list[str], callback: Callable[[dict], None], period: str = 'tick') async

订阅实时行情推送。

通过 WebSocket 连接到服务端 /ws/realtime 端点,实时接收 指定股票的行情更新数据。

底层通过 xtdata.subscribe_quote() 实现实时行情订阅。

示例::

import asyncio
from qmt_bridge import QMTClient

client = QMTClient("192.168.1.100")

def on_tick(data):
    print(f"收到行情: {data}")

asyncio.run(client.subscribe_realtime(
    stocks=["000001.SZ", "600519.SH"],
    callback=on_tick,
))

参数:

名称 类型 描述 默认
stocks list[str]

订阅的股票代码列表

必需
callback Callable[[dict], None]

收到行情数据时的回调函数,参数为行情数据字典

必需
period str

推送周期 — "tick"(逐笔)或分钟周期如 "1m"

'tick'

subscribe_whole_quote(codes: list[str], callback: Callable[[dict], None]) async

订阅全市场行情推送。

通过 WebSocket 连接到服务端 /ws/whole_quote 端点, 接收全市场范围的行情快照数据。

参数:

名称 类型 描述 默认
codes list[str]

市场代码列表

必需
callback Callable[[dict], None]

收到数据时的回调函数

必需

subscribe_trade_events(callback: Callable[[dict], None]) async

订阅交易事件回调。

通过 WebSocket 连接到服务端 /ws/trade 端点,实时接收 交易事件推送,包括: - 委托回报(on_stock_order) - 成交回报(on_stock_trade) - 委托错误(on_order_error) - 撤单错误(on_cancel_error) - 账户状态变化(on_account_status)

需要 API Key 认证。

参数:

名称 类型 描述 默认
callback Callable[[dict], None]

收到交易事件时的回调函数

必需

subscribe_l2_thousand(stocks: list[str], callback: Callable[[dict], None]) async

订阅 L2 千档数据推送。

通过 WebSocket 连接到服务端 /ws/l2_thousand 端点, 实时接收买卖各1000档的盘口数据。

注意: 需要开通 Level-2 行情权限。

参数:

名称 类型 描述 默认
stocks list[str]

订阅的股票代码列表

必需
callback Callable[[dict], None]

收到数据时的回调函数

必需