回测导入:“此文件夹中没有可用于回测的数据”以及被排除的换月日

自动回测会把一个 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 的规则在上面读不到任何有意义的内容。

继续阅读