# 流式统一内核：阶段 4 观察窗口清单

本文用于指导 `run_backtest` 完成流式统一改造后的观察窗口执行，目标是在不破坏用户体验的前提下，决定是否推进到“移除旧阻塞分叉代码”阶段。

## 1. 观察周期

- 推荐观察周期：`2~4` 周，或至少覆盖 `2` 个内部版本发布周期。
- 至少覆盖场景：
  - 单标的/多标的回测
  - 短回测/长回测
  - 无 `on_event`（默认用法）与有 `on_event`（流式消费）两类调用

## 2. 必看指标

### 2.1 稳定性指标

- 回测失败率（按任务数）：应不高于改造前基线。
- 回调异常率（`callback_error_count > 0` 占比）：应可解释并可复现。
- 关键事件完整性：`started` 与 `finished` 必须一一对应。

### 2.2 结果一致性指标

- 核心结果一致性（抽样回放）：
  - 总收益率（`total_return`）
  - 最大回撤（`max_drawdown`）
  - 成交笔数（`len(trades)`）
- 判定原则：与改造前基线对比无系统性偏移；允许浮点微小差异。

### 2.3 性能指标

- 回测总耗时 P50/P95：不应出现明显劣化。
- 峰值内存：不应出现异常增长。
- 事件吞吐（有 `on_event`）：在高频场景下无明显积压。

### 2.4 用户体验指标

- 现有 `run_backtest(...)` 调用零改动可运行比例：目标 `100%`。
- 新增迁移问题工单数：持续下降或稳定在低位。

## 3. 推进门槛（Go / No-Go）

满足以下全部条件，可推进阶段 5：

- 连续 `2` 个发布周期无 P0/P1 级回归。
- 一致性抽样全部通过（无系统性偏移）。
- 性能指标相对基线无显著退化。
- 兼容入口 `run_backtest` 无新增破坏性反馈。

出现以下任一条件，保持观察并延后阶段 5：

- 出现无法快速规避的结果偏差问题。
- 关键路径性能显著退化且短期无法修复。
- 用户侧出现较多与统一内核直接相关的阻断问题。

## 4. 回滚与兜底

- 阶段 5 后采用版本级回滚，不再提供运行时参数级回滚开关。
- 回滚后应记录：
  - 触发条件
  - 影响范围
  - 修复计划与恢复目标版本

## 5. 阶段 5 前置清单

- 清理并确认所有内部调用默认走统一内核。
- 统一使用 `run_backtest(..., on_event=...)` 作为显式流式语义入口。
- 明确发布说明：阶段 5 只移除内部分叉实现，不改变公共 API 行为。
