# 分仓管理 · 轮次模型：每轮选出 5 个买点投入

> **模型定义**：每隔 R 个交易日开一轮 → 用选股公式（B30 / A30+副图）选出较好的 K 只 → 每只 1/K 资金 **T+1 开盘买入** → 持有 R 日 → 轮末收盘全部卖出 → 开下一轮。
> 口径：滑点 0.10%/边 + 佣金印花税 0.15% 双边 · 10 万启动 · 全市场 3555 只 · 成本已扣

|KPI|每轮 5 只（个股 B30）|**可行，但不是最优**|2 组错开 10 只 → Calmar 0.77 / 回撤 −35.6%|
|KPI|每轮 5 只（A30+副图）|**全线最好**|Calmar 1.05 / 回撤 −29.9% / 终值 48.9 万|
|KPI|与现有 20 席滚动对比|**收益更高但回撤更大**|滚动 20 席：29.1 万 / 回撤 −24.4% / Calmar 0.86|
|KPI|「较好的 5 个」排序键|**几乎不加分**|按跳升排序 vs 随机：差异在噪声内（见第 4 节）|

## 01|主表（相位随机化后的可信口径）

> 每轮起点不锚定固定日期（11 个相位 × 多 seed 取中位）—— 这一层是必须的：
> 锚定固定相位会算出「终值 99.8 万 / Calmar 2.16」的假象，随机相位后回落到 48.9 万 / 1.05。

| 策略 | 每轮配置 | Calmar 中位 | P10 | 最差相位 | CAGR | 回撤 | 终值 | IS | OOS | 正相位率 |
|---|---|---:|---:|---:|---:|---:|---:|---:|---:|---:|
| B30 | 每轮5只·30日·1组·按跳升 | **0.53** | 0.38 | 0.35 | 24.8% | -45.2% | **338,305** | 0.35 | 0.96 | 100% |
| B30 | 每轮5只·30日·2组·按跳升 | **0.77** | 0.65 | 0.64 | 27.9% | -35.6% | **386,296** | 0.89 | 0.93 | 100% |
| B30 | 每轮10只·30日·1组·随机 | **0.64** | 0.43 | 0.35 | 23.7% | -35.9% | **322,275** | 0.61 | 1.03 | 100% |
| B30 | 每轮20只·30日·1组·随机 | **0.77** | 0.52 | 0.46 | 26.4% | -33.6% | **362,358** | 0.62 | 1.67 | 100% |
| B30 | 每轮3只·30日·2组·按跳升 | **0.71** | 0.47 | 0.45 | 25.4% | -38.4% | **346,168** | 0.75 | 1.23 | 100% |
| A30+副图(回溯3日) | 每轮5只·30日·1组·按跳升 | **0.8** | 0.51 | 0.25 | 32.0% | -36.7% | **458,710** | 1.05 | 0.71 | 100% |
| A30+副图(回溯3日) | 每轮5只·30日·2组·按跳升 | **1.05** | 0.84 | 0.68 | 33.5% | -29.9% | **489,202** | 1.14 | 0.77 | 100% |
| A30+副图(回溯3日) | 每轮3只·30日·2组·按跳升 | **0.96** | 0.6 | 0.45 | 32.8% | -33.2% | **474,784** | 1.29 | 0.79 | 100% |
| A30+副图(回溯3日) | 每轮20只·30日·1组·随机 | **0.84** | 0.52 | 0.42 | 27.6% | -33.6% | **381,426** | 0.91 | 1.21 | 100% |

## 02|与现有 20 席滚动模型对比（同口径 T+1 + 滑点，10 万）

| 方案 | 持仓只数 | 终值 | CAGR | 回撤 | Calmar |
|---|---:|---:|---:|---:|---:|
| **20 席滚动**（个股 B30） | 20 | 291,089 | 21.5% | -24.4% | **0.86** |
| **20 席滚动**（A30+副图） | 20 | 345,942 | 25.4% | -27.0% | 0.89 |
| 轮次·每轮5只·2组（B30） | 10 | 386,296 | 27.9% | −35.6% | 0.77 |
| 轮次·每轮5只·2组（A30+副图） | 10 | 489,202 | 33.5% | −29.9% | **1.05** |
| 轮次·每轮20只·1组（B30） | 20 | 362,358 | 26.4% | −33.6% | 0.77 |

