网格交易选股模型 — 全版本技术档案
本文档汇总项目从 v1.0 至 v6.7 所有版本的模型参数、训练数据、交叉验证指标和回测绩效,按版本时间线组织。
一、总体概览
1.1 版本演进主线
1.2 当前生产基线
| 组件 |
版本 |
核心指标 |
| Rank |
v6.3 原始 |
Spearman 0.5355 |
| Top |
v6.3 原始 |
PR-AUC 0.3389, Top5命中率 100% |
| Stacking |
v6.3 原始 |
Spearman 0.6932 |
| Meta Ranker |
v2 (1288条训练) |
Spearman 0.7663 |
| v6.4 整体回测 |
— |
收益 152.15%, 回撤 -10.10%, 夏普 2.1583 |
二、v1.0 — 原型验证
2.1 基本信息
| 属性 |
值 |
| 版本号 |
v1.0 |
| 阶段 |
原型搭建 |
| 模型类型 |
随机森林 (RandomForestRegressor) |
| 核心任务 |
验证“用机器学习预测网格匹配次数”的可行性 |
2.2 训练数据
| 属性 |
值 |
| 股票数量 |
76只 (v1.0) / 116只 (v2.0增强版) |
| 数据天数 |
121个交易日 |
| 标签 |
网格成交次数 (买卖笔数) |
| 特征数 |
人工设计,早期版本 |
2.3 模型性能
| 指标 |
v1.0 (人工评分) |
v2.0增强版 (随机森林) |
| 建模方法 |
人工加权评分 |
随机森林 (200棵树) |
| 交叉验证 R² |
— |
0.661 |
| 全量拟合 R² |
0.776 |
0.935 |
| MAE |
4.62次 |
1.59次 |
| 相关性 |
0.776 |
0.969 |
2.4 关键发现
- 机器学习预测网格匹配次数可行
- 随机森林替代人工评分后,全量拟合 R² 从 0.776 提升到 0.935
- v2.0 新增 12 个特征维度(布林带、RSI、MACD、KDJ、CCI 等),但传统技术指标重要性较低(均排名 19 位之后)
三、v2.x — 全市场扩展 + 市值因子
3.1 基本信息
| 属性 |
值 |
| 版本号 |
v2.0 ~ v2.1.1 |
| 阶段 |
规模扩展 |
| 模型类型 |
LightGBM (回归) |
| 核心任务 |
从 278 只扩展到全市场 1,404 只,验证策略全市场有效性 |
3.2 v2.1.1 训练数据
| 属性 |
值 |
| 训练股票数 |
1,404 |
| 样本总数 |
30,831 |
| y 均值 |
2.61 |
| 零值率 |
41.6% |
| 特征集 |
20维 (17基础 + 3市值因子) |
| 市值因子 |
ln_float_mv, mv_vol_interact, small_cap_premium |
3.3 模型性能
| 指标 |
v2.0 (17特征) |
v2.1.1 (20特征) |
| 验证 MAE |
1.5931 |
1.5838 |
| 验证 R² |
0.1846 |
0.1978 |
| 回测平均匹配 |
6.06 |
6.47 |
| 回测胜率 |
95.2% (20/21) |
75% (18/24) |
3.4 关键发现
- 市值因子有效——小市值股票弹性更大
- 第一次尝试“让 Rank 的预测值作为 Top 的输入特征”
- 股票池从 278 扩大到 1,404,回测更严格但胜率依然稳健
四、v3.x — 特征消融与精简
4.1 基本信息
| 属性 |
值 |
| 版本号 |
v3.0 ~ v3.6 |
| 阶段 |
特征工程 |
| 模型类型 |
LightGBM (Rank 回归 + Top 分类 + Stacking 融合) |
| 核心任务 |
从 36 个特征消融到最精简有效的集合 |
4.2 特征消融路径
| 版本 |
特征数 |
核心变化 |
Top50命中率 |
Spearman |
| v3.3 |
36 |
新增网格触碰/趋势/价格位置特征 |
66.35% |
0.5933 |
| v3.6 |
30 |
移除重要性最低的6个特征 |
66.47% |
0.5923 |
| v3.7 |
35-33 |
引入负向指标(流动性枯竭等) |
66.96% |
0.5929 |
| v3.8-C |
34 |
引入大盘独立因子(amplitude_uniqueness_20d) |
66.47% |
0.5923 |
4.3 v3.6 特征重要性 Top 8
| 排名 |
特征 |
重要性 |
| 1 |
in_grid_range |
60.2% |
| 2 |
avg_daily_amp |
9.8% |
| 3 |
high_amp_days |
5.5% |
| 4 |
volatility_20d |
4.0% |
| 5 |
price_std |
2.3% |
| 6 |
price_cv |
2.3% |
| 7 |
atr_pct |
2.2% |
| 8 |
volatility_60d |
1.5% |
4.4 关键发现
- 特征不是越多越好:删除 6 个低重要性特征后 Spearman 微升至 0.59
- 传统技术指标(RSI、MACD、KDJ、CCI 等)合计重要性 < 6%
- 负向指标中只有
liquidity_drying_up_20d 被模型充分吸收
- 情绪因子对 Rank 有效(Spearman +0.03),但对 Top 始终无增益
五、v4.x — 三模型协同架构
5.1 基本信息
| 属性 |
值 |
| 版本号 |
v4.0 ~ v4.1 |
| 阶段 |
架构升级 |
| 模型类型 |
LightGBM (Rank 回归 + Top 分类 + Stacking 融合) |
| 核心任务 |
确立三模型协同架构 |
5.2 v4.1 模型性能
| 模型 |
指标 |
值 |
| Rank |
Spearman |
0.5355 |
| Top |
PR-AUC |
0.3389 |
| Top |
Top5命中率 |
100% |
| Top |
Top10命中率 |
100% |
| Stacking |
PR-AUC |
0.4953 |
5.3 v4.1 回测绩效
| 指标 |
值 |
| 期末总资产 |
141,208 |
| 总收益率 |
135.35% |
| 最大回撤 |
-19.16% |
| 最大回撤日期 |
2024-02-05 |
| 夏普 |
1.5960 |
| 胜率 |
94.31% |
| 总交易次数 |
1,163 |
5.4 关键发现
- 三模型协同比单模型显著提升
rank_predicted_rounds 在 Top 中重要性排第 1 (11.7%)
- Top 模型 100% 命中率,头部精选能力极强
- v4.1 的 Top 模型是后续所有版本中 Top5/Top10 精准度的标杆
六、v5.x — 情绪因子与模型协同突破
6.1 基本信息
| 属性 |
值 |
| 版本号 |
v5.0 ~ v5.4 |
| 阶段 |
特征深化 |
| 模型类型 |
LightGBM |
| 核心任务 |
引入恐慌/贪婪情绪因子,让模型感知市场环境 |
6.2 情绪因子探索路径
| 版本 |
特征 |
效果 |
| v5.0 |
恐慌期弹性因子(抗跌型) |
Rank Spearman +0.03, Top 无增益 |
| v5.1 |
恐慌期弹性因子(高弹性型) |
反弹强度比振幅放大更有效 |
| v5.2 |
贪婪期独立因子 |
Rank 受益, Top 仍然无增益 |
| v5.3 |
放宽情绪阈值 |
Spearman 0.5342(Rank 最强), 但 Top PR-AUC 依然无法超越 v4.1 |
6.3 v5.4-E — 模型协同突破
| 模型 |
指标 |
v5.4-E |
vs v4.1 |
| Top |
PR-AUC |
0.3290 |
+0.0307 |
核心改进:把 Rank 模型的预测值(rank_predicted_rounds)作为 Top 模型的第 35 维输入特征,分层标签 + 头部权重训练。
6.4 关键发现
- 情绪因子对 Rank 持续有效,但对 Top 始终无增益——Top 做头部精选,情绪信号在头部样本上区分度不足
- “让 Top 站在 Rank 肩膀上”是 v5.x 最重要的突破
- 情绪因子更适合做负向过滤(识别该淘汰的),不适合做正向精选
七、v6.x — 交易系统化 + Meta Ranker
7.1 v6.0 ~ v6.1:MLP 尝试
| 版本 |
方法 |
效果 |
结论 |
| v6.0 |
MLP 多任务学习 |
Spearman 0.49, PR-AUC 0.16 |
失败 |
| v6.1 |
知识蒸馏 MLP |
PR-AUC 0.25-0.33 |
不如 LightGBM |
教训:MLP 在表格数据上不如 LightGBM,深度学习不是万能药。之后不再尝试神经网络替代树模型。
7.2 v6.2 ~ v6.3:生产基线固化
| 指标 |
v6.2 (线上版) |
v6.3 (修复版) |
| 期末总资产 |
140,786 |
141,208 |
| 总收益率 |
134.64% |
135.35% |
| 最大回撤 |
-22.44% |
-19.16% |
| 夏普 |
1.4687 |
1.5960 |
| Stacking PR-AUC |
0.4787 |
0.4953 |
v6.3 核心改进:修复 total_share 数据源,4 个市值特征从常数恢复为有效信号。
7.3 v6.4 — Meta Ranker 诞生
| 属性 |
值 |
| 版本号 |
v6.4 |
| 模型架构 |
Rank (v6.3) + Top (v6.3) + Stacking (v6.3) + Meta Ranker (新增) |
| Meta Ranker 输入 |
3维 (latest_close + stacking_prob + rank_pred_rounds) |
| Meta Ranker 输出 |
predicted_profit(预测未来60天网格利润) |
| Meta Ranker 训练样本 |
1,288条(v6.4自身回测产生的真实买入交易记录) |
| Meta Ranker Spearman |
0.7663 |
v6.4 最优参数(规则探索 720 种组合):
| 参数 |
值 |
| 补仓价格区间 |
[9.0, 10.0] |
| 建仓价格区间 |
[8.0, 11.0] |
| 淘汰阈值 |
Top100 |
| TOP_N |
10 |
| 每格股数 |
200 |
| 初始资金 |
60,000 |
v6.4 回测绩效:
| 指标 |
v6.3 基线 |
v6.4 |
| 期末总资产 |
148,976 |
151,292 |
| 总收益率 |
148.29% |
152.15% |
| 最大回撤 |
-19.78% |
-10.10% |
| 夏普 |
1.7362 |
2.1583 |
关键发现:
- Meta Ranker 是 v6.x 阶段最重要的突破——回撤从 -19.78% 降到 -10.10%,夏普从 1.74 提到 2.16
- Meta Ranker 仅需 3 个特征 + 1288 条样本就能产生显著增益
- 用模型替代价格一刀切规则,让模型自己学“什么价买入能赚钱”
7.4 v6.5 ~ v6.7:叶子 Embedding 增强
| 版本 |
核心变化 |
效果 |
| v6.5 |
在 v6.3 训练数据上加入 20 组叶子编码,重训上游 |
Rank 0.74, Top 0.75, Stacking 0.78(全部超越 v6.4) |
| v6.7 |
在 v6.4 训练数据上加入 20 组叶子编码,重训上游 + 复用 Meta Ranker |
上游模型全面超越,但 Meta Ranker 样本不足,回测失败 |
v6.7 上游模型性能:
| 指标 |
v6.4 基线 |
v6.7 |
变化 |
| Rank Spearman |
0.5355 |
0.7357 |
+37% |
| Top PR-AUC |
0.3389 |
0.5353 |
+58% |
| Top5命中率 |
100% |
100% |
持平 |
| Stacking Spearman |
0.6932 |
0.7206 |
+4% |
关键发现:
- 叶子 Embedding 是最有效的特征增强方式——三列新特征包揽重要性前 3 名
- PCA 降维效果远不如叶子 Embedding(Spearman 0.49 vs 0.74)
- Meta Ranker 不能跨版本复用:v6.7 复用 v6.4 的 Meta Ranker 导致回测崩溃(收益 47% vs 152%),因为 Meta Ranker 对输入特征的数值分布极度敏感
八、v7.0 — 收益导向重构(规划中)
8.1 目标
将整条链路的训练目标从“匹配轮数(y_rounds)”改为“总回报(total_return_60d)”,让 Rank/Top/Stacking/Meta Ranker 全链路都学习收益规律。
8.2 与 v6.4 的主要差异
| 维度 |
v6.4 |
v7.0 |
| 标签 |
y_rounds(匹配轮数) |
total_return_60d(总回报 = 已实现利润 + 期末持仓市值) |
| 新特征 |
— |
规模中性化特征(amount_to_mv_ratio 等) |
| 基准指数 |
仅沪深300 |
沪深300 + 中证500 + 中证1000 |
| 训练数据 |
复用 v6.3 旧样本 |
从零重建(需 2018-2026 全市场 K 线数据) |
8.3 当前状态
数据源准备中(需要 2018 年起、沪深主板+创业板的 K 线数据)。
九、全版本回测绩效对比
| 版本 |
期末总资产 |
收益率 |
最大回撤 |
夏普 |
核心改进 |
| v4.1 |
141,208 |
135.35% |
-19.16% |
1.5960 |
三模型协同架构确立 |
| v6.3 |
148,976 |
148.29% |
-19.78% |
1.7362 |
修复 total_share 数据源 |
| v6.4 |
151,292 |
152.15% |
-10.10% |
2.1583 |
Meta Ranker 诞生 |
注:v1.0 ~ v3.x 为早期版本,回测口径与 v4.x 之后不同,不直接可比。
十、全版本关键教训总结
| 教训 |
来源版本 |
说明 |
| 情绪因子适合负向过滤,不适合正向精选 |
v5.x |
对 Rank 有效,对 Top 无效 |
| MLP 在表格数据上不如 LightGBM |
v6.0-v6.1 |
深度学习不是万能药 |
| PCA 丢弃的 8.3% 方差恰好是网格策略的收益来源 |
v6.6 |
线性降维破坏非线性尖峰信号 |
| 叶子 Embedding 是最强特征增强方式 |
v6.5-v6.7 |
3 列新特征包揽重要性前 3,Spearman +0.20 |
| Meta Ranker 是体系最关键一环 |
v6.4 |
用利润预测替代价格一刀切,夏普 +24% |
| Meta Ranker 不能跨版本复用 |
v6.7 |
对输入分布极度敏感,必须基于本版本输出重新训练 |
| 训练数据必须与策略边界匹配 |
v7.0 |
上游评分分布偏移会导致可买标的枯竭 |
| 规则探索需专门为每个模型体系做一次 |
v6.4/v6.5 |
同一参数在不同模型上效果截然不同 |