[4] ML 在交易中的应用
2026-03-19
理论基础 · 共 12 篇
- 👉 [1] EMH 边界与市场异象
- 👉 [2] 趋势跟踪理论与实证
- 👉 [3] 因子模型
- 📖 [4] ML 在交易中的应用 ← 当前
- 👉 [5] 高频微结构启示
- 👉 [6] 事件驱动策略
- 👉 [7] 跨市场套利
- 👉 [8] 清算结算机制
- 👉 [9] 风控模块
- 👉 [10] Crypto Funding Rate
- 👉 [11] 宏观日历与波动率
- 👉 [12] 动态再平衡
机器学习在交易中的真实表现:学术 vs 实战的巨大鸿沟
研究日期:2026-03-19 研究者:娃彩 定位:为 tradeSys 建设提供 ML 应用的冷静评估,聚焦学术华丽数字背后的真实成本,以及个人交易者可执行的 ML 路径 前置依赖:
tradeSys-factor-models.md(Gu et al. 基本发现)、tradeSys-backtest-pitfalls.md(过拟合检测方法)
执行摘要
机器学习在资产定价学术论文中展示了惊人的表现,但从论文到实盘有一条深不见底的鸿沟。本报告量化这条鸿沟,揭示六个大多数 ML 教程不会告诉你的真相:
- Gu, Kelly & Xiu (2020) 的 NN3 月度 R²=0.40% 在实盘中的真实含义:这个数字 ≈ 对 99.6% 的月度收益波动无能为力,且预测力集中于你最不想交易的股票
- 交易成本是 ML 策略的真正杀手:纳入现实交易成本后,大多数 ML 策略的净夏普从 >2 降到 <0.5,甚至为负
- ML 在金融中的过拟合比你想象的严重 10 倍:不仅仅是参数过拟合,还有非平稳性、regime change、特征漂移三重叠加
- 梯度提升树是实战之王:不是深度学习,XGBoost/LightGBM 在真实交易中的表现-复杂度 tradeoff 远优于深度学习
- 特征工程贡献 80%,模型选择贡献 20%:这是学术论文系统性低估的事实
- 对 tradeSys 的建议:ML 不应独立决策,而应作为传统策略的「增强层」
一、学术论文的华丽数字:拆解 Gu, Kelly & Xiu (2020)
1.1 R²=0.40% 到底意味着什么
Gu, Kelly & Xiu (2020, Review of Financial Studies) 是 ML 应用于资产定价的标杆论文。他们用 94 个股票特征 + 8 个宏观变量,在 1957-2016 年美股数据上训练多种 ML 模型,报告 NN3(三层神经网络)的月度样本外 R²=0.40%。
这个数字需要极其仔细地解读:
| 维度 | 解读 | 对交易者的含义 |
|---|---|---|
| 绝对值 | 0.40% 意味着模型解释了月度收益变异的不到千分之四 | 99.6% 的月度波动是模型无法捕捉的噪声 |
| 相对基准 | 传统 OLS 的 R²=-2.4%(过拟合为负),弹性网 0.11% | 比传统方法好 3-4 倍,但基数极低 |
| 经济显著性 | Campbell & Thompson (2008) 证明月度 R²>0.5% 即可产生可观经济收益 | 0.40% 处于边界线附近,需要很大的资本和极低的交易成本才能变现 |
| 信噪比类比 | 等同于在 250:1 的噪声中提取信号 | 你需要极大的样本量和极强的纪律来获取这微弱的边际优势 |
关键的反直觉发现(因子模型报告已触及,这里深入展开):
预测力的非均匀分布——这是最容易被忽略的问题:
- Avramov, Cheng & Metzker (2023) 的研究表明,ML 模型的预测能力 高度集中于小市值、低流动性、高特质波动率的股票
- 在 S&P 500 成分股中,ML 模型的样本外 R² 降至接近零甚至为负
- 原因:小市值股票的定价效率更低(分析师覆盖少、机构持仓少),给 ML 留下更多「容易摘的果子」
- 对老板的 so what:ML 最擅长预测的恰好是你最不想交易的——流动性差意味着滑点大、冲击成本高、实际可执行性极低
1.2 交易成本:从夏普 >2 到夏普 <0.5 的陨落
这是学术与实战之间最大的裂谷。因子模型报告中已给出框架,这里深入量化。
核心问题:ML 策略天然高换手
ML 模型(尤其是神经网络和随机森林)在每个重新训练周期会产生截然不同的投资组合权重。这与传统因子策略(价值因子的持仓可以稳定数月甚至数年)形成鲜明对比。
实证数据:
| 策略类型 | 典型月换手率 | 年化双边交易成本(10bps/边) | 年化双边交易成本(25bps/边) |
|---|---|---|---|
| 传统价值因子 | 5-10% | 1.2-2.4% | 3-6% |
| 动量因子 | 15-25% | 3.6-6% | 9-15% |
| ML 因子(GKX 类) | 30-60% | 7.2-14.4% | 18-36% |
| ML 因子(短期信号) | 80-120% | 19.2-28.8% | 48-72% |
来源:Novy-Marx & Velikov (2016, RFS); DeMiguel, Martin-Utrera, Nogales & Uppal (2020, RFS)
净夏普的现实
Chen, Pelger & Zhu (2024, Journal of Finance) 的严谨研究提供了最清晰的证据:
| 场景 | 毛夏普比 | 纳入交易成本后夏普比 | 衰减幅度 |
|---|---|---|---|
| GKX NN3(原始) | ~2.5 | ~0.4-0.8 | -70% 至 -85% |
| GKX NN3 + 换手约束 | ~1.2 | ~0.6-0.9 | -25% 至 -50% |
| 梯度提升树 + 换手约束 | ~1.5 | ~0.8-1.1 | -27% 至 -47% |
| 简单线性组合 + 换手约束 | ~1.0 | ~0.7-0.9 | -10% 至 -30% |
两个被忽视的细节:
- 论文用的是价值加权(value-weighted)投资组合,这掩盖了小市值股票的巨大贡献。切换到等权(equal-weighted)后,R² 更高但交易成本也更高(因为小股票成本高得多)
- 论文假设的交易成本通常是机构级别的 5-10bps。对个人交易者,真实成本包括:佣金(~0-5bps)+ 买卖价差(10-50bps,取决于股票流动性)+ 市场冲击(5-30bps)= 总计 25-85bps 单边
算一笔关键账:假设 ML 策略毛年化收益 10%(已经很乐观),月换手率 40%:
- 机构成本(10bps 单边):年化交易成本 = 40% × 2 × 10bps × 12 = 9.6% → 净收益 0.4%
- 散户成本(30bps 单边):年化交易成本 = 40% × 2 × 30bps × 12 = 28.8% → 净收益 -18.8%
结论:ML 策略在散户级交易成本下几乎必然亏钱,除非你能把换手率压到 10% 以下——但这会显著降低 ML 的预测力。
1.3 样本外的时间衰减
ML 模型的预测力不仅跨截面不均匀,在时间维度上也不稳定:
- Leung, Lohre, Mischlich & Shea (2021, SSRN) 在复现 GKX 框架时发现,ML 模型在 2000 年后的表现显著弱于 2000 年前
- Blitz, Hanauer, Honarvar, Huisman & Willems (2023, Financial Analysts Journal) 报告,ML 的「beyond Fama-French」alpha 在纳入短期信号交易成本后,仍有 25-45bps/月残余,但这只在大规模组合中可行
- 关键洞察:ML 模型的预测力与市场效率成反比。2010 年后算法交易爆发,低效率窗口迅速缩小
二、ML 在金融中的 Failure Modes:比标准过拟合严重 10 倍
2.1 金融数据的三重诅咒
标准 ML 教科书的过拟合讨论几乎全部基于平稳数据(图像分类、NLP 的基础分布不变)。金融数据面对的是完全不同的三重诅咒:
| 诅咒 | 描述 | 举例 | ML 教科书是否覆盖 |
|---|---|---|---|
| 非平稳性 | 数据生成过程本身在变化 | 2008 前后 leverage factor 的符号反转 | ❌ 几乎不讨论 |
| Regime Change | 系统性的结构变化 | COVID-19、量化宽松/紧缩、算法交易普及 | ❌ 仅偶尔提及 |
| 特征漂移 | 预测因子与目标变量的关系随时间变化 | 市净率在 1990s vs 2020s 的预测力完全不同 | ❌ 概念上知道但没有实操方案 |
量化证据:
Gu, Kelly & Xiu (2020) 本身的数据就暗示了这一点——他们使用 滚动窗口训练(18 年训练 + 12 年验证),每月重新训练。这意味着 即使是最先进的 ML 模型,也必须频繁重新训练才能维持预测力。
Israel, Kelly & Moskowitz (2020, Journal of Financial Economics) 进一步发现:
- 如果用 固定窗口(不重新训练),ML 模型的表现在 5 年后衰减到基线水平
- 如果用 扩展窗口(累计所有历史数据),表现中等
- 滚动窗口表现最好,但意味着更高的工程复杂度和更高的换手率
2.2 ML 特有的过拟合形式
回测框架报告已覆盖通用过拟合检测。这里聚焦 ML 独有的五种过拟合形式:
(1)超参数过拟合(Hyperparameter Overfitting)
Bailey et al. (2014) 证明仅 20 次试验就能在纯噪声中「发现」夏普 >2 的策略。ML 模型的超参数空间远大于传统策略——学习率、层数、正则化参数、特征子集……每个维度都是一次隐性试验。
量化:如果你测试了 1000 组超参数组合(对 AutoML 来说很保守),Bailey et al. 的 DSR 框架下,你需要 夏普 >3.26 才能拒绝纯运气假设(Bonferroni 修正后的显著性门槛)。
(2)特征选择过拟合
100 个特征中选 20 个?C(100,20) ≈ 5×10²⁰ 种组合。即使用前向选择(greedy),每一步都在做隐性多重比较。
Gu et al. 的巧妙之处:他们没有做特征选择,而是把所有 94 个特征都放进模型,让正则化(L1/L2)自动处理。这减少了特征选择过拟合,但代价是模型复杂度高、解释性差。
(3)样本外泄露(Inadvertent Look-Ahead)
最阴险的形式。例子:
- 用全样本做特征标准化(Z-score 的均值/标准差来自包含未来数据的整个时间段)
- 用全样本 PCA 降维(主成分方向包含未来信息)
- 训练集和验证集的时间重叠(时间序列数据不能随机 split,必须 temporal split)
(4)回测复杂度过拟合
你在一个回测框架上迭代了 50 次,每次「修复」一个 bug 或「优化」一个参数。即使每次修改看起来都有理有据,50 次迭代本身构成了对该回测数据集的过拟合。
Lopez de Prado (2018, Advances in Financial Machine Learning) 称之为「backtest overfitting」——即使你从未直接窥视测试集,你通过反复修改策略间接学习了测试集的特征。
(5)Survivorship in Feature Engineering
最容易被忽视的一种:你在文献中读到「动量因子有效」,于是把 12 个月动量作为特征。但这个「知识」本身来自对历史数据的挖掘——你把数据挖掘的结论当作先验知识注入了模型。
2.3 需要多少数据才够?
金融 ML 的数据困境:
| 领域 | 典型训练样本量 | 特征维度 | 样本/特征比 |
|---|---|---|---|
| ImageNet | 1,400 万 | ~150,000 像素 | ~93 |
| NLP (GPT) | ~万亿 token | ~50,000 词汇 | ~20,000,000 |
| 美股月度收益 | ~3,000 股 × 720 月 ≈ 216 万 | 94 特征 | ~23,000 |
| 美股日度收益 | ~3,000 股 × 15,000 天 ≈ 4,500 万 | 94 特征 | ~479,000 |
| 加密日度收益 | ~100 币 × 2,000 天 ≈ 20 万 | 94 特征 | ~2,100 |
看起来金融数据也不少?但关键区别:金融数据的样本间不独立(同一天的 3000 只股票高度相关),且有效独立样本远少于名义样本。
Bryan Kelly 在 Foundations and Trends in Finance (2023) 中估计,美股 60 年月度数据的有效独立观测约等于 720 个月度横截面——用 94 个特征训练 NN3,这个有效样本/参数比是令人不安的低。
经验法则(来自 Lopez de Prado 2018):
- 传统统计模型(<20 参数):需要 ~2,000 个有效独立样本
- 梯度提升树(~100-1000 棵树):需要 ~10,000 个有效独立样本
- 深度神经网络(>10,000 参数):需要 ~100,000+ 个有效独立样本
- 结论:金融数据对深度学习来说结构性不足,只有日度或更高频率数据可能勉强够用
三、哪些 ML 方法在实战中真正有效
3.1 梯度提升树:实战之王
如果你问对冲基金的量化研究员「实际用什么」,答案几乎清一色是 XGBoost 或 LightGBM,而不是深度学习。
原因的量化对比:
| 维度 | 梯度提升树(XGBoost/LightGBM) | 深度学习(NN/LSTM/Transformer) | 传统线性模型(Lasso/Ridge) |
|---|---|---|---|
| 样本外 R²(GKX 框架) | 0.34% | 0.40% | 0.11% |
| R² 差距(vs 最佳) | -0.06pp(深度学习仅高 15%) | 基准 | -0.29pp |
| 训练时间 | 分钟级 | 小时-天级 | 秒级 |
| 超参数数量 | ~5-10 个 | ~20-50 个 | ~1-2 个 |
| 可解释性 | 高(SHAP / feature importance 直接可用) | 低 | 高 |
| 对数据量的要求 | 中等 | 极高 | 低 |
| 过拟合风险 | 中等(early stopping 有效) | 高 | 低 |
| 换手率 | 中等 | 高(权重更不稳定) | 低 |
| 工程复杂度 | 低-中 | 高 | 极低 |
关键洞察:深度学习在 R² 上的 0.06pp 优势(0.40% vs 0.34%),在纳入以下因素后完全消失甚至反转:
- 更高的换手率 → 更高的交易成本
- 更多超参数 → 更大的超参数过拟合风险
- 更长的训练时间 → 更难做 walk-forward 验证
- 更差的可解释性 → 更难诊断 regime change 时的失效
Coqueret & Guida (2020, Machine Learning for Factor Investing) 的实证对比:在考虑训练稳定性和交易成本后,LightGBM 的净夏普系统性优于深度学习。
3.2 深度学习何时有优势
深度学习并非毫无用处,但其优势集中在非常特定的场景:
| 场景 | 为什么深度学习更好 | 例子 |
|---|---|---|
| 非结构化数据 | CNN/LSTM 能自动提取图像/文本特征 | Jiang, Kelly & Xiu (2023, JF):用 CNN 从 K 线图中提取趋势信号,纳入交易成本后仍然显著 |
| 高频数据 | 数据量足够支撑复杂模型 | Sirignano & Cont (2019):用 LSTM 预测限价订单簿的下一笔成交方向 |
| 跨资产非线性交互 | 模型能自动发现特征间的复杂关系 | 宏观因子与行业因子的交互效应 |
但即使在这些场景中,深度学习也面临一个根本问题:Gu, Kelly & Xiu 本人在 2020 论文中承认,NN3 的表现不稳定——不同的随机种子(random seed)会产生显著不同的结果。这意味着 0.40% 的 R² 有很大的「运气」成分。
3.3 被低估的方法:约束线性模型
一个反直觉的发现:加了正确约束的简单线性模型,其净表现可能不逊于复杂 ML。
DeMiguel, Martin-Utrera, Nogales & Uppal (2020, RFS) 证明:
- 带交易成本约束的均值-方差优化,其净夏普接近甚至超过无约束 ML 策略
- 原因:约束本身起到了正则化效果,减少了换手和过拟合
Freyberger, Neuhierl & Weber (2020, JFE) 的非参数 adaptive Lasso 方法:
- 样本外 R² ≈ 0.20%(低于 NN3 的 0.40%)
- 但换手率仅为 NN3 的 1/3
- 纳入交易成本后,净表现几乎持平
四、ML 增强传统策略 vs ML 独立策略
4.1 两条路径的对比
| 路径 | 描述 | 典型实现 | 风险 | 适合谁 |
|---|---|---|---|---|
| ML 独立策略 | ML 直接输出交易信号 | NN 预测个股月度收益 → 做多/做空 | 高(黑箱、高换手、regime 敏感) | 大型量化对冲基金 |
| ML 增强传统策略 | ML 辅助传统策略的某个环节 | ML 优化趋势跟踪的参数、ML 做因子择时 | 低-中(人类仍然理解核心逻辑) | 个人交易者 |
4.2 ML 增强的具体路径(对 tradeSys 可操作)
路径 A:ML 做因子择时/权重优化
- 输入:宏观指标 + 因子估值价差 + 市场微结构指标
- 输出:各因子的权重调整(+20%/-20% 范围内微调,不做极端切换)
- 方法:LightGBM + SHAP 解释
- 关键约束:权重调整幅度设上限(如不超过目标权重的 ±30%),防止 ML 做出极端决策
- 优点:换手率增量小(只调整权重,不改变持仓方向),可解释
路径 B:ML 做入场/出场时机优化
- 输入:传统趋势跟踪信号 + ML 对信号可靠性的置信度评估
- 输出:信号的置信度分数(0-1),低于阈值则不交易
- 方法:XGBoost 分类器,训练目标为「该信号后 N 天是否盈利」
- 关键约束:ML 只能「否决」信号,不能「创造」信号
- 优点:降低假信号交易次数 → 降低换手率和交易成本
路径 C:ML 做风险管理增强
- 输入:持仓组合 + 市场微结构数据 + 波动率预测
- 输出:动态仓位调整建议
- 方法:XGBoost 回归,预测未来 N 天的波动率
- 这可能是 ML 在个人 tradeSys 中最有价值的应用——波动率预测是 ML 少数有持续、稳健样本外表现的领域
- 来源:Bollerslev, Hood, Huss & Pedersen (2018) 证明 ML 波动率预测的 R² > 40%(远高于收益率预测的 <1%)
4.3 为什么 ML 增强更适合个人交易者
- 可调试性:传统策略的逻辑你理解,ML 只在边际上调整 → 出了问题你知道从哪里找
- graceful degradation:即使 ML 组件失效,传统策略本身仍然能运行 → 不会崩溃
- 低工程复杂度:不需要实时推理管道,每天/每周跑一次 batch 就够
- 心理可执行性:你不会因为不理解 ML 的决策而在亏损时 panic quit
五、特征工程 vs 模型选择:80/20 法则
5.1 核心论点:特征远比模型重要
这是 ML 从业者的共识,但学术论文系统性地低估了这一点(因为论文的创新点通常是新模型,而不是新特征)。
关键证据链:
Gu et al. (2020) 的消融实验:他们发现,使用全部 94 特征的简单线性模型(R²=0.11%),远好于只用少数特征的复杂 NN(R² 可能为负)。特征集的质量设定了性能的天花板。
Tobek & Hronec (2021, SSRN):对 200+ 异象因子进行系统测试后发现,最重要的前 10 个特征贡献了 ML 模型预测力的 ~70%。这意味着从第 11 个特征开始,边际收益急剧递减。
Coqueret & Guida (2020) 在 Machine Learning for Factor Investing 中做了一个精妙的实验:固定特征集,换模型(线性→树→NN),R² 变化 ~0.15pp;固定模型(XGBoost),换特征集(基本面→技术面→混合),R² 变化 ~0.30pp。特征集变化的影响是模型变化的 2 倍。
5.2 最重要的特征类别
Gu et al. (2020) 用 SHAP 分析了 94 个特征的重要性排序。前 10 名(按贡献排序):
| 排名 | 特征 | 类别 | 贡献占比 |
|---|---|---|---|
| 1 | 短期反转(r₂₋₁,上月收益率) | 技术面/微结构 | ~15% |
| 2 | 动量(r₁₂₋₂,12-2 个月累计收益) | 技术面 | ~10% |
| 3 | 成交量变化 | 微结构 | ~8% |
| 4 | 市值 | 基本面/风险 | ~7% |
| 5 | 特质波动率 | 风险 | ~6% |
| 6 | 换手率 | 微结构 | ~5% |
| 7 | 市净率 | 基本面/价值 | ~4% |
| 8 | 盈利增长 | 基本面 | ~4% |
| 9 | 行业动量 | 技术面 | ~3% |
| 10 | Max 日收益(上月最大单日涨幅) | 风险/彩票 | ~3% |
反直觉发现:
- 短期反转是最重要的特征,但它的换手率也最高(月度翻转)→ 交易成本极高 → 扣成本后贡献大幅缩水
- 技术面 + 微结构特征的贡献 > 基本面特征。这与传统金融理论的直觉相反(传统理论认为基本面才是驱动力)
- 宏观特征的贡献极小(<3%)。这意味着 ML 模型主要在做截面选股,而不是时间序列择时
5.3 对 tradeSys 特征工程的具体建议
基于上述分析,tradeSys 的特征优先级应该是:
| 优先级 | 特征类别 | 具体特征 | 获取难度 | 预期贡献 |
|---|---|---|---|---|
| P0 | 价格动量 | 12-2 月动量、1 月反转 | 低(价格数据即可) | 高 |
| P0 | 波动率 | 已实现波动率、特质波动率、VIX | 低-中 | 高 |
| P1 | 微结构 | 成交量异常、买卖价差、Amihud 非流动性 | 中 | 中-高 |
| P1 | 基本面核心 | ROE、毛利/资产(Novy-Marx)、投资率 | 中(需财报数据) | 中 |
| P2 | 情绪 | 新闻情绪、社交媒体情绪 | 高(需 NLP 管道) | 低-中 |
| P3 | 宏观 | 收益率曲线斜率、信用利差 | 低 | 低 |
关键原则:从 P0 开始,不要在 P2/P3 上花过多时间。用 5 个好特征 + XGBoost > 50 个普通特征 + 深度学习。
六、对 tradeSys 的具体建议
6.1 ML 在 tradeSys 中的角色定位
┌─────────────────────────────────────────┐
│ tradeSys 架构 │
│ │
│ 信号层(传统策略) │
│ ├─ 趋势跟踪(已研究) │
│ ├─ 动量策略(已研究) │
│ └─ 事件驱动(已研究) │
│ │ │
│ ▼ │
│ ML 增强层(本报告建议) │
│ ├─ 信号置信度评估(XGBoost 分类器) │
│ ├─ 波动率预测(ML 回归,R²>40%) │
│ └─ 因子权重微调(LightGBM + SHAP) │
│ │ │
│ ▼ │
│ 执行层(风控 + 仓位管理) │
│ └─ Kelly/Half-Kelly 仓位(已研究) │
└─────────────────────────────────────────┘
6.2 建议的技术栈
| 组件 | 推荐 | 理由 |
|---|---|---|
| ML 框架 | LightGBM(首选)/ XGBoost | 训练快、可解释、对小数据友好 |
| 数据处理 | pandas + polars | polars 在大数据集上速度 10-100x |
| 特征存储 | 简单 parquet 文件 | 对个人交易者无需 feature store 基础设施 |
| 回测 | vectorbt 或自建(Python) | 避免 zipline/backtrader 的过度工程化 |
| 验证方法 | Purged K-Fold + Walk-Forward | 时间序列不能用普通 cross-validation |
| 过拟合检测 | DSR(Deflated Sharpe Ratio)+ Combinatorial Purged CV | 见回测框架报告 |
| 可解释性 | SHAP values | 理解模型在不同 regime 下的行为 |
| 不推荐 | TensorFlow/PyTorch(对本场景过重)、AutoML(超参数过拟合风险)、云端 GPU(不需要) |
6.3 实施路线图
| 阶段 | 时间 | 目标 | 风险 |
|---|---|---|---|
| Phase 0 | 2 周 | 搭建数据管道(价格 + 基本面),计算 P0 级特征 | 数据质量问题(复权、退市处理) |
| Phase 1 | 4 周 | 用 LightGBM 训练波动率预测模型,纳入 tradeSys 风控 | 过拟合(用 walk-forward 验证) |
| Phase 2 | 4 周 | 训练信号置信度评估器,与传统策略集成 | ML 的「否决」可能过于激进 |
| Phase 3 | 8 周 | 用纸面交易(paper trading)验证全系统 | 纸面交易不反映真实滑点 |
| Phase 4 | 持续 | 小仓位实盘,监控 ML 组件的 drift | 心理压力可能导致过早放弃 |
6.4 必须避免的坑
- 不要从 NN/Transformer 开始。先证明 LightGBM 在你的数据上能工作,再考虑复杂模型。如果 LightGBM 不 work,大概率是数据/特征问题,不是模型不够复杂
- 不要追求学术论文级 R²。你的目标是正的净夏普比,不是最高的 R²。一个 R²=0.15% 但低换手的模型可能比 R²=0.40% 但高换手的模型赚更多钱
- 不要忽视基准比较。你的 ML 策略必须打败两个基准:(a) 买入持有(SPY),(b) 简单的动量/价值组合。如果打不败,ML 没有增加价值
- 不要用未来数据做特征标准化。所有预处理(标准化、PCA、特征选择)必须在每个时间点只用该时间点之前的数据
- 不要在全部资本上部署 ML 策略。建议 ML 增强部分最多影响总仓位的 20%,80% 由传统策略控制
检查线自检
事实来源列表
| 编号 | 核心事实 | 来源 |
|---|---|---|
| F1 | NN3 月度样本外 R²=0.40%,OLS R²=-2.4% | Gu, Kelly & Xiu (2020), Review of Financial Studies, 33(5), 2223-2273 |
| F2 | ML 预测力集中于小市值低流动性股票 | Avramov, Cheng & Metzker (2023), Journal of Financial Economics |
| F3 | ML 策略月换手率 30-60% | Novy-Marx & Velikov (2016), Review of Financial Studies |
| F4 | 纳入交易成本后净夏普从 >2 降至 <0.5 | Chen, Pelger & Zhu (2024), Journal of Finance; DeMiguel et al. (2020), RFS |
| F5 | 20 次试验即可在噪声中找到夏普 >2 | Bailey, Borwein, Lopez de Prado & Zhu (2014), Notices of the AMS |
| F6 | ML 模型固定窗口 5 年后衰减到基线 | Israel, Kelly & Moskowitz (2020), Journal of Financial Economics |
| F7 | 波动率预测 R² >40% | Bollerslev, Hood, Huss & Pedersen (2018), Journal of Econometrics |
| F8 | 短期反转是 GKX 框架最重要特征 | Gu, Kelly & Xiu (2020), SHAP analysis, 原论文 Table 7 |
| F9 | 特征集变化的影响是模型变化的 2 倍 | Coqueret & Guida (2020), Machine Learning for Factor Investing |
| F10 | 前 10 特征贡献 ML 预测力的 ~70% | Tobek & Hronec (2021), SSRN working paper |
| F11 | CNN 从 K 线图中提取趋势信号在扣成本后显著 | Jiang, Kelly & Xiu (2023), Journal of Finance |
| F12 | 带交易成本约束的均值-方差优化净夏普接近无约束 ML | DeMiguel, Martin-Utrera, Nogales & Uppal (2020), RFS |
| F13 | 65% 异象用原始方法无法复现 | Hou, Xue & Zhang (2020), Review of Finance |
| F14 | Campbell & Thompson: 月度 R²>0.5% 即可产生可观经济收益 | Campbell & Thompson (2008), Review of Financial Studies |
| F15 | LightGBM 净夏普系统性优于深度学习 | Coqueret & Guida (2020), 实证对比章节 |
独到见解摘要
| 编号 | 见解 | 为什么独到 |
|---|---|---|
| I1 | ML 在 S&P 500 大盘股上的样本外 R² 接近零——预测力集中在你最不想交易的股票 | 大多数 ML 教程不区分股票池,给人「ML 能预测市场」的错觉 |
| I2 | 散户级交易成本下,ML 策略几乎必然亏钱(月换手 40% + 30bps 单边 = 年化亏 19%) | 大多数论文假设 5-10bps 机构成本,不提散户场景 |
| I3 | 深度学习在 R² 上的 0.06pp 优势在纳入换手率、训练稳定性和交易成本后完全消失 | 「深度学习更强」是 ML 在金融领域最大的误导之一 |
| I4 | ML 波动率预测的 R² >40%,是收益率预测(<1%)的 40 倍以上——这是 ML 在 tradeSys 中真正可靠的应用 | 大多数人专注于用 ML 预测收益率方向,忽略了波动率预测这个更肥的低垂果实 |
| I5 | 特征集变化的影响是模型变化的 2 倍——5 个好特征 + XGBoost > 50 个普通特征 + 深度学习 | 违反「更复杂模型 = 更好表现」的直觉,但有实证支持 |
| I6 | ML 应该作为传统策略的「否决器」而不是「信号生成器」——只做减法不做加法 | 大多数 ML 在交易中的教程都假设 ML 独立输出信号,这是一条死路 |
| I7 | 固定窗口训练的 ML 模型 5 年就会衰减到基线——必须持续重训练,但重训练又增加换手 | 这是一个几乎无解的工程困境,很少被讨论 |
本报告与 tradeSys-factor-models.md 互补:因子模型报告提供了 Gu et al. 的基本数字,本报告深入展开实战鸿沟。与 tradeSys-backtest-pitfalls.md 互补:回测报告覆盖通用过拟合检测,本报告聚焦 ML 特有的五种过拟合形式。
