以父代码(MNQ.FUT)请求的 Databento DBN 文件不会被导入

Senzoukria 不导入那些以父代码(例如 MNQ.FUT)、或者只以合约 ID 请求出来的 DBN 文件:没有合约定义,里面的合约就没法和价差区分开。请改用合约代码、连续代码,或者带代码的 CSV 重新导出一次。

Senzoukria · 故障排除 · 更新于 2026 年 9 月


概要

消息
“{n} 个 DBN 文件是以父代码(如 MNQ.FUT)或仅以合约 ID 请求的……”
可以接受的
合约代码(MNQZ5、MNQH6…)、连续代码(MNQ.v.0),或者带代码的 CSV
原因
一个父代码的映射里包含价差,而在没有合约定义时,它和一个单腿合约分不开
位置
回放 → 准备 → “导入 Databento 导出文件夹”

你会看到什么

清点报告里写着:“{n} 个 DBN 文件是以父代码(如 MNQ.FUT)或仅以合约 ID 请求的。没有合约定义,文件中的合约无法与价差区分,因此不导入。请用合约代码(MNQZ5、MNQH6…)、连续代码(MNQ.v.0)或带代码的 CSV 重新导出。”

为什么会这样

导入器是靠文件里存着的代码映射(symbol mapping),一个合约一个合约地给它们命名的。像 MNQU6 这样一个原始合约代码,就是目录里的一个合约。像 MNQ.v.0 这样一条连续序列并不指名具体合约,它会变成 MNQ 这个根下面的一条序列。而一个父代码会映射到这个产品的每一个合约,价差也在里面;把一个跨月价差的价格混进一个单腿合约,会把整个时段弄脏,而单靠这个文件本身是分不开它们的。

一条连续序列或者一个原始代码只包含它自己的那些合约,所以这样的文件只为那些合约覆盖它所包含的日期。这样做可以避免把移仓那一天写两遍、每个合约各写一半。

如何解决

  • 在你的 Databento 请求里,把你想要的合约代码逐个列出来(例如 MNQZ5 和 MNQH6),或者用一个连续代码,例如 MNQ.v.0。
  • 也可以换成带代码的 CSV 导出。
  • 请保留 Databento 生成的文件名;里面的日期会被用来核对覆盖范围。
  • 重新清点一次这个文件夹,确认这些文件现在出现在已识别的成交文件里。

它并不意味着什么

  • 不是 DBN 文件坏了:这个文件能解码,卡住它的是代码体系(symbology)。
  • 也不是许可的问题:这件事说的是这次导出是怎么请求出来的。

何时联系技术支持

经过这些检查之后还是卡住?请用 菜单 → 问题反馈,或者发到 Senzoukria 的 Discord 上。请说明你在 Databento 的请求里选的是哪一种代码体系(父代码、合约 ID、原始代码,还是连续代码)。

同一栏目

其他语言版本

常见问题

价差会被导入吗?
不会。价差上的成交、以及目录之外的合约上的成交,都只会被统计和报告出来,不会被导入。
做回放的话,原始代码和 MNQ.v.0 哪个更好?
原始代码给出的时段是按真实合约命名的。连续代码同样可用,而且每一天都会保留那条序列当时指向的那个合约。

继续阅读