QMT 行情数据下载与更新

QMT 回测遍历本地历史行情。回测前应在“操作 → 数据管理”中补充策略所需市场、证券、周期和日期范围的数据。能够查看实时行情,并不代表本地已经存在完整的回测数据。

为什么回测前需要下载数据

回测按照历史 K 线推进策略。缺少目标品种、周期或日期范围的数据时,可能出现行情为空、K 线数量不足、策略只有初始化日志或回测结果不完整。

回测中读取本地行情时,通常使用 get_market_data_ex(..., subscribe=False)。实时行情订阅不能替代缺失的本地历史数据。

进入数据管理

迅投官方界面资料给出的通用入口是:

操作 → 数据管理

不同券商版本的文字和布局可能略有差异。如果找不到该入口,应先确认客户端版本和量化功能是否完整。

选择市场、证券或板块

下载范围应与策略实际使用范围一致:

  • 单证券策略可以选择目标证券。
  • 股票池策略需要覆盖实际股票池。
  • 使用板块或指数成分时,应确认相应板块和证券数据已经准备。

不要为了“避免缺数据”默认下载所有市场、所有周期和全部历史。先从本次回测需要的数据开始,确认流程后再扩大范围。

选择数据周期

迅投当前行情函数资料说明,基础存储周期包括:

  • tick
  • 1m
  • 5m
  • 1d

部分其他周期由基础周期合成。例如,15 分钟周期由 5 分钟数据合成。获取历史合成周期时,应先下载对应的基础周期。

设置时间范围

下载日期至少覆盖回测开始时间到结束时间。使用均线、MACD 等需要预热数据的指标时,还应在正式回测开始日期之前保留足够的历史数据。

如果只下载回测区间当天开始的数据,长周期指标在最初一段时间可能没有足够样本。

开始下载并检查结果

下载完成后不要直接把“任务完成”当作数据完整证据。至少检查:

  • 目标证券是否存在。
  • 数据周期是否正确。
  • 最早和最晚日期是否覆盖回测范围。
  • 策略需要的基础周期是否完整。
  • 重新回测后是否能够进入 handlebar 并读取数据。

设置定时更新

迅投快速开始资料说明,可在行情批量下载界面选择需要每日更新的数据并设置定时下载。具体入口和选项以目标客户端为准。

定时更新适合维护日常使用的数据,但不能替代第一次完整补充,也不能证明所有策略使用的数据范围都已经覆盖。

下载时间建议

迅投使用须知提示,盘中下载可能较慢,建议根据实际客户端情况在盘前或盘后更新。大量下载还应考虑磁盘空间和客户端运行负载。

回测仍然没有数据怎么办

按以下顺序检查:

  1. 策略代码中的证券代码格式是否正确。
  2. 策略编辑器中的主图品种和周期是否与下载内容一致。
  3. 回测起止日期是否落在本地数据范围内。
  4. 合成周期依赖的基础周期是否已经下载。
  5. get_market_data_ex 的品种、周期和日期参数是否正确。
  6. 目标证券是否停牌、新上市或本身缺少足够历史数据。

下一步

数据准备完成后,继续创建第一个 Python 模型,并先用最小日志策略验证生命周期。