# A股嵌套跨状态挑战者 v2：研究设计与现有证据审计

生成日期：2026-08-06  
范围：只读研究；不部署、不连接券商、不下单、不自动晋级实盘。

## 结论先行

现有数据足以继续做更严格的 A 股个股日线选股、指数状态识别和个股分钟执行回放，但现有优化脚本不应原样反复运行并把新结果叫作“更优策略”。原因不是算力不足，而是：多个结果已经看过 2022–2026 的表现，继续据此修改参数会污染最终留出；并且现有结果本身显示明显的跨时期衰减。

下一轮应新增一个小范围、可审计的嵌套走样本实现，复用现有流式数据读取和分钟执行模块。参数只允许由 2000–2021 的多个滚动折共同决定；2022–2026 只能做一次性审计，不允许根据其结果回改。由于这段数据已经在旧研究中被观察过，它对新模型也不能再被宣称为统计意义上的“完全未见最终留出”；真正干净的证据只能来自冻结后的持续前向影子样本。

## 已核实的现有证据

| 研究 | 数据与范围 | 关键结果 | 审计判断 |
|---|---|---|---|
| 本地全市场流式优化 v1 | 2000-01-04 至 2026-07-15；6,428 个交易日；17,167,127 行；5,865 个证券；日度点时截面 | 验证期年化 8.45%、Sharpe 1.32、最大回撤 9.00%；2022–2026 留出年化 2.76%、Sharpe 0.62、最大回撤 5.74%，2026 截至样本末为 -3.19% | 样本量合格，但验证到留出衰减明显；不能直接晋级 |
| 全市场点时面板 v4 | 2016–2026；10,615,276 行；5,787 个证券；含退市自然退出、部分停牌/ST/涨跌停/竞价信息 | 2,304 个候选中没有候选通过验证门槛；被选挑战者验证年化 1.52%、Sharpe 0.39、最大回撤 7.52% | 明确失败；2025–2026 的好结果不能推翻验证期失败 |
| 35 年指数状态挑战者 v1 | 1990–2026；上证综指、沪深300、创业板指 | 2001–2015 验证年化 5.70%、Sharpe 0.94；2016–2026 留出年化 0.03%、Sharpe 0.03、最大回撤 17.31% | 严重状态漂移；旧式单一动量轮动失效 |
| 历史分钟执行研究 v1 | 个股与指数 1 分钟数据回放；无 ETF 历史分钟、无 Level-2 | 2022–2025 某些执行/状态叠加结果年化约 4%–5%、最大回撤约 3%–5%，但总闸门 `combinedImprovesAllHoldoutMetrics=false` | 可用于执行压力测试，不是可交易性证明 |

这些结果不支持“牛熊市都能保证高收益”。合理目标是：牛市参与上涨，震荡市降低换手，熊市优先保住资本；在不允许做空、缺少可靠衍生品与 ETF 分钟数据时，熊市仍持续获得高正收益并不可作为硬承诺。

## 下一轮挑战者的固定研究协议

### 1. 数据输入

- 个股日线：现有按交易日分区的全量 A 股数据，保留上市、退市、停牌与缺失的自然状态。
- 日度基本面：只使用该交易日当时可见的 `daily_basic` 字段；不得使用事后财报修订值。
- 个股分钟：2000–2025 沪深/京市 1 分钟数据，仅用于 T+1 执行、容量和未成交建模，不用分钟收盘反向生成前一日信号。
- 指数分钟：2000–2025 指数 1 分钟数据，用于已知时点的波动/压力状态；沪深300成立前使用上证综指/深证成指，不得回填不存在的指数历史。
- ETF：现有日线可以做独立日频研究；在 ETF 历史分钟缺口补齐前，不与个股日内执行结果混为一谈。

### 2. 嵌套走样本与防泄漏

只用 2000–2021 做模型选择，采用扩展训练窗和三年外层测试：

1. 2000–2005 训练，2006–2008 测试；
2. 2000–2008 训练，2009–2011 测试；
3. 2000–2011 训练，2012–2014 测试；
4. 2000–2014 训练，2015–2017 测试；
5. 2000–2017 训练，2018–2020 测试；
6. 2000–2020 训练，2021 单年压力测试。

每折允许最多 252 个交易日的历史预热，但预热期不计入收益；信号使用 T 日收盘及更早数据，T+1 执行。候选参数必须在运行前固定，禁止看到 2022–2026 结果后扩展网格。2022–2026 只报告一次审计结果；之后只能依靠新的前向影子数据确认。

### 3. 预先固定的策略结构

