# Team Project LightGBM 第一版回测与改进报告

> 历史口径说明：本报告对应旧版17因子及15个基点成本，按要求不重新回测。后续版本将使用扩充候选因子库，并按买入、卖出各万分之一计算手续费。

## 一句话结论

以沪深300价格指数 `000300` 为业绩基准，当前版本在 2022-05-09 至 2026-07-07 的滚动样本外区间取得约 **10.40% 年化收益、4.33% 年化相对收益**，说明信号有研究价值；但年度稳定性不足、交易成本敏感、Top 50 尾部选择不稳定，尤其 2026 年截至 7 月明显跑输沪深300，因此目前仍是研究基准，不建议直接实盘。

## 数据和回测口径

- 数据源：仅使用 Team Project 数据库，不使用 TLSJ；
- 股票池：沪深 A 股，剔除 ST、观察不足 120 天、过去 20 日平均成交额低于 1000 万元的股票；
- 因子：17 个基于复权价、成交量和成交额构造的量价因子；
- 标签：未来 20 个交易日收益的每日横截面排名；
- 调仓：每 5 个交易日；
- 组合：预测分数最高的 50 只股票，等权；
- 成交：信号产生后的下一交易日开盘成交，开盘涨停视为不可买入；
- 成本：按单边换手扣除 15 个基点；
- 基准：沪深300价格指数 `000300`，使用与策略一致的次日开盘至下一持有期末开盘口径。

注意：这里使用的是沪深300**价格指数**，没有计入成分股分红。后续可以增加沪深300全收益指数作为辅助基准，但主报告仍保留用户指定的 `000300`。

## 训练集、验证集和测试集如何使用

- **训练集**：用于拟合 LightGBM 模型参数；
- **验证集**：用于早停和选择最佳迭代轮数，不计入最终业绩；
- **测试集 / 样本外集（OOS）**：两者在本报告中是同一份数据，只用于生成预测和回测，不参与当期模型训练或早停；
- **隔离期**：训练集与验证集、验证集与测试集之间各留出约 20 个交易日，避免未来 20 日标签跨越边界造成信息泄漏；
- **滚动方式**：5 年训练 + 1 年验证 + 1 年测试，每年向前滚动一次。

## 每一折的实际样本时间

下表列的是实际进入模型或回测的样本日期。由于每 5 个交易日取一次样本，实际日期会与配置边界略有差异；完整的“配置边界 + 实际日期 + 样本行数”已由程序自动写入 `walk_forward_windows.csv`。

| 折 | 实际训练集 | 实际验证集 | 实际测试 / 样本外集 | 调仓期数 | Rank IC | 相对沪深300 |
|---:|---|---|---|---:|---:|---:|
| 0 | 2016-05-04～2021-03-31 | 2021-05-11～2022-03-28 | 2022-05-09～2023-04-28 | 49 | 0.1350 | -3.21% |
| 1 | 2017-05-08～2022-03-28 | 2022-05-09～2023-03-30 | 2023-05-10～2024-04-26 | 48 | 0.1366 | +17.56% |
| 2 | 2018-05-09～2023-03-30 | 2023-05-10～2024-04-03 | 2024-05-08～2025-04-24 | 48 | 0.1048 | +16.40% |
| 3 | 2019-05-06～2024-04-03 | 2024-05-08～2025-04-02 | 2025-05-06～2026-04-29 | 49 | 0.0863 | +3.45% |
| 4 | 2020-05-07～2025-04-02 | 2025-05-06～2026-03-31 | 2026-05-11～2026-07-07 | 9 | 0.1662 | -13.41% |

所有折合并后的实际样本外回测区间为 **2022-05-09～2026-07-07**，共 203 个调仓期。第 4 折只有 9 个调仓期，样本很短，不能单独据此判断最新模型已失效。

## 样本外总体结果

- Rank IC：0.1179；
- ICIR：0.6720；
- 策略年化收益：10.40%；
- 策略夏普：0.52；
- 策略最大回撤：-26.70%；
- 平均单次调仓换手率：68.16%；
- 沪深300年化收益：5.82%；
- 沪深300夏普：0.34；
- 沪深300最大回撤：-29.08%；
- 年化相对收益：4.33%；
- 最终相对财富：1.186。

## 年度表现

