回测导入:“此文件夹中没有可用于回测的数据”以及被排除的换月日
自动回测会把一个 Databento 文件夹按同一个合约根代码导入为一条连续序列:成交数据(trades)生成带 Delta 和价位的 K 线,ohlcv-1m 生成不带这些信息的 K 线。两者都没有的文件夹会被拒绝,换月日会被排除,而缓存中已有的 K 线永远不会被替换。
Senzoukria · 故障排除 · 更新于 2026 年 9 月
概要
- 拒绝
- “此文件夹中没有可用于回测的数据:既无成交也无 ohlcv-1m。”
- 换月
- “为避免两个合约混合,换月前后共排除 {n} 天。”
- 最后一天
- “最后一个完整交易日({day})未写入:没有下一天的数据,无法排除换月。”
- 位置
- Replay → 自动回测 → “导入文件夹…”
你会看到什么
在自动回测面板中,“导入文件夹…”会扫描所选文件夹。可能出现的结果行有:“此文件夹中没有可用于回测的数据:既无成交也无 ohlcv-1m。”、“{n} 个其他周期的 K 线文件不会被导入。”、“{n} 个其他合约或其他根代码的交易日已被搁置。”、“为避免两个合约混合,换月前后共排除 {n} 天。”、“最后一个完整交易日({day})未写入:没有下一天的数据,无法排除换月。”,或者“未能为 {contract} 写入任何 K 线。”
为什么会这样
回测需要一条连续序列,挂在面板中选定的合约之下,而且只接受同一根代码的合约。每一天保留当天的主导合约;换月当天及其前一天会被排除,以免两个合约混在一起,而最后一天要等到下一天的数据出现,才能排除换月的可能。成交数据生成带有真实 Delta 和价位的 K 线。ohlcv-1m 生成的 K 线没有 Delta,也没有价位,而且应用不会为它们声明任何覆盖范围:没有 K 线的那一分钟仍然是未知的。缓存中已有的 K 线,无论来自经纪商、实时数据还是之前的导入,都永远不会被替换。
如何解决
- 从 Databento 导出 trades(用于 Delta 和价位)或 ohlcv-1m(用于普通 K 线);其他周期会被忽略。
- 导入之前,先在面板中选择正确根代码的合约。
- 如果需要写入最后一天,请把它之后的那一天也加入文件夹。
- 请记住:读取 Delta 的策略在 ohlcv-1m K 线上读不到任何有用的信息。
它并不意味着什么
- 不是换月前后的数据丢失:这些日子是有意排除的,并在覆盖范围中显示为缺口。
- 不会覆盖你的缓存:已有的 K 线优先。
何时联系技术支持
如果以上步骤没有改变任何结果,请通过 菜单 → 问题反馈 提交,或在 Senzoukria 的 Discord 上提问。请附上所选的合约、文件夹中的数据模式(schema)以及结果行。
相关页面
同一栏目
其他语言版本
常见问题
- 为什么每次换月前后都少了两天?
- 换月当天及其前一天被排除,这样即将到期的合约和新合约的 K 线就永远不会混在同一条序列里。
- ohlcv-1m 的 K 线能用于足迹图策略吗?
- 它们既没有 Delta,也没有价位信息。它们适合只看价格的规则;基于 Delta 的规则在上面读不到任何有意义的内容。