在量化策略研发与实盘运行过程中,实时行情数据的时效性、稳定性与解析效率,直接影响信号生成、委托执行与回测可信度。本文基于实战场景,提供一套可直接落地的 A 股实时行情获取与数据处理方案,面向策略研究者与量化投资者做技术交流。
一、传统数据获取方式的瓶颈
早期以 HTTP 轮询为主的行情采集方式,在实盘与高频策略中存在明显局限:
- 轮询延迟固定,行情剧烈波动时数据更新滞后
- 频繁请求造成资源冗余,易触发限流与丢包
- 无法满足多标的并行订阅与全市场扫描需求
- 数据结构不统一,回测与实盘数据难以对齐
对于依赖tick 级数据的策略模型,上述问题会直接导致策略表现失真。
二、基于 WebSocket 的实时行情订阅方案
相比 HTTP 轮询,WebSocket 长连接可实现服务端主动推送,连接持久、延迟更低、吞吐量更高,更适合量化系统使用。
本文以 AllTick API 为数据源,支持 A 股全市场 tick 实时推送,数据格式规范,可直接对接策略、回测框架与数据存储模块。
标准接入流程:
- 获取 API 访问凭证
- 建立 WebSocket 长连接
- 订阅目标证券代码
- 回调接收 tick 数据并解析
- 标准化后用于策略计算 / 回测 / 入库
三、完整实现代码(可直接部署)
1. 建立连接与标的订阅
import websocket
import json
def on_message(ws, message):
tick = json.loads(message)
# 实时数据入口,可接入策略逻辑
print(f"{tick['symbol']} 价格:{tick['price']} 成交量:{tick['volume']}")
def on_open(ws):
# 订阅目标标的
sub_pkg = {
"action": "subscribe",
"symbols": ["sh000001", "sz000001"]
}
ws.send(json.dumps(sub_pkg))
# 初始化并启动长连接
ws = websocket.WebSocketApp(
"wss://api.alltick.co/ws/stock",
on_open=on_open,
on_message=on_message
)
ws.run_forever()
2. tick 数据标准化解析
统一数据结构,确保回测与实盘使用同一份解析逻辑:
def parse_tick(tick):
symbol = tick["symbol"]
price = float(tick["price"])
volume = int(tick["volume"])
prev_close = float(tick["prev_close"])
change = price - prev_close
pct_chg = (change / prev_close) * 100
return {
"symbol": symbol,
"price": price,
"volume": volume,
"change": change,
"pct_chg": pct_chg,
"time": tick.get("time")
}
3. 动态订阅管理(优化性能)
支持策略运行期动态增减订阅,降低无效数据处理:
# 初始订阅
ws.send(json.dumps({"action": "subscribe", "symbols": ["sh600000", "sz000002"]}))
# 新增订阅
ws.send(json.dumps({"action": "subscribe", "symbols": ["sz300750"]}))
# 取消订阅
ws.send(json.dumps({"action": "unsubscribe", "symbols": ["sh600000"]}))
四、高可用部署关键要点
为满足策略 7×24 小时稳定运行,建议补充以下机制:
- 自动重连:网络中断后自动重建连接,恢复订阅
- 快照补全:启动 / 重连时拉取快照数据,保证状态完整
- 异步处理:数据解析与策略逻辑异步执行,不阻塞接收线程
- 数据校验:对价格、成交量做异常值过滤,提升策略鲁棒性
五、应用价值与适用场景
本方案在量化实战中具备明确落地价值:
- 提升tick 级别策略的信号实时性与执行精度
- 统一实盘与回测的数据结构,降低数据偏差
- 支持多标的并行订阅,适配行业轮动、截面选股等模型
- 轻量化接入,可快速集成到现有量化框架
- 适用于:高频策略、实时风控、行情监控、数据中台采集
六、总结
在量化策略研发体系中,数据链路是底层基础。WebSocket 推送模式相比传统轮询,在延迟、吞吐量与稳定性上更适合 A 股实盘环境。标准化解析与动态订阅管理,可进一步提升策略运行效率与数据质量。
欢迎社区同仁就行情接入、数据处理、策略对接等方向交流优化方案。

