- Experiment: select_num = 1, 2, 3 comparison - Period: 2020-01-10 ~ 2026-06-02 (1546 trading days) - Key findings: - Top-1: highest return (600%), highest drawdown (-25.5%) - Top-3: best risk-adjusted return (Calmar 1.73, Sharpe 1.35) - Top-2: balanced middle ground (Calmar 1.69) - Add rotation/experiment_select_num.py experiment script - Save report to docs/experiments/005_select_num_comparison.md
4.3 KiB
4.3 KiB
实验记录 005: select_num 参数对策略表现的影响
实验信息
| 项目 | 内容 |
|---|---|
| 实验编号 | 005 |
| 实验日期 | 2026-06-02 |
| 实验类型 | A/B/C 对比测试 |
| 研究问题 | diversified=true 模式下,select_num 取 1/2/3 时对策略收益与风险的影响 |
| 配置文件 | rotation/config_simple.yaml (L133 select_num) |
| 实验脚本 | rotation/experiment_select_num.py |
1. 实验背景
策略选股流程
Step 1: 类内竞争 → 每个 market 大类只保留得分最高的1只标的(大类冠军)
Step 2: 跨类排序 → 从大类冠军中按得分从高到低选 Top select_num
核心问题
select_num 控制最终持仓标的数量,直接影响集中度和分散度:
select_num=1:单标的集中持仓,无分散化效果select_num=2:持有 2 个大类的冠军标的select_num=3:持有 3 个大类的冠军标的(当前默认配置)
理论预期:
- 持仓数量越少,集中度越高,潜在收益和波动均放大
- 持仓数量越多,分散化效果越好,回撤更小,但可能引入边际收益较低的标的
2. 实验设计
A/B/C 组配置
| 组别 | select_num | 持仓数量 | 其他配置 |
|---|---|---|---|
| A组 | 1 | 单标的 | 同对照组 |
| B组 | 2 | 双标的 | 同对照组 |
| C组 | 3 | 三标的 | 同对照组(当前默认) |
固定配置(三组相同)
factor:
type: "weighted_momentum"
n_days: 25
rotation:
diversified: true
threshold:
mode: "dynamic"
reference: "931862.CSI" # 短债动量基准
回测区间
2020-01-10 ~ 2026-06-02,共 1546 个交易日
3. 回测结果
核心指标对比
| 指标 | Top-1(A组) | Top-2(B组) | Top-3(C组) |
|---|---|---|---|
| 累计收益 | 600.31% | 369.88% | 302.14% |
| 年化收益 | 37.34% | 28.69% | 25.46% |
| 最大回撤 | -25.53% | -16.93% | -14.74% |
| 夏普比率 | 1.11 | 1.27 | 1.35 |
| Calmar比率 | 1.46 | 1.69 | 1.73 |
| 日胜率 | 54.49% | 55.35% | 55.18% |
| 调仓次数 | 197 | 319 | 405 |
关键观察
收益维度:
- Top-1 累计收益(600%)几乎是 Top-3(302%)的 2 倍
- 集中持仓显著放大了收益,但也意味着更高的单标的依赖风险
风险维度:
- Top-3 最大回撤(-14.74%)比 Top-1(-25.53%)降低约 42%
- Top-2 居中(-16.93%),回撤控制效果明显
风险调整收益(核心指标):
- Calmar 比率:Top-3(1.73)> Top-2(1.69)> Top-1(1.46)
- 夏普比率:Top-3(1.35)> Top-2(1.27)> Top-1(1.11)
- 分散化带来更优的风险收益比
调仓频率:
- Top-1 调仓次数最少(197 次),因为持仓切换需要单标的排名大幅变动
- Top-3 调仓次数最多(405 次),持仓组合中任一标的变化都会触发调仓
4. NAV 曲线对比
5. 结论与建议
核心结论
| 目标 | 推荐配置 | 原因 |
|---|---|---|
| 追求绝对收益 | select_num=1 |
累计收益最高,但需承受更大回撤 |
| 追求风险调整收益 | select_num=3 |
Calmar/夏普最优,回撤可控 |
| 平衡两者 | select_num=2 |
收益与回撤的折中方案 |
实践建议
- 当前默认配置
select_num=3是合理的选择,Calmar 比率最优,适合长期持有 - 若资金规模较小、风险承受能力强,可考虑
select_num=1追求高弹性 select_num=2的 Calmar(1.69)与 Top-3(1.73)非常接近,但收益更高(369% vs 302%),值得进一步观察
6. 实验数据位置
results/experiment_select_num/
├── select_1/
│ ├── simple_rotation_nav.csv
│ ├── simple_rotation_signals.csv
│ ├── simple_rotation_detail.json
│ └── simple_rotation_metrics.json
├── select_2/
│ └── ... (同上)
├── select_3/
│ └── ... (同上)
├── select_num_comparison.png # 指标对比柱状图
├── select_num_nav_comparison.png # NAV 叠加曲线图
└── experiment_metrics.json # 三组指标汇总