挑战者不是一个“猜涨跌”的模型，而是三个相互约束的层：

1. **点时股票排序层**：先只使用现有点时可核验的价值、股息、低波动、12-1/6-1 动量与流动性信号族；不让单一因子支配。只买当时可交易、非停牌、非一字涨停且容量足够的前 20–60 只；只有在 `namechange` 能按日期可靠还原时才加入非 ST 过滤，不能拿当前名称回填历史。单票目标权重不超过 3%–5%。
2. **市场状态层**：仅用当时已知的指数 200 日趋势、20/60 日实现波动率、全市场宽度和近期回撤，将市场分为强趋势低波、强趋势高波、弱趋势低波、压力高波四类。它只控制总仓位与再平衡频率，不直接挑个股。
3. **组合风险层**：目标波动率 8%–12%；单日换手上限；4% 软回撤降仓、8% 硬回撤进入有限冷静期；行业上限只在有点时行业归属时启用，禁止用当前行业标签回填历史；禁止因刚发生的亏损临时修改参数。

熊市的基础动作是降至现金，而不是通过回测虚构“必赚”空头头寸。以后若加入可交易的黄金、债券或跨境 T+0 ETF，必须先以独立历史分钟和折溢价/IOPV数据完成自己的样本外研究，再作为第四层组合分散工具。

### 4. 更真实的执行模型

- 信号日：T 日收盘后生成目标；普通 A 股 T+1 执行并遵守 T+1 卖出约束。
- 默认执行：09:35 起 15 分钟、最高 1% 分钟成交额参与率；做 0.5% 和 2% 压力测试。
- 未成交：超过窗口即撤单并保留现金，禁止按一个人为不利价格强制补齐全部订单。
- 涨跌停/停牌：订单保持未成交；不得用收盘价假装成交。
- 摩擦：区分买卖手续费和卖出印花税；基础、2 倍、3 倍摩擦均需报告；加入与参与率、波动率和开盘跳空相关的冲击函数。
- 局限：1 分钟 OHLCV 仍无法重建真实队列优先级、逐笔部分成交和撤单竞态，因此只称“影子执行估计”。

### 5. 选择目标与硬闸门

不再按单一总收益率排序。内层目标固定为：

所有分项先按预先固定的截尾与标准化规则变换，再计算：  
`0.30×各折Sharpe中位数 + 0.20×最差折Sharpe + 0.15×各折Calmar中位数 + 0.15×正收益年份比例 - 0.10×年度收益离散度 - 0.10×换手惩罚`

候选必须同时满足：

- 六个外层折中至少五折净收益为正，且最差折年化不低于 -3%；
- 各折合并最大回撤不超过 12%，任一折不超过 15%；
- 基础与 2 倍摩擦下年化收益均为正，3 倍摩擦下不发生策略性破产；
- 正收益年份比例至少 65%，单一两年贡献不得超过总利润的 40%；
- 参数邻域稳定：相邻参数的中位表现不能比冠军差超过 25%；
- 分块自助法置信区间、Deflated Sharpe 或等价的多重比较校正后仍不显示为纯数据挖掘；
- 2022–2026 审计仅能做 `GO/NO-GO`，不能触发调参；之后至少 60 个新交易日前向影子样本，并由人工批准。

## 是否直接运行现有脚本

**不建议原样重复运行。**它们已成功证明数据可读、点时面板可构造、分钟执行可回放，但只有单一校准/验证切分，而且最终留出表现已经被观察。原样再跑只会重现旧结果；改变网格后再看同一留出则会产生反向调参。

安全的最小实现是新增 `cn_nested_regime_challenger_v2.py`，复用：

- `local_archive_streaming_optimizer.py` 的日线/日度基本面流式加载器；
- `historical_minute_execution_optimizer.py` 的分钟成员匹配和按时点读取器；
- 但替换为上述六折嵌套选择、状态分层指标、非强制成交和多重比较惩罚。

首轮只跑固定的小网格（不超过 96 个结构候选），先验证数据/交易语义和单元测试，再扩大到最多 256 个候选。预计这是一次离线重计算，不应在 A 股交易时段运行，也不能根据盘中盈亏自动更新参数。

## 当前最准确的状态

- 可以继续优化研究流程；不能保证优化后一定提高未来收益。
- 现有最佳证据更像“低仓位、低波动的防守型股票组合”，不是熊牛通吃的高收益系统。
- 现有挑战者仍保持研究态；真实资金与自动晋级均应锁定。
- 下一步优先级：嵌套走样本实现与执行语义测试 > 扩大参数搜索 > 新增复杂 AI/随机游走预测。
