QMT行情数据获取简介,更多内容可联系交流!
发布时间:4小时前阅读:48
做QMT量化的人常说一句话:数据是策略的命根子,数据没拉对,回测再漂亮也是空中楼阁。今天不整虚的,专门讲讲QMT里行情数据的获取逻辑,尤其是download_history_data和get_market_data_ex这一套组合拳怎么用才不踩雷,看完能帮你省掉至少一半的数据调试时间。
先搞清楚QMT底层是怎么存数据的,这点非常重要。系统里真正落地的“原生周期”其实很少,只有tick、1分钟、5分钟和日线这四样是基础周期,剩下的全都是现场算出来的合成周期。比如你常见的3分钟线,是拿1分钟拼的;10分钟、15分钟、30分钟、60分钟、2小时、3小时、4小时,全是从5分钟线往上堆;再往上的2日线、周线、月线、季线、半年线、年线,统统来自日线。理解这一点,你就知道为什么有时候下数据慢,有时候又很快——因为底层只要把地基打好,楼上几层都是本地算的。
具体到download_history_data这个函数,它就是用来批量拉历史地基数据的。很多人第一次用容易犯两个错:一个是以为我要15分钟线就得选15m去下载,结果要么报错要么拉半天没进度;另一个是同时下了5m又下15m,硬盘里等于同一份数据被反复请求,浪费时间还可能触发流量限制。正确姿势是:你要用哪个合成周期,就去下它对应的基础周期。比如你策略里要用到15m和30m,那就只下5m就行,后面直接订阅15m、30m,系统会自动拿本地的5分钟数据给你拼好。同理,做波段要看周线和3日线,那只用下1d日线就够了,甚至你同时做短线5m+波段周线,最优解也是只下5m(因为日线也可以用1分钟或5分钟再合成,不过通常还是建议日线单独下,速度更快,看你策略跨度)。
再说get_market_data_ex,这是实盘和回测里拿行情的主力函数。它比老接口灵活很多,能拿历史也能拿实时,还能顺带把一些特色数据拽出来。但这里有个新手必踩的坑:千万别把它随便扔initialize里裸跑。initialize只在策略启动时执行一次,那时候本地数据还没刷新完、行情服务也可能没完全就绪,你在init里硬拿,往往只能读到本地旧数据,等你开盘一看,信号全是基于昨天的收盘价算的。正确做法是把初始加载放before_trading_start里,盘中实时更新放handle_data或者on_bar里,这样每次触发都能拿到最新的切片。
get_market_data_ex还有一个隐藏价值:它不只是K线。QMT的特色数据比如Level-2资金流向、委托队列、订单流这些,本质上也是挂在行情体系下的字段,通过数据字典配好参数就能一起取回来。比如你想做主力资金背离,不用自己再去接第三方数据源,直接在这个函数里把字段名对上,本地就能用,省掉很多外部依赖和延迟。
实战里有几个小建议。第一,数据路径和本地缓存别乱清。QMT下载的历史数据都在用户目录的dataview之类文件夹里,有时候你重装软件想保留多年历史K线,把那块拷走备份就行,重装完粘回去秒加载。第二,实时订阅和回测模式要分清。回测时download_history_data把基础周期拉齐就行,回测引擎自己管时间轴;实盘时如果怕错过开盘那几分钟,最好前一天晚上或早上提前把对应基础周期补完,然后直接订阅合成周期,系统会一边用本地历史一边接实时tick拼新K线。第三,字段别贪多。有些人一股脑把所有字段全加上,open high low close vol amount再加十几个指标,结果DataFrame巨肥,跑起来反而卡,按需取字段,后面自己算指标,性能会好很多。
还有一个进阶点:如果你做的是tick级高频,download_history_data拉tick会很占空间,建议只拉最近一段时间做特征训练,老数据用分钟级就够了。另外注意,QMT的tick是按交易所原始切片来的,不是所有品种频率一致,做跨品种套利时要自己对齐时间戳,别直接用索引位置硬匹配。
整体来说,QMT这套数据机制设计得很工程化,逻辑是:底层精简存储 + 上层灵活合成 + 接口统一分发。适应了这个思路,你会发现它比那种表面给你一百种周期、背后疯狂耗资源的平台要清爽得多。
如果你想要一份我自己整理的QMT数据下载速查表,包括常用周期对应关系、get_market_data_ex的标准模板代码、还有怎么用pandas把合成K线再加工成自定义周期(比如7分钟线、13日线这种奇葩需求),评论区打个“数据”或者私信我,我直接发你,省得你自己对着文档啃半天。
温馨提示:投资有风险,选择需谨慎。
-
REITs打新日历:四川成都 ⌈锦江 REIT⌋ 本周四售!(附认购操作指南)
2026-07-27 16:59
-
2026夜市委托怎么操作?个人经验攻略全分享
2026-07-27 16:59
-
新股发行:【展芯股份】+【国仪公司】+【超纯应材】本周可申购!(附打新神器)
2026-07-27 16:59


问一问

+微信
分享该文章
