miniQMT订阅模式全解析,实时获取股票数据!|
发布时间:16小时前阅读:14
miniQMT 主要通过 xtquant 模块中的 xtdata 来订阅和获取股票数据。以下是其订阅模式及实时获取股票数据的方法解析:
- 订阅单只股票特定周期数据:使用
subscribe_quote函数,可指定股票代码和周期(如分笔tick、1 分钟、日线等)进行订阅,并通过设置回调函数接收数据。每当股票有新的成交(对于tick周期)或到达设定的周期结束时间(对于 K 线周期)时,就会触发回调。例如: - python
- 运行
from xtquant import xtdata
def on_data(datas):
print(datas)
xtdata.subscribe_quote(('000001.SZ'), 'tick', callback=on_data)
这种方式适合跟踪特定股票,延迟极低,数据完整,但每个订阅的标的会持续占用连接资源,订阅数量不宜过多。
- 全市场 tick 数据订阅:通过
subscribe_whole_quote函数实现。无需指定具体股票代码,可获取全市场数据,盘中约 50ms 更新一次。它是被动推送模式,只有订阅的标的发生变化时,才会把变化的数据推送给用户,仅支持tick分笔数据。例如: - python
- 运行
from xtquant import xtdata
import datetime
def on_market_data(data):
current_time = datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S.%f")[:-3]
print(f"当前时间:{current_time}")
print(f"收到{len(data)}只股票的数据")
for stock_code, stock_data in data.items():
last_price = stock_data.get('lastPrice', 'N/A')
volume = stock_data.get('volume', 'N/A')
print(f"股票{stock_code}最新价:{last_price}, 成交量:{volume}")
seq = xtdata.subscribe_whole_quote(code_list=('SH', 'SZ'), callback=on_market_data)
xtdata.run()
该模式适合市场扫描、高频交易等场景,网络带宽和计算资源消耗较小。
- 获取市场快照:无需订阅,直接调用
get_full_tick函数即可获取当前市场快照,能从本地缓存中取出所有已订阅品种的最新tick快照。例如: - python
- 运行
import xtquant.xtdata as xtdata
stock_codes = xtdata.get_stock_list_in_sector("沪深A股")
quotes = xtdata.get_full_tick(stock_codes)
此方式不占订阅额度,可获取全市场数千只股票的快照,适合定期获取市场概况等场景,但延迟比推送模式稍高,一般在几十毫秒级别。
此外,miniQMT 的 Level-2 行情(如十档盘口、逐笔成交等)属于单独付费订阅服务。可联系券商客户经理或在券商 APP 内 “行情 / 增值服务” 处选择按月或按年订阅,支付费用后重启 miniQMT 即可使用。股票/量化开户找我!股票佣金万0.854(满足条件)!无门槛国债逆回购一折 (百万分之一)!ETF佣金万0.5!优惠多多!免费量化使用量化软件QMT+miniQMT+ptrade!

温馨提示:投资有风险,选择需谨慎。


问一问

+微信
分享该文章
