问题描述
解决方案
在 QMT 平台中,回测模式完全依赖于本地已下载的历史数据。如果提示“数据不足”,说明您设定的回测时间区间或周期内,本地缺少相应的行情数据、财务数据或除权除息数据。
请按照以下步骤在 QMT 客户端中补充数据:
1. 打开数据管理界面
在 QMT 客户端界面的顶部菜单栏或工具栏中,找到并点击 【数据管理】 按钮(通常图标为一个数据库或表格形状)。
2. 补充行情数据 (K线/Tick)
这是最常见的数据缺失原因。在【数据管理】界面中:
- 选择标签页:点击 “历史行情数据” 或 “补充数据” 标签。
- 选择品种:
- 在左侧列表中勾选您策略涉及的市场或板块。
- 例如:若回测股票,通常勾选 “沪深A股”;若回测期货,勾选对应的期货品种。
- 选择周期:
- 非常重要:您必须下载与策略运行周期一致(或更精细)的数据。
- 如果策略是日线策略,勾选 “日线”。
- 如果策略是分钟级策略(如 5分钟、15分钟),建议勾选 “1分钟线” 或 “5分钟线”。
- 如果策略涉及盘口撮合细节,可能需要下载 “分笔” (Tick) 数据(数据量较大,请按需下载)。
- 设置时间范围:
- 设置 “开始时间” 和 “结束时间”。
- 注意:下载的开始时间应早于回测的开始时间。例如,如果策略需要计算
MA60(60日均线),您至少需要提前下载回测起始日期前 60 个交易日的数据,否则初期指标无法计算。
- 执行下载:点击 “下载” 或 “补充” 按钮,等待进度条完成。
3. 补充财务与除权数据
如果您的策略使用了财务指标(如 PE、PB、净利润)或设置了复权(前复权/后复权),还需要补充以下数据:
- 在【数据管理】界面,找到 “财务数据” 或 “盘后数据” 选项。
- 勾选 “财务数据”(用于
get_financial_data接口)。 - 勾选 “除权除息”(用于复权计算)。
- 点击下载。
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。解决方法是下载比回测开始时间更早一段时间的数据。