[TET Phase 2] 策略 session: copy 策略副本改调 _ex 接口 + NAS 回测对照 #19

Open
opened 2026-08-14 15:36:03 +00:00 by claude_dev · 1 comment
Member

背景

TET 窄试点 B Phase 1 已完成(commit d165e2a,CI 部署中):provider 新增 4 个 _ex 接口(TET 三段式,strict fail-fast),老接口零改动。方案 2026-08-15 用户定案:并行验证,Phase 2 由策略 session 做。

Phase 2 任务(策略 session)

  1. copy 策略副本(如 all_weather_ex / momentum_timing_ex 等):只机械替换取数调用,策略逻辑零改动——保证对照纯净:
    • get_price(...)get_price_ex(...)
    • get_closes_panel(...)get_closes_panel_ex(...)
    • get_constituent(...) / get_index_stocks(...)get_constituent_ex(...)(注意:get_index_stocks 无 _ex 版本,get_constituent_ex 是同语义别名)
    • get_fundamentals_df(...)get_fundamentals_df_ex(...)
    • ⚠️ get_value_metrics / get_value_metrics_batch / get_limit_status_batch / get_security_info_batch 无 _ex 版本,继续用老接口(不在 P0 四方法内)
  2. NAS 回测对照:同参数跑 老策略 vs _ex 策略,收益曲线/成交明细/指标 diff=0 = 验证通过
  3. 对照结果 comment 本 issue

_ex 与老接口的契约差异(策略层须知)

场景 老接口 _ex 接口
合法参数输出 逐值一致(等价性 9 测试保证,assert_frame_equal)
非法 frequency/fq/count/日期/空列表 静默返空表/取默认 ValueError fail-fast(拼错参数名也报错)
get_constituent_ex 查询失败 log+返 [] raise
high_limit/low_limit/paused 缺失 补估算值/False 同(显式契约,2026-08-15 用户定案)
标的在库中无数据 返空 同(空=合法缺失,不报错)

Phase 3(验证通过后,另行开工)

老接口内部改为委托 Fetcher(策略副本完成使命;_ex 保留给未来 MCP 出口)。

验收标准

  • _ex 策略回测跑通,与老策略同参数结果 diff=0
  • 若 strict 报错被触发:那是 _ex 拦到了真脏数据/非法调用,报本 issue 定位(这正是 TET 的价值)
## 背景 TET 窄试点 B Phase 1 已完成(commit `d165e2a`,CI 部署中):provider 新增 4 个 `_ex` 接口(TET 三段式,strict fail-fast),**老接口零改动**。方案 2026-08-15 用户定案:并行验证,Phase 2 由策略 session 做。 ## Phase 2 任务(策略 session) 1. **copy 策略副本**(如 `all_weather_ex` / `momentum_timing_ex` 等):**只机械替换取数调用**,策略逻辑零改动——保证对照纯净: - `get_price(...)` → `get_price_ex(...)` - `get_closes_panel(...)` → `get_closes_panel_ex(...)` - `get_constituent(...)` / `get_index_stocks(...)` → `get_constituent_ex(...)`(注意:`get_index_stocks` 无 _ex 版本,`get_constituent_ex` 是同语义别名) - `get_fundamentals_df(...)` → `get_fundamentals_df_ex(...)` - ⚠️ `get_value_metrics` / `get_value_metrics_batch` / `get_limit_status_batch` / `get_security_info_batch` **无 _ex 版本,继续用老接口**(不在 P0 四方法内) 2. **NAS 回测对照**:同参数跑 老策略 vs _ex 策略,**收益曲线/成交明细/指标 diff=0** = 验证通过 3. 对照结果 comment 本 issue ## _ex 与老接口的契约差异(策略层须知) | 场景 | 老接口 | _ex 接口 | |------|--------|----------| | 合法参数输出 | — | **逐值一致**(等价性 9 测试保证,assert_frame_equal) | | 非法 frequency/fq/count/日期/空列表 | 静默返空表/取默认 | **ValueError fail-fast**(拼错参数名也报错) | | `get_constituent_ex` 查询失败 | log+返 `[]` | **raise** | | high_limit/low_limit/paused 缺失 | 补估算值/False | 同(显式契约,2026-08-15 用户定案) | | 标的在库中无数据 | 返空 | 同(空=合法缺失,不报错) | ## Phase 3(验证通过后,另行开工) 老接口内部改为委托 Fetcher(策略副本完成使命;`_ex` 保留给未来 MCP 出口)。 ## 验收标准 - _ex 策略回测跑通,与老策略同参数结果 diff=0 - 若 strict 报错被触发:那是 _ex 拦到了真脏数据/非法调用,报本 issue 定位(这正是 TET 的价值)
Author
Member

⚠️ sha 修正:Phase 1 commit 原 d165e2a 漏 [vps] 标签(CI enforce-label fail),已 amend 重推为 f9322a7(内容不变,7 文件 982 行)。策略 session 对照请基于 f9322a7。

⚠️ sha 修正:Phase 1 commit 原 d165e2a 漏 [vps] 标签(CI enforce-label fail),已 amend 重推为 **f9322a7**(内容不变,7 文件 982 行)。策略 session 对照请基于 f9322a7。
Sign in to join this conversation.