| 年份 | 策略净收益 | 沪深300 | 相对收益 | Rank IC | 平均换手率 |
|---|---:|---:|---:|---:|---:|
| 2022（5 月起） | +1.79% | +3.90% | -2.03% | 0.1378 | 44.79% |
| 2023 | -0.77% | -14.86% | +16.55% | 0.1251 | 61.42% |
| 2024 | +11.82% | +11.88% | -0.05% | 0.1035 | 79.27% |
| 2025 | +54.55% | +24.81% | +23.83% | 0.1207 | 75.04% |
| 2026（截至 7 月） | -14.65% | +1.67% | -16.05% | 0.1004 | 76.96% |

## 2026 年表现不好的原因

2026 年不是简单的“IC 完全失效”，而是**市场环境、尾部选股和交易损耗同时不利**。

1. **股票池整体偏弱。** 2026 年所有预测十分位组合的未来 20 日平均收益都为负，全股票池平均为 -1.85%，Top 50 平均为 -2.07%。这说明模型面对的是一个多数可选股票下跌、但沪深300大盘股指数小幅上涨的分化环境。
2. **排序还有信息，但最顶端不稳定。** 2026 年 Rank IC 仍为 0.1004，IC 为正的调仓日占 56%，说明整体排序没有完全消失；但最高分股票的均值没有形成理想的单调优势，Top 50 这种约 1% 的极端尾部选择放大了误差。
3. **可能存在规模和风格偏离。** 当前模型没有行业、市值中性化，而重要特征高度集中在换手率、成交额、波动率和动量。结合“全 A 股票池偏弱、沪深300上涨”的结果，推断策略可能带有小中盘和高交易活跃度暴露。这个判断需要下一版用市值分组和行业归因正式验证。
4. **换手过高。** 2026 年平均单次换手率为 76.96%，15 个基点成本使截至 7 月的收益约少了 2.51 个百分点。在弱收益环境中，成本更容易吞掉有限的预测优势。
5. **2026 年仍是部分年度。** 数据只到 7 月，且最新第 4 折只有 9 次调仓，结论应视为风险警报，而不是完整年度定论。

## 已做的组合诊断

以下比较复用了同一批样本外预测，15 个基点成本下：

| 组合 | 年化收益 | 年化相对收益 | 最大回撤 | 平均换手率 | 2026 年净收益 |
|---|---:|---:|---:|---:|---:|
| Top 50 | 10.40% | 4.33% | -26.70% | 68.16% | -14.65% |
| Top 100 | 14.77% | 8.46% | -20.97% | 63.51% | -11.55% |
| Top 200 | 16.97% | 10.54% | -22.66% | 56.60% | -10.74% |
| Top 50 + Top 100 持仓缓冲 | 10.12% | 4.06% | -26.04% | 55.12% | — |

Top 100/200 在这段历史上优于 Top 50，说明扩大持仓数可能减少极端尾部误差并降低换手。但这是**看过样本外结果后的事后诊断**，不能直接当作新的样本外证据。下一版若改用 Top 200，需要在新的未见数据或仿真实盘中重新验证。

## 改进优先级

1. **先加行业与规模控制。** 增加总市值、流通市值和行业变量；比较行业/市值中性化前后收益，并输出相对沪深300的规模、行业暴露归因。
2. **将 Top 100 和 Top 200 设为下一轮候选。** 在验证集内决定持仓数，不再用测试集选择参数；对 Top 50 只保留基准对照。
3. **降低换手。** 在选股目标中加入换手惩罚，使用进入/退出缓冲区、预测分数平滑、最小调仓阈值，并比较 5、10、15、20 个基点成本。
4. **增加市场状态和风险控制。** 加入沪深300趋势、市场宽度、横截面波动和成交拥挤度；验证在系统性弱市中是否应降低股票仓位，而不是事后硬加择时规则。
5. **扩展非量价因子。** 从 Team Project 增加估值、盈利质量、成长、分析师预期等特征，减少对换手率和成交额的依赖。
6. **改进训练目标。** 比较 Huber 回归、排序损失和分位数/尾部校准，重点提升最高分组的稳定性，而不只优化全截面的 Rank IC。
7. **建立新的最终留出期。** 由于本轮已经查看并讨论了 2022～2026 的样本外结果，严格意义上的下一版应把 2026-08 以后数据作为全新留出集，或先进行一段仿真实盘，防止研究过程反复“适配历史测试集”。

## 当前判断

第一版证明了 17 个量价特征和 LightGBM 能产生一定横截面排序能力，但收益主要集中在少数年份，且受风格、尾部选股和成本影响较大。下一步不应急着换成更复杂的深度学习模型；应先完成规模/行业归因、降低换手，并用严格的验证集选择 Top 100/200。等这套研究纪律跑稳，再用 MLP 与 LightGBM 做公平比较。
