# 模型家族影子策略、Maker 执行与看板计划

## 目标与边界

本计划吸收 PolyWeather 的模型家族去重、版本化校正与条件特征思路，以及
`polymarket_lp_tool` 的 maker 状态机和 anti-sniping 保护，但不复制第三方代码。

当前阶段保持以下硬边界：

- Hold 仍是唯一新增仓位的主动前瞻策略。
- Hold 继续使用原始 ensemble 成员池概率，现有样本定义不变。
- 新模型只生成影子概率，不参与候选排序、Kelly、敞口或开仓。
- maker 继续只做公共行情和保守队列回放，不接 API key、user channel 或私钥。
- 不恢复 C3/C4，不新增当日盘交易。

## F1 模型家族影子概率

### 假设

当前 raw 概率把 ECMWF 51、GEFS 31、ICON 40 等成员直接合并，因此模型权重随成员数
变化。F1 检验另一种口径：先在每个独立模型家族内计算 bucket 概率，再对家族等权平均。

### 计算规则

1. 只使用 `config.toml` 中 `models` 指定的必需 ensemble；CMA 等单成员确定性模型不参与。
2. ECMWF、NCEP/GFS、DWD/ICON 分为独立家族；未知模型按自身名称形成独立家族。
3. 同一家族若出现多个 selector，先对 selector 概率等权，再对家族等权。
4. `family_raw` 使用原始成员。
5. `family_corr` 对每个模型成员使用与现有影子校正相同的站点 × lead bias 和 spread
   inflation，再执行家族平均。
6. 两个概率都写入 snapshot；Hold 开仓时同时写入订单，供结算后比较 Brier。

### 晋级规则

F1 至少积累 100 个带市场中价的已结算 Hold 样本后才裁定。只有同时满足以下条件，才允许
讨论将它升级为新的独立交易实验：

- family corrected Brier 低于 raw 和市场中价；
- 按城市、lead、方向拆分后改善不是由单一城市或单日驱动；
- MAE 仍满足站点白名单门槛；
- 使用新的 experiment 名称和不可变起始边界，不能改写 Hold 历史。

## 交易规则

### 当前 Hold，不变

- 只做次日盘；城市必须通过黑名单和站点映射。
- 默认只开 NO；YES 继续受配置关闭。
- 先用 Gamma 预筛，再以 CLOB 可成交 top-of-book 复价。
- 动态 taker fee 后净 edge 必须至少 8%，raw edge 必须低于 30%。
- 入场价格至少 10¢，Kelly 取 0.25 倍，并受单笔、盘口深度、事件仓位数和总敞口限制。
- 持有到结算；只有 METAR 数学击穿时按可成交价格退出。

### F1

- 只读、只记录、不开仓。
- 前端不得将 F1 divergence 标为“机会”或“信号”。
- 无新鲜站点校准时仍记录 family raw，family corrected 留空。

## Phase 3 Maker 下单状态机

真实下单只有在策略门槛通过、看板收紧访问且小额 user-channel 校准完成后才能启用。

```text
LOCKED
  -> SHADOW_REPLAY
  -> USER_CHANNEL_CALIBRATION
  -> ARMED
  -> POST_ONLY_OPEN
  -> WORKING
      -> KEEP
      -> CANCEL_PENDING -> CANCELED
      -> REPLACE_PENDING -> CANCELED -> POST_ONLY_OPEN
      -> PARTIAL_FILL -> WORKING / FILLED
  -> FILLED / EXPIRED / SAFE_HALT
```

硬规则：

- EIP-712 自实现或逐行审计依赖；私钥不进入当前 AWS 纸面服务器。
- post-only，禁止不知情地跨价成为 taker。
- cancel-first replace；旧单未确认取消时不得挂新单。
- client order id 幂等，REST 定期对账，user channel 的 `size_matched` 为成交真值。
- 中价跳变、盘口版本不一致、WebSocket 断线、签名拒绝和 source stale 都进入冷却或
  `SAFE_HALT`。
- 单次追价有 tick 上限；成交后有冷却；不得为了流动性奖励覆盖预报 edge 风险。

## 看板信息架构

保持单页和现有锚点，新增两个审计面板：

1. **模型研究**：显示 F1 采集覆盖、相对 raw 的平均/最大概率变化、四路 Brier
   （raw、市场、现有校正、F1 校正），并明确标注“不参与下单”。
2. **Maker 就绪度**：显示模拟 open/filled/expired、当前所处阶段，以及 signing、user
   channel、私钥隔离和实盘授权状态。

视觉规则：

- 深色、单一绿色状态强调；蓝色只用于研究数据，琥珀色用于门禁或等待。
- 数值使用等宽数字；状态除颜色外必须有文字。
- 375px 下所有指标降为单列或双列，不依靠横向滚动理解核心状态。
- 不把 raw edge、F1 divergence 或模拟 fill rate包装成已验证收益。

## 交付顺序

1. 新增 F1 计算、迁移、snapshot/order 落库和单元测试。
2. 扩展 Brier 汇总与 24 小时采集健康指标。
3. 增加模型研究和 Maker 就绪度面板。
4. 更新 STRATEGY/OPS 口径，运行 fmt、test、clippy。
5. 本地验收完成后再单独决定是否部署生产。