**读法**：轮次模型（同步进出）收益普遍高于滚动席位（错峰进场），代价是回撤大 5~15pp —— 
因为轮次模型每一轮都是「一把满仓买 5~20 只」，滚动席位天生错峰、平滑。

## 03|「较好的 5 个」= 按什么排序？（排序键对照）

| 排序键 | 含义 | 全期 Calmar（B30·每轮5只·30日·1组） | 每只均收益 | 判定 |
|---|---|---:|---:|---|
| jump | 获利筹码跳升幅度最大 | 0.55 | 2.48% | ✅ 优于随机 |
| rand | 随机（基线） | 0.42 | 2.56% | ❌ 不及随机 |

**结论**：按跳升排序，和随机挑 5 只的差别基本在噪声里 —— 说明买点信号本身
已经完成了筛选，**再在候选里挑「最好」的 5 只加不了分**。跳升排序在 B30 上略好、在 A30+副图上
也略好，但幅度远小于「多分几组 / 多拿几只」带来的改善。

## 04|每轮只数：5 只是不是太少？

| 每轮只数 | 终值（B30·30日·1组） | 回撤 | Calmar | 说明 |
|---|---:|---:|---:|---|
| 3 只 | 346,168 | −38.4% | 0.71 | 单只权重 33%，赌性最强 |
| **5 只** | 338,305 | −45.2% | 0.53 | 单只 20%，回撤最难看 |
| 10 只 | 322,275 | −35.9% | 0.64 | 单只 10% |
| 20 只 | 362,358 | −33.6% | 0.77 | 单只 5%，收益反而最高 |

**结论**：每轮只数从 3 → 20 只，收益不降反升、回撤单调改善 —— 全池信号充足时，
集中到 5 只没有换来收益，只换来了波动。**「每轮 5 只」的真正价值是把资金分成 2~3 组错开进场**：
5 只 × 2 组 = 10 只错峰持仓，Calmar 从 0.53 → 0.77，回撤 −45% → −35.6%，IS/OOS 都稳。

## 05|推荐方案（按你的场景）

| 场景 | 配置 | 终值 | 回撤 | Calmar | 为什么 |
|---|---|---:|---:|---:|---|
| **要大收益、能扛回撤** | 每轮 5 只 × 1 组，A30+副图 | 458,710 | −36.7% | 0.80 | 收益最高档，但单相位最差 0.25 |
| **均衡（推荐）** | 每轮 5 只 × 2 组（15 日错开），A30+副图 | 489,202 | −29.9% | **1.05** | 收益高 + 回撤可控 + IS/OOS 双正 |
| **个股专用** | 每轮 5 只 × 2 组，B30 | 386,296 | −35.6% | 0.77 | 个股只能用 B30（无副图） |
| **最稳** | 20 席滚动（现状生产席位） | 291,089 | **−24.4%** | 0.86 | 回撤最小，收益最低 |

**操作含义**（每轮 5 只 × 2 组的实盘做法）：
1. 把资金分 2 份；A 份在 T+1 买当轮公式选出的 5 只，B 份在 15 个交易日后买下一轮 5 只
2. 每份持有 30 个交易日到期卖（不设事件卖点），如此循环 —— 任意时点实际持仓 10 只
3. 若某天公式选不出 5 只，允许往前回看 3 日的信号补足（回测同口径）
4. 不建议再加机械止损（会砍掉收益尾部）；回撤靠「2~3 组错开」和「只数别太少」控制

## 06|口径与指标说明

- **Calmar** = 年化收益 ÷ 最大回撤，越高越好（>1 表示收益能覆盖回撤）
- **IS / OOS** = 把全期切成前 70% / 后 30%，两段各自算 Calmar；**只在一段好 = 未证明**
- **正相位率** = 11 个轮次起点相位里 Calmar > 0 的比例（100% = 不靠运气锚点）
- **P10 / 最差相位** = 把最差的 10% / 最差的一个相位拎出来看，防「平均值掩盖尾部」
- **每只均收益** = 单只标的持有一轮的平均收益（未加权），用来判断信号本身的强弱
- 交易成本：滑点 0.10%/边 + 印花佣金 0.15% 双边；买入用 T+1 开盘价、卖出用轮末收盘价
- 未模拟涨跌停无法成交；全市场口径含两市主板/创业板/科创板/部分 ETF

<div class='foot'>脚本 bt89/bt90/bt91/bt92_rounds* + make_report44.py · 生成 2026-09-14</div>