Files
obsidian_vault/FleetingNotes/GridSeeker/各版本模型技术参数.md

347 lines
12 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 网格交易选股模型 — 全版本技术档案
本文档汇总项目从 v1.0 至 v6.7 所有版本的模型参数、训练数据、交叉验证指标和回测绩效,按版本时间线组织。
## 一、总体概览
### 1.1 版本演进主线
```
v1.0 (原型验证)
→ v2.x (全市场扩展 + 市值因子)
→ v3.x (特征消融 + 情绪因子)
→ v4.x (三模型协同架构)
→ v5.x (模型协同突破)
→ v6.x (交易系统化 + Meta Ranker)
→ v6.5-v6.7 (叶子Embedding增强)
→ v7.0 (收益导向重构,规划中)
```
### 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.5342Rank 最强), 但 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.1MLP 尝试
| 版本 | 方法 | 效果 | 结论 |
|:---|:---|:---|:---|
| 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 降维效果远不如叶子 EmbeddingSpearman 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 列新特征包揽重要性前 3Spearman +0.20 |
| Meta Ranker 是体系最关键一环 | v6.4 | 用利润预测替代价格一刀切,夏普 +24% |
| Meta Ranker 不能跨版本复用 | v6.7 | 对输入分布极度敏感,必须基于本版本输出重新训练 |
| 训练数据必须与策略边界匹配 | v7.0 | 上游评分分布偏移会导致可买标的枯竭 |
| 规则探索需专门为每个模型体系做一次 | v6.4/v6.5 | 同一参数在不同模型上效果截然不同 |