“已停止:达到内存上限。请一次导入更少的合约。”
Senzoukria 的 Databento 导入器会把成交留在内存里,直到每一天都完整为止。当各个合约上累积起来的未完成日期太多时,它会以“已停止:达到内存上限”停下来。已经完整的时段会被保留;请一次导入更少的合约。
Senzoukria · 故障排除 · 更新于 2026 年 9 月
概要
- 回放里的消息
- “已停止:达到内存上限。请一次导入更少的合约。”
- 回测里的消息
- “OHLCV 分钟:已达内存上限,未从 ohlcv-1m 写入任何内容。请导入更短的时间段。”
- 上限
- 15 000 000 笔正在等自己那一天完成的成交(是单时段 5 000 000 笔上限的 3 倍)
- 会保留的内容
- 已经完整的时段
你会看到什么
导入以“已停止:达到内存上限。请一次导入更少的合约。”结束。结果里依然会列出在停下之前已经写出来的那些时段。在回测的导入器里,分钟 K 线对应的那一句是“OHLCV 分钟:已达内存上限,未从 ohlcv-1m 写入任何内容。请导入更短的时间段。”
为什么会这样
一个 CME 时段只有在它的两个每日文件都被读过之后才能写出来,所以导入器会把每个合约的成交留在内存里,直到它那一天收尾。同一时刻留在内存里的总量被限制在 15 000 000 笔成交。合约很多、某些天特别活跃,或者文件的顺序导致很多天同时处于未完成状态,都会撞到这个上限。停下来,比让内存无边界地长下去更安全。如果你选择的是取消,那么消息会是“已取消 — 已完整的交易时段予以保留,未写入任何不完整的内容。”
如何解决
- 一次只导入一个合约根,例如先 MNQ,再 ES。
- 把很长的时间段拆成几个文件夹。
- 如果你不需要,就取消勾选“保留 mbp-1 文件的 L1(最优买价 / 卖价)”;L1 是通过落盘缓冲写出去的,但每一个带 L1 的时段在 MNQ 上大约要多占 125 MB。
- 导入期间把其他吃资源的程序关掉。
它并不意味着什么
- 不是导入被弄坏了:已经完成的时段是完整的。
- 也不是你电脑的总内存:这是导入器里一个固定的上限。
何时联系技术支持
如果问题一直存在,请通过 菜单 → 问题反馈 或者在 Senzoukria 的 Discord 上联系技术支持。请附上这个文件夹里合约和日期的数量,以及“已写入 {n} 个交易时段”那一行。
相关页面
同一栏目
- 需要订阅或订阅已过期
- 凭据未能保存
- NinjaTrader 桥接一直在连接
- 热力图无法启动(EvalError)
- NinjaTrader 桥接配置错误
- 全部被接受,却没有数据进来
- 回放加载被拒(rp_code 13)
- 需要先保存密码
其他语言版本
常见问题
- 在停下之前写出来的那些时段会丢吗?
- 不会。已经完整的时段会被保留;只有导入停下时仍然处于未完成状态的那些天不会被写出来。
- L1 这个选项会占内存吗?
- L1 是通过一个落盘缓冲写出去的,并不和成交一起留在内存里,但它在真实文件上实测每个 MNQ 时段会多占大约 125 MB 的磁盘。