为了账号安全,请及时绑定邮箱和手机立即绑定

Python 同步订阅 A 股个股与 ETF 行情实操手记

课程实战需求

做量化实训、搭建盘中监控脚本时,我们经常需要同时跟踪 A 股个股与对应 ETF 走势,个股用来观察单标的波动,ETF 判断板块整体行情。不少同学分开写两套 WebSocket 连接,代码冗余、云主机资源消耗高,后期新增指数、可转债还需要大量改代码,维护成本很高。

常见实训踩坑点

  1. 分两条链路分别订阅个股、ETF,重复占用网络资源,断线重连逻辑要写两份;

  2. 用定时轮询拉取行情,短线剧烈波动时容易丢失 Tick 数据,回测样本失真;

  3. 没有统一标的配置,增减监控标的就要修改核心连接代码,复用性差。

最优实训方案:单 WebSocket 链路统一订阅

推荐采用一套配置管理所有标的,行情接收后再按品种分类处理,本次实训使用 AllTick API 完成流式行情订阅。统一配置只需要给标的增加品类标记,新增监控品种仅调整列表,底层连接逻辑完全不用改动。

完整单段实操代码

import websocket, json
# 混合存放个股、ETF标的清单
watch_list = ["600000", "510300"]
ws_client = websocket.WebSocketApp("wss://quote.alltick.co/quote-b-ws-api")
# 建立连接后批量发起订阅
def on_open(ws):
    ws.send(json.dumps({"cmd": "subscribe", "symbol_list": watch_list}))
# 统一解析所有推送行情,按需区分股票/ETF业务逻辑
def on_msg(ws, raw):
    data = json.loads(raw)
    print(f"标的代码:{data['symbol']},实时现价:{data['price']}")
ws_client.on_open = on_open
ws_client.on_message = on_msg
ws_client.run_forever()

实训稳定运行关键细节

  1. 标准化证券代码格式,统一清洗后再存入实训数据库,避免匹配失败;

  2. 全局统一时间戳时区,聚合分时 K 线、因子计算不会出现时序错位;

  3. 本地缓存订阅清单,网络中断重连后自动恢复批量订阅,无需手动重启脚本。

推荐分层实训工程结构

小型实训脚本可直接使用上面极简代码;如果拓展告警、数据持久化功能,建议拆分模块:配置文件、WebSocket 连接、行情解析、数据存储,各模块独立修改互不干扰,适合多人分组完成课程大作业。

实训总结

个股与 ETF 同步监控不用拆分多条数据流,单条 WebSocket 长连接搭配统一标的列表,代码简洁易调试,后续拓展指数、可转债仅扩充标的清单即可,是兼顾性能与可维护的实训标准写法。


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
Python工程师
手记
粉丝
0
获赞与收藏
0

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消