乐于分享
好东西不私藏

QMT回测总报错?新手易栽"没下载数据"!3种方法一次讲透

QMT回测总报错?新手易栽"没下载数据"!3种方法一次讲透

你是不是也遇到过这种情况:辛辛苦苦写了个策略,满怀期待点下"回测",结果弹出一行红字:无行情数据

翻来覆去查代码,逻辑没问题,参数没问题,最后才发现——根本没下载数据

别笑,这真的是80%的QMT新手都会踩的第一个坑,包括我自己刚接触的时候也栽过。

今天这篇文章,我用最通俗的话,把QMT下载A股历史数据的3种方式全部讲透。从点点鼠标就能搞定的新手操作,到一行代码自动完成的高阶玩法,看完直接上手。

建议先点赞收藏,免得要用的时候翻不到。

先搞懂:QMT为什么非要下载数据?

很多人从其他量化平台转过来,会很不适应:别的平台打开就能回测,QMT怎么还要自己下数据?

原因很简单——QMT是"本地化"机制

打个比方:别的平台像在线音乐APP,联网就能听;QMT更像一个本地播放器,你不把歌下载到电脑里,它就放不出来。

好处也很明显:数据在本地,回测速度飞快,不依赖网络,断网也能跑策略。代价就是——第一步必须先下载数据

不管你是做回测、算指标,还是实盘跑策略,数据下载都是绕不开的第一步。下面3种方式,对号入座就行。

方式一:手动下载(新手首选,点点鼠标就行)

如果你是第一次用QMT,或者只是想临时补一下某个板块的数据,手动下载是最稳妥的选择。界面可视化,每一步都能看到,不容易出错。

入口在哪:登录QMT客户端 → 右下角点【行情】→ 顶部标签栏找【智能下载】。

跟着点就行,一共5步:

  1. 选数据类型:一般选"K线数据"就够了。做超高频的才需要"分笔数据",新手不用碰。
  2. 选范围:勾选你要的板块,比如"沪深A股""上证50""沪深300",也可以只选自己的自选股。小白提示:第一次建议先下"沪深300",数据量适中,跑策略够用。全A股数据量很大,下载慢、占空间。
  3. 选周期:

日线(1d):做中长线、波段策略选这个;

1分钟/5分钟:做短线、日内策略选这个;

Tick(分笔):超高频专用,数据量巨大,新手劝退

4.选时间范围:新手刚开始学习,可以先下最近1个月、或者最近1年的数据,。想一步到位也可以选"全部",就是等得久一点。

5.点【补充】或【开始下载】,等着就行。

下载进度可以在界面上看到,完成后就能直接跑回测了。

方式二:定时自动下载(懒人福音,长期运行)

手动下载虽然简单,但每天都要手动点一遍,时间长了也烦。有没有办法让QMT自己帮你更新数据?

有,就是定时自动下载。设好之后,每天收盘后QMT自动帮你把最新数据补齐,完全不用管。

入口在哪:【行情】界面 → 点【批量下载】标签。

4步搞定:

  1. 点【新增方案】,起个名字,比如"每日盘后自动更新"。
  2. 点【增加下载任务】,选要更新的板块,比如"我的自选股"或者"全A股"。
  3. 勾选【定时下载】,时间建议设在16:00-17:00。这个时间段刚收盘,交易所数据已经稳定,是最佳更新窗口。设太早数据还没出全,设太晚又影响晚上跑策略。
  4. 点【应用】保存,完事。

重点提醒:定时下载的前提是QMT要保持开着。如果你每天收盘就关电脑,那这个功能就用不了,还是得手动补。

方式三:Python代码下载(高阶玩法,不会编程也能看懂)

如果你是用Python写策略,特别是外接IDE(比如PyCharm、VS Code)来跑的,那必须在代码里确保数据已下载,否则回测直接报错。

别慌,不需要你写复杂逻辑,QMT已经提供了一个现成的函数:download_history_data。在策略初始化的时候调用一下,数据就自动下好了。

代码示例,改标的代码和日期进行落地:

pythondownload_history_data 代码示例

coding:gbkdef init(C):    # 初始化时自动下载指定股票的日线数据    # 参数:股票代码、周期、起始日期    download_history_data("000300.SZ", "1d", "20260720")    print("数据下载完成")def handlebar(C):    # 下载完成后,就可以正常获取行情了    data = C.get_market_data_ex(        stock_code=["000300.SZ"],        start_time="20260720",        period="1d",        count=-1    )    print(data["000300.SZ"])

运行后,日志区会打印出下载的行情数据,能看到日期、开盘价、收盘价、成交量这些字段,就说明数据下载成功了。

一句话总结:手动下载适合新手入门,定时下载适合日常维护,代码下载适合自动化策略。三种方式可以组合用,很多老手都是"手动全量打底 + 定时自动更新 + 代码按需补充"。

5.3种方式怎么选?一张表说清楚

避坑指南:3个血泪教训,别等踩了才知道

坑1:重复下载,白白浪费几个G硬盘

很多人以为每个周期都要单独下载,其实不用。

QMT底层只存4种基础数据:1分钟、5分钟、Tick和日线。其他周期都是自动合成的:

想要15分钟、30分钟K线 → 下5分钟数据就行,系统自动合成

想要周线、月线 → 下日线数据就行,系统自动合成

所以别每个周期都下一遍,浪费时间又占硬盘。

坑2:重装系统没备份,数据全没了

下载的行情数据存在哪?在QMT安装目录下的 datadir 文件夹里。

这个文件夹动辄几个G甚至几十G。如果你要重装系统或者换电脑,一定要先把datadir文件夹备份出来。否则重新下载全量数据,可能要等好几天。

别问我怎么知道的,说多了都是泪。

坑3:下载速度慢到怀疑人生

第一次全量下载,速度慢是正常的,毕竟数据量大。两个提速小技巧:

1.挑时间下:尽量在非交易时间下载,比如周末或者晚上,避开行情高峰期。

2.换服务器:如果速度特别慢,可以在登录界面或设置里切换一下行情服务器,选个延迟低的节点,速度可能差好几倍。

最后说几句

下载历史数据,是QMT量化交易的第一步,也是最容易被忽略的一步。很多人折腾半天策略跑不通,回头一看——数据没下。

记住这个顺序:先下数据 → 再跑回测 → 最后上实盘。数据是地基,地基没打好,上面盖什么都不稳。

新手朋友建议从手动下载开始,先把沪深300的日线数据下好,跑通一次回测,建立信心。熟悉之后再设置定时自动下载,解放双手。会Python的朋友直接上代码下载,一劳永逸。

如果这篇文章帮你解决了问题,点个赞、收个藏、转发给同样在踩坑的朋友,就是对我最大的支持。

有问题欢迎在评论区留言,我看到都会回。

【风险提示】本文仅量化工具使用教学和投资者教育科普内容,不构成任何投资建议。具体功能以QMT客户端实际版本为准。市场有风险,投资需谨慎。量化策略的历史回测结果不代表未来实际收益,实盘交易请充分评估自身风险承受能力。秦岭 S1410126060016 江海证券有限公司重庆分公司