🚀 AI 一键生成 qmt 策略代码

如何确保 QMT 回测准确性?数据管理功能使用指南

qmt | 发布时间: 2025/11/28
以下内容由 EasyQuant 生成。

问题描述

我的策略回测时提示数据不足,应该如何下载和补充历史数据?

解决方案

在 QMT 平台中,回测模式完全依赖于本地已下载的历史数据。如果提示“数据不足”,说明您设定的回测时间区间或周期内,本地缺少相应的行情数据、财务数据或除权除息数据。

请按照以下步骤在 QMT 客户端中补充数据:

1. 打开数据管理界面

在 QMT 客户端界面的顶部菜单栏或工具栏中,找到并点击 【数据管理】 按钮(通常图标为一个数据库或表格形状)。

2. 补充行情数据 (K线/Tick)

这是最常见的数据缺失原因。在【数据管理】界面中:

  1. 选择标签页:点击 “历史行情数据”“补充数据” 标签。
  2. 选择品种
    • 在左侧列表中勾选您策略涉及的市场或板块。
    • 例如:若回测股票,通常勾选 “沪深A股”;若回测期货,勾选对应的期货品种。
  3. 选择周期
    • 非常重要:您必须下载与策略运行周期一致(或更精细)的数据。
    • 如果策略是日线策略,勾选 “日线”
    • 如果策略是分钟级策略(如 5分钟、15分钟),建议勾选 “1分钟线”“5分钟线”
    • 如果策略涉及盘口撮合细节,可能需要下载 “分笔” (Tick) 数据(数据量较大,请按需下载)。
  4. 设置时间范围
    • 设置 “开始时间”“结束时间”
    • 注意:下载的开始时间应早于回测的开始时间。例如,如果策略需要计算 MA60(60日均线),您至少需要提前下载回测起始日期前 60 个交易日的数据,否则初期指标无法计算。
  5. 执行下载:点击 “下载”“补充” 按钮,等待进度条完成。

3. 补充财务与除权数据

如果您的策略使用了财务指标(如 PE、PB、净利润)或设置了复权(前复权/后复权),还需要补充以下数据:

  1. 在【数据管理】界面,找到 “财务数据”“盘后数据” 选项。
  2. 勾选 “财务数据”(用于 get_financial_data 接口)。
  3. 勾选 “除权除息”(用于复权计算)。
  4. 点击下载。

4. 补充多因子数据 (如使用)

如果使用了 get_factor_data 接口获取因子数据:

  • 路径通常为:菜单 -> 操作 -> 数据管理 -> 补充数据 -> 多因子数据

常见问题排查

  • 回测时间设置:检查策略编辑器中的【回测参数】,确保“开始时间”和“结束时间”在您刚刚下载的数据范围内。
  • 全推数据:如果您是实盘或模拟盘运行,通常依赖实时推送(全推),但在第一次运行时,依然建议补充最近的历史数据以确保指标初始化正确。
  • 磁盘空间:分钟线和 Tick 数据占用空间较大,请确保硬盘有足够空间。

Q&A

Q: 为什么我下载了日线数据,回测 1 分钟策略还是提示数据不足?
A: QMT 的数据是分周期存储的。日线数据不包含分钟细节。如果您要回测 1 分钟周期的策略,必须专门勾选并下载“1分钟线”数据。

Q: 我可以在 Python 代码里写命令自动下载历史数据吗?
A: 不可以。QMT 的 Python API 主要用于读取数据和交易,数据的下载和维护主要通过客户端的图形界面(GUI)手动操作完成。

Q: 为什么下载了数据,计算 MA(均线) 前几天还是空的?
A: 这是因为指标计算需要“预热”。例如计算 10 日均线,需要前 9 天的数据。如果您的回测开始日期就是数据下载的开始日期,那么前几天因为历史数据不够,均线值会是 NaN。解决方法是下载比回测开始时间更早一段时间的数据。