下载原始研究文稿 ↓

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
02016-05-04~2021-03-312021-05-11~2022-03-282022-05-09~2023-04-28490.1350-3.21%
12017-05-08~2022-03-282022-05-09~2023-03-302023-05-10~2024-04-26480.1366+17.56%
22018-05-09~2023-03-302023-05-10~2024-04-032024-05-08~2025-04-24480.1048+16.40%
32019-05-06~2024-04-032024-05-08~2025-04-022025-05-06~2026-04-29490.0863+3.45%
42020-05-07~2025-04-022025-05-06~2026-03-312026-05-11~2026-07-0790.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.137844.79%
2023-0.77%-14.86%+16.55%0.125161.42%
2024+11.82%+11.88%-0.05%0.103579.27%
2025+54.55%+24.81%+23.83%0.120775.04%
2026(截至 7 月)-14.65%+1.67%-16.05%0.100476.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 5010.40%4.33%-26.70%68.16%-14.65%
Top 10014.77%8.46%-20.97%63.51%-11.55%
Top 20016.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 做公平比较。