【问题反馈】IM2706.CFE 在 cn_future_bar1m 有分钟线,回测取价全为 nan

由bq1ajxww创建,最终由bq1ajxww 被浏览 2 用户

一、问题一句话 库表 cn_future_bar1m 里 IM2706.CFE 有分钟线,但回测引擎里 data.current('IM2706.CFE','close') 全部取不到(返回 nan)。请说明原因。 (A:103900 起共 75 行;B:90640 汇总)

二、复现环境

  1. 策略构建:BUILD_ID=V2.91-20261111;内嵌自证 BAKED_SELF_MD5=929f6320ed3082c902c6f705e5c344c1(A:55、B:56)。
  2. 复现跑运行文件 v291_probe3.py,实算 md5=9ba4d2335fc3b66baa38ee0e238b8b34(B:57)。
  3. 平台库:bigtradercpp=0.0.0,原版本=0.1.0.dev20260813104219+g07653e8(A:2、B:2)。
  4. 窗口:事件时间 2025-01-01~2026-11-11,交易窗 2026-01-01~2026-11-11,预热 2025-01-01(A:11、A:44)。
  5. RUN_MODE='backtest',platform=linux,IS_WINDOWS=False,判定=回测(A:10、A:12)。

三、现象 1.【PROBE-PX3】是我们策略里的取价自检行:每交易日 09:31/13:01/14:59 调用 data.current(合约,'close') 打印结果。 2. 正常回测:PROBE-PX3 共 75 行(25 个交易日 × 3 个时点),覆盖 2026-10-08~2026-11-11(A:103900 首行、A:110731 末行)。 3. 这 75 行里 IM2706价 全部 =nan(0/75);同一行 IM2703价 与 当前价 全部有值(75/75)(A:103900、A:110507、A:110731)。 4. 首行原文:dt=2026-10-08 09:31 当前价=7002.2 IM2706价=nan IM2703价=7002.2(A:103900)。 5. 另一跑把 IM2706 放在订阅列表第一位:自检汇总 PROBE-PX3 行数=75;IM2706价=nan 75;有值(IM2706)=0(B:90640)。 6. 该跑订阅与 bar 正常:[F107-CHECK] stage=B COLD_SUB_EXTRA=on(B:16);[F107-SUB] dt=2025-01-02 n=3 list=IM2706.CFE,IM2506.CFE,IM2503.CFE(B:65);[F107-BAR] first dt=2025-01-02 09:31:00(B:80);handle_data 回调总数=107760(B:90639)。 7. 补充(避免误读):2025-01-20 时 IM2706 尚未上市,同一行 指定=IM2706.CFE 指定价=nan 属正常(A:487); 问题只出现在 IM2706 已上市之后的 2026-10-19~11-11。

四、对照

  1. 库里确有数据:dai 查询 cn_future_bar1m,IM2706.CFE = 4320 行、18 个交易日、2026-10-19~2026-11-11,每天 240 根(dai 查询结果)。 2.【PROBE-PX】是同一取价自检在登记/行情回调时的打印。其它远月合约在策略首次登记的当天就有价:
    • 2025-01-20 远月 IM2509.CFE 远月价=5634.8(A:487);
    • 2025-04-21 远月 IM2512.CFE 远月价=5307.0(A:2755)。
  2. 同一行里 指定=IM2706.CFE 指定价=nan,而远月价有值(A:487、A:2755)。

五、我们已排除的

  1. 订阅顺序:IM2706 置首后仍全 nan;该跑结论原文“IM2706 仍全部 nan ⇒ 订阅内容/顺序不是杠杆”(B:65、B:90640、B:90648)。
  2. 合约域:ALL_INSTRUMENTS(9) 已含 IM2706.CFE(B:16);订阅池上界=IM2706.CFE(A:12、B:12);池长=9 池含远月=True(A:487)。
  3. 形态判定:RUN_MODE='backtest'、platform=linux、IS_WINDOWS=False、判定=回测(A:10、A:12、B:10)。
  4. 取价时点:09:31、13:01、14:59 三个时点全 nan,不是单一时点问题(A:103900、A:104029、A:104169;B:83674、B:83804、B:83952)。

六、请你们确认/答复的四点 ① cn_future_basic_info(或你们的合约表)里 IM2706.CFE 是否有记录?其字段是否与其它 IM 合约一致? ② 回测 1m replayer 的合约清单里是否包含 IM2706.CFE?若不包含,为什么 cn_future_bar1m 有 bar、replayer 里没有? ③ IM2706.CFE 是否被当作“主力/次主力”过滤掉?若是,回测侧如何让它可用? ④ 若确属平台侧缺失,请给出补数据的操作方式与预计完成时间。

{link}