
机器学习做交易的坑:具体的失败模式
机器学习做交易的具体坑——数据泄露、环境衰退、过拟合,附特定失败模式和可量化的检测阈值。
交互工具在翻译视图中可能无法使用。
机器学习做交易的坑:具体的失败模式
研究阶段看着不错的 ML(机器学习)交易模型,到了实盘多数会挂,原因都逃不出可预测的几类。这些失败并不玄乎——就是同样五个模式反复出现。用数字阈值把它们识别出来,你就能在资金遭殃之前发现问题。
坑 1:标签泄露
最常见的杀手。例子:在 t 时刻计算的特征里用了 close[-1]、用整段序列的均值做归一化、或者把由目标衍生出来的东西当成特征。症状:样本外 Sharpe 3+,实盘却接近零。测试:2018–2021 训练,2022 测试。如果测试 Sharpe 比训练高出 30% 以上,怀疑泄露,别怀疑自己的水平。
坑 2:随机交叉验证
随机 k-fold 切分会把未来混进训练集。一个预测 2022 时"已经见过" 2023 的模型,毫无价值。修法:用 TimeSeriesSplit,purged gap(清洗间隔)至少等于持仓周期加 5 根 K 线。持仓 5 天的策略,gap 至少 10 根。
坑 3:在测试集上调超参
你试了 200 组超参,挑了测试集上最好的那组——测试集就成了训练集。Deflated Sharpe Ratio(通胀调整夏普比率)就是纠正这个的:试了 N 次,声称显著的 Sharpe 阈值大约按 √(2·ln(N)) 上升。试 200 次之后,你要 Sharpe > 2.5 才算数,不是 1.0。
坑 4:环境衰退
一个在 2010–2019 低波动股市上训练的梯度提升模型,到 2020 就崩了。实盘里监控滚动 60 天 Sharpe;连续两个月低于 0.3 就让模型下线。在滚动窗口上重训只在环境持续时有用——环境切换期重训,等于给错的环境标定了一个模型。
坑 5:特征不稳定
训练里重要性高、但在 walk-forward 各折之间重要性方差很大的特征,不稳健。每折单独算一次特征重要性;排名在各折之间波动超过 5 位的特征,扔掉。稳定的模型需要稳定的特征。
具体的诊断数字
- 训练/测试 Sharpe 差距 > 1.5 倍 → 过拟合或泄露
- Walk-forward 各折 Sharpe 标准差 > 0.8 → edge 不稳定
- 100 笔之后实盘 Sharpe 低于回测 Sharpe 的 50% → 模型坏了,不是运气差
- 特征与目标相关性 > 0.9 → 几乎可以确定是泄露
什么时候 ML 是错的工具
标注样本少于 500、数据不到 3 年、或者你的 edge 是已知的经济关系,就别上 ML。小数据上,一个趋势过滤器加一条风控规则就能干翻深度模型,而且你看得懂它为什么有效——这意味着你知道它什么时候会失效。
纪律不是"加上 ML",而是"在数据、验证、监控都到位之前,拒绝 ML"。
实时行情
打开完整图表 →相关市场数据由 TradingView 提供。
我的笔记
登录后可在本文保存笔记并与社区分享。
下一篇推荐
Quant Research Workflow: Jupyter Notebooks and Feature Engineering
A repeatable quant research workflow using Jupyter notebooks covers feature engineering, validation, and notebook hygiene that produces deployable signals.
阅读更多 →Smart Recommendations