# C07 波动率目标动量研究 · v0.33

本版本把候选策略库中的 C07 实现为独立历史研究。入口 `/research/c07`，支持工作区自选现货币种、4h / 日线、历史采集、快照导入、回测、滚动验证、实验登记和研究包复算。C07 尚未进入实时统一信号、策略准入、影子观察、通知或交易执行。

## 来源与补充定义

原卡 `C07/ext_vol_scaled_momentum_v1.md`，sourceId `ext_vol_scaled_momentum_v1`，SHA-256 `f57f450a78514cd30525db9d9e0b6a8cd2750a50983a91f684611c80fbffe595`。卡片在 `selected-source-cards.zip` 中原样保存。原卡主要提供 BTC 日线、30 天回看、20 期波动率、0.4 年化波动目标、1.0 仓位上限，没有定义可直接执行的止损条件。

原卡自报收益及 CAGR 存在口径疑点，本实现不声称复现该收益。跨币种及 4h 是研究适配。以下规则为明确补充，完整机器定义见 `/integration/c07-rules-v033.json`：

| 项目 | 冻结定义 |
| --- | --- |
| 方向 | `log(close[t] / close[t - days × barsPerDay]) > 0` 持多头；否则现金 |
| 动量 | 固定基线 30 个日历日；4h 为 180 根，日线为 30 根 |
| 波动率 | 最近 20 根收盘对数收益，样本标准差 n−1，年化乘 `sqrt(365.25 × barsPerDay)`；需要 21 个收盘价 |
| 20 期口径 | **20 根 K 线**；4h 约 3.33 天，日线 20 天；不同于旧 M02 的 20 天窗口 |
| 目标仓位 | `min(1, 40 / max(年化波动率百分数, 5))`；最高 100%，只做现货多头 |
| 时序 | UTC 每日最后一根收盘观察指标；下一根开盘成交 |
| 调仓 | 开盘持仓占权益与目标相差超过 2 个百分点才调仓；入场不受阈值限制 |
| 退出 | 日末动量不为正时次根开盘退出；无自造 ATR 止损或止盈 |
| 成本 | 买卖均收手续费并计算不利滑点；不借款、不加杠杆、不计资金费及现金利息 |
| 结算 | 初始资金 10,000 USDT；区间末按末根收盘价计成本平仓 |

40% 是波动率控制目标，不是收益目标，也不保证未来实现波动率等于 40%。仓位变化和价格跳空会影响风险，收盘回撤不能替代盘中风险。

## 两类结果分开展示

1. **全区间回测**：预热 260 根后使用固定 30 天动量；对照为相同方向的固定满仓、满仓买入持有及成本压力。
2. **滚动验证**：365 天训练、1 根隔离、90 天测试。训练仅比较 24 / 27 / 30 / 33 / 36 天动量，按目标波动仓位的扣费 Sharpe 排序；至少 5 笔完整交易且 Sharpe 有效才参与。并列时优先离 30 天最近，再选较小值；都不合格时回退 30 天。选择过程中不读取测试或以后数据。

训练和测试均空仓起步并期末结算。测试区间不重叠，窗口之间有 1 根隔离，尾部不足完整窗口的数据不参与滚动评估。测试净值按初始 100 链接，是研究指数，不是连续真实账户。各窗口成交明细独立以 10,000 USDT 起算；汇总费用、滑点、换手率按链接窗口起始权益加权。平均仓位采用各根收盘持仓、末根强制平仓前的观测值；曲线末点显示平仓后的现金。

滚动结果包含训练选参目标仓位、固定 30 天目标仓位、相同选参方向固定满仓、满仓买入持有及选参成本压力。成本压力额外增加手续费 10 bp、滑点 5 bp，各项上限 100 bp。固定满仓对照只在入场分配，无每日仓位调整。

日线至少 716 根、4h 至少 2,991 根连续已收盘数据；页面采集上限 1095 天。数据已可见，滚动验证不等于盲测样本外证据。

## 实验记录与复算

沿用现有登录、工作区隔离、角色权限、CSRF、限流与审计。运行前登记不可变配置、规则哈希、快照描述和成本；成功后仅提交摘要，失败、取消、中断均留痕。同一实验终态不允许覆盖；复算建立新记录。未结束尝试 15 分钟后显示中断。全部研究共用每工作区 200 条上限。

独立版本：`c07-research-0.33.0` / `research-experiment-0.33.0` / `c07-validation-0.33.0`。独立研究包格式 `trendlab-c07-package-v1`，包含快照、配置、全部曲线、训练选择、成交、摘要及哈希；不超过 32 MiB。导入先检查结构和哈希，重新计算后才展示收益；浮点比较容差 `1e-8 + 1e-10 × max(abs(a),abs(b))`，同时报告精确哈希是否相同。

服务器只验证摘要结构、版本和预登记范围，**没有重新计算收益**。哈希证明内容一致，不证明文件来源真实。原始 K 线不写入数据库，关闭页面前应下载研究包。

离线复算（安装项目锁定依赖后）：

```sh
node --experimental-strip-types scripts/reproduce-research.mts --file c07-package.json --out c07-reproduction.json
```

输出文件须不存在，避免覆盖已有证据。旧 v0.27 / v0.28 / v0.29 研究包继续使用原格式和原五策略引擎；C07 不混入其历史报告、组合或生命周期准入。

## 固定数据验证与边界

`c07-frozen-results-v033.json` 是现有 BTC / ETH / SOL 六份历史文件的复算摘要，先逐份核对原 manifest SHA-256。文件采集于 2026-09-20，本次没有获取新市场数据。该批固定文件跨度大于页面单次采集上限，使用离线 `runC07` 直接验证，因此不伪装为新采集的页面研究包。

结果同时存在正、负滚动收益和较大回撤。此实现完成研究能力，不据此授予策略准入或自动执行资格。下一阶段可另立 M03 风险平价研究；C07 后续准入仍需独立证据与观察。

## 备份、恢复及回退

数据库不新增表，业务备份仍为 43 表。当前离线恢复工具为九文件：`trendlab-recovery.mjs`、`recovery-codec.mjs`、`recovery-schema.json`、`lifecycle-recovery.mjs`、`lifecycle-rules-v030.json`、`account-recovery.mjs`、`billing-recovery.mjs`、`billing-sandbox-model.mjs`、`c07-rules-v033.json`。将它们放在同一目录。

恢复检查 C07 冻结规则、数据边界、窗口选择、指标范围和终态摘要；隔离措施沿用 v0.32。旧 v0.32 八文件原样冻结于 `/integration/v032/`。`release-v033.json` 新增 `c07-momentum-v1` 兼容要求；即使表结构相同，也不能直接回退到不识别 C07 记录的版本。兼容工具只检查，不执行部署。
