如何在QMT中使用“订阅”数据和“反订阅”?
发布时间:8小时前阅读:24
在QMT中,“订阅”与“反订阅”数据是实现实时市场交互的核心功能,尤其适用于需要快速响应市场变化的策略。以下是针对不同接口的详细使用指南及降重后的讲解:
一、核心订阅接口概述
QMT提供三种关键接口,分别用于不同场景的数据订阅与管理:
- subscribe_quote用途:订阅单个或多个股票的特定周期行情(如K线或Tick)。限制:券商端通常限制同时订阅100个标的,且仅支持一档行情数据。适用场景:精准监控少数标的,如个股分钟级K线。
- subscribe_whole_quote用途:全推订阅整个市场或指定股票列表的实时分笔(Tick)数据。特点:每次推送增量数据,仅包含有变动的品种,适合多标的同步监控。
- unsubscribe_quote用途:通过订阅ID取消已订阅的数据,释放资源。必要性:避免超出订阅上限,优化资源利用率。
二、接口实战详解
1. subscribe_quote:单标的行情订阅
案例:订阅贵州茅台(600519.SH)的1分钟K线,实时打印收盘价。
# 回调函数:处理新到达的K线数据
def on_kline_update(data):
stock_code = "600519.SH"
latest_close = data[stock_code]["close"].iloc[-1]
print(f"【实时接收】茅台1分钟收盘价: {latest_close}")
# 初始化策略时启动订阅
def init(ContextInfo):
print("启动订阅:茅台1分钟行情...")
ContextInfo.subscribe_quote(
"600519.SH",
period="1m",
callback=on_kline_update
)
# handlebar可留空,因逻辑在回调中完成
def handlebar(ContextInfo): pass
关键点:
- 回调驱动:
on_kline_update被动接收数据,适合高频更新场景。 - 周期参数:
period="1m"可替换为"tick"获取逐笔数据。 - 效率提示:每3秒推送一次数据,确保低延迟。
2. subscribe_whole_quote:全推订阅多标的
案例:同时监控平安银行(000001.SZ)、茅台(600519.SH)、50ETF(510050.SH)的Tick数据。
# 回调函数:打印全量Tick数据
def call_back(data): print(data)
# 初始化时订阅全市场或自定义列表
def init(ContextInfo):
stock_list = ["000001.SZ", "600519.SH", "510050.SH"]
ContextInfo.subID = ContextInfo.subscribe_whole_quote(stock_list, callback=call_back)
# handlebar中可输出订阅ID验证
def handlebar(ContextInfo):
print(f"当前订阅ID: {ContextInfo.subID}")
优势对比:
- 批量处理:无需逐个订阅,适合多标的监控。
- 增量推送:仅传输变动数据,减少带宽消耗。
- 盘口数据:相比
subscribe_quote,可获取更详细的逐笔成交与委托簿数据。
3. unsubscribe_quote:资源释放管理
案例:动态取消已订阅的行情,避免资源浪费。
# 初始化时创建订阅并保存ID
def init(ContextInfo):
ContextInfo.stock_list = ["000001.SZ", "600519.SH"]
ContextInfo.subID = ContextInfo.subscribe_whole_quote(ContextInfo.stock_list, callback=print)
# 运行中根据条件取消订阅
def handlebar(ContextInfo):
if some_exit_condition: # 自定义退出条件,如达到盈利目标
ContextInfo.unsubscribe_quote(ContextInfo.subID)
print("已取消订阅,释放资源。")
最佳实践:
- ID绑定:订阅时务必保存返回的
subID,作为反订阅凭证。 - 及时清理:策略退出前或不再需要数据时调用,防止超限。
三、总结与建议
- 事件驱动设计:优先利用回调函数处理实时数据,降低轮询开销。
- 资源优先级:高频策略选用
subscribe_whole_quote,低频则用subscribe_quote节省配额。 - 生命周期管理:结合
handlebar逻辑动态调整订阅,平衡性能与需求。
掌握这三个接口,即可构建高效的实时交易策略,灵活应对市场波动。立即尝试将示例代码嵌入您的策略,体验QMT的实时数据处理能力!
(注:点我红色头像旁边有个咨询TA,加我微或者电话联系我)
温馨提示:投资有风险,选择需谨慎。
-
华泰证券开户的佣金是多少?降低佣金的办法有几种?
2025-11-24 09:51
-
证券开户前,强烈建议先看完这篇攻略(特惠佣金)
2025-11-24 09:51
-
不想看书,看综艺照样可以学理财!
2025-11-24 09:51


当前我在线
13696256467 
分享该文章
