突破机器学习的局限(第一部分):缺乏可互操作的度量指标(基础篇)
📘

突破机器学习的局限(第一部分):缺乏可互操作的度量指标(基础篇)

第 1/3 篇

RMSE类度量在收益率建模里的隐形陷阱

做算法交易的人大多默认:用 RMSE、MAE、MSE 这类欧几里得离散度量去评估回归模型,是天经地义的安全做法。但一个被多数 MQL5 云策略忽视的事实是——这些度量指标的一阶导数可以直接用目标均值求解,也就是说,它们本质上在逼模型去拟合「平均值」,而不是去捕捉资产收益率这类厚尾、偏移的分布。 按标准化规则挂 RSI 等指标的从业者,可能空等数月等不到预期信号,账户暴露的市场风险远超设计初衷。同样的问题也藏在机器学习指导方针里:每天往 MQL5 云丢的模型,如果比操控者更早「意识到」度量错配,投资者会迅速撞上远超预期的风险敞口。外汇与贵金属杠杆高、跳空频繁,这类错配带来的回撤可能在一两根 K 线内吃掉多月样本内收益,属典型高风险场景。 哈佛一篇论文给了严格证明:样本均值确实最小化 RMSE;SSRN 上也有同行评审文献专门讨论资产定价里该用哪些替代损失函数。结论很硬——你拿来做模型筛选的回归度量,并不适合直接模拟收益率。下一步该做的,是开 MT5 把历史回测的误差度量从 RMSE 换成分位数损失,看信号频率与最大回撤是否真的改善。

◍ 噪声环境里押均值反而最稳

把预测问题换成一场百人竞猜身高的彩票:你和另外99人争100万美元,规则是猜其余99人的身高,总误差最小者赢。 假设全球平均身高是1.1米,你对每个人都填1.1米。技术上每一次单独预测都错,但总误差可能最小——因为在高噪声、不确定性的样本里,押统计均值往往比逐个硬猜更抗偏差。 这套思想直接对应价格行为里的区间震荡:与其预测每一根K线高低点,不如用近端均值(如ATR归一后的中轨)做基准。外汇与贵金属杠杆高、跳空频繁,均值仅为概率参考,不代表趋势必然回归。

「均值预测为何在回测里「好看」」

设想你要训一个模型去猜标普500的年收益。若它永远只吐出历史均值——大约每年7%,拿 RMSE、MAE、MSE 去量,这笨办法往往比花哨模型分数更漂亮。问题在于,它什么市场逻辑都没学到,只是贴着统计平均线走。 更坑的是,你信赖的验证流程反而在奖赏这种懒惰。RMSE 本质是衡量实值预测偏差的「单位」,对大错特别狠,但不追问错从何来;有些偏差其实指向盈利,却照样被罚。 所以一个完全不懂市场的均值模型,用 RMSE 评判时纸面可能极优,最后只造出数学工整却没法用的东西。外汇与贵金属市场同样有这陷阱,高杠杆下盲信这类指标更易亏穿。

均值预测为何在盘面上失灵

金融序列里塞满了噪声。真正的全球供需、散户情绪、机构挂单厚度这些关键变量根本无法直接观测,模型为了把误差压到最低,数学上最省事的办法就是直接吐出平均值——在普通回归里这确实能最小化均方误差,逻辑上挑不出毛病。 但交易不是统计作业。你的目标是要在看不清的时候还能做出有正期望的动作,而不是把回测里的损失函数刷漂亮。在我们这种盯价格行为的圈子里,这种‘永远猜中枢’的倾向跟过拟合是一路货,只是写模型的人通常不按交易员的生存标准来度量。 分类模型也一样会装高手。它可以在训练时永远押注样本里出现频率最高的那一类,把错误率做得很低;更隐蔽的是,当训练集的最大类恰好和真实总体的最大类重合,外行一看准确率挺高,其实模型只是学会了‘随大流’,并没有识别出任何边缘机会。外汇与贵金属杠杆高、跳空频繁,靠这种伪技能下单大概率会被流动性反噬。

◍ 模型靠作弊刷分,RMSE 照单全收

奖励黑客行为指模型没真正学懂规律,而是用钻空子的方式把指标做漂亮。交易里这种现象很隐蔽:一个看似预测精准的模型,可能只是在玩平均数游戏,本质脆弱得像统计上的空中楼阁。 举个直观例子,模型可以学成「所有人的身高都是 1.1 米」这种结论,对训练集而言误差极小,但毫无泛化意义。RMSE 作为常用回归误差指标,只算数值偏差,不会质疑这个结论合不合理,于是每次都默默接受。 外汇与贵金属市场高波动、高杠杆,若把这类作弊模型接进 MT5 实盘,历史回测好看但Live概率倾向快速崩坏。验证时建议手动抽查极端行情下的预测分布,别只盯 RMSE 数字。

「用 119 个市场验证模型有没有用」

抛开假设,直接拉真实报价来看。通过 MT5 的 Python API 从经纪商端取了 333 个市场的历史数据,先卡一道硬门槛:至少要有四年真实历史。筛完剩 119 个市场,样本量足够挤掉短期运气成分。 在这 119 个市场上各跑两个模型做对照。控制模型什么都不学,永远预测未来 10 天的平均收益率,相当于“瞎猜基线”;预测模型则试图从已有数据里学出规律,去猜同样的 10 日收益。两者放一起,才能看出预测模型是不是真比随机基线多挖到一点信息。 外汇和贵金属这类品种杠杆高、跳空频繁,四年历史里也夹着黑天鹅,结论只代表样本内概率倾向,不能直接当实盘信号。打开 MT5 接好 Python 环境,先复现这 119 个市场的筛选,再跑一遍双模型对照,比看任何回测截图都实在。

常见问题

RMSE只奖励押中平均值的预测,在噪声行情里均值最稳但完全不捕捉突破,实盘该抓的方向全漏掉。换用方向命中率或分位收益偏差来筛模型更靠谱。
那很可能是模型在噪声里无脑吐均值刷分,RMSE照单全收。拿119个市场做样本外验证,看它是否只会在横盘里好看。
可以。小布会跑样本外诊断,标出模型在趋势段的偏离度和方向命中率,直接告诉你它是真有信号还是只会押均值。
短期看押均值在RMSE上最漂亮,但盘面真突破时你会被甩下车。建议只当基线,另开一套捕捉偏离的模型分开评估。
用119个不重叠市场做横向回测,统计它在多少比例上显著优于均值基线,低于六成基本就是废的。