一种采用纯MQL5语言实现的基于能量学习的特征选择算法(基础篇)
📘

一种采用纯MQL5语言实现的基于能量学习的特征选择算法(基础篇)

第 1/3 篇

◍ 用能量学习挑特征:纯 MQL5 实现思路

在 MT5 里做特征选择,常见做法是相关系数或树模型,但这里走的是能量学习(energy-based learning)路线:把每个特征组合看成一个能量状态,低能量对应更适配行情的结构。 实现完全用纯 MQL5,不依赖 Python 桥接,意味着策略可直接在 EA 或指标里实时跑,避免跨进程延迟。作者 Francis Dube 在 2024 年 11 月 18 日发布的示例,截至统计时点获得 656 次查看、0 条评论,属于冷门但可复现的方向。 想验证可行性,最直接是在 MT5 新建脚本,把候选特征(如不同周期 RSI、ATR 比值)喂进能量函数,观察哪组在近期贵金属小时图上的能量值最低——外汇与贵金属杠杆高、跳空频繁,回测结果仅代表历史概率,实盘可能失效。

为什么要在MT5里做特征选择

做算法交易的人迟早会撞上同一个墙:候选指标几十个,到底哪几个真和下一步价格变动有关。机器学习把数据挖掘搬进金融之后,变量筛选从『拍脑袋』变成了必须解决的前置工程,不然模型要么过拟合、要么在实盘里发疯。 Yun Li 等人提出的 FREL(基于正则化能量的特征加权学习)思路,核心不是简单砍变量,而是给每个候选变量算一个权重,同时兼顾准确与稳定。对 MT5 使用者来说,这意味着你可以把一堆自定义指标丢进脚本,让程序告诉你哪些该留、哪些该降权。 后面我们会用一段 MQL5 脚本把这套逻辑跑起来。外汇和贵金属波动受宏观事件扰动大,特征权重只是概率层面的参考,实盘前务必在策略测试器里用历史数据验证。

「给邻居投票加权重而非平票」

FREL 的预测骨架借自加权最近邻分类:它不靠标签硬统计,而是用样本间距离决定影响力。标准 k-NN 只数 k 个最近邻里哪类多就归哪类,加权版则按距离反比给每张票赋权,离得越近说话越算数。 核心改动在投票环节——近邻的判定贡献随距离衰减,远邻即便类别一致也只起弱约束。这比纯多数表决更抗边界噪声,尤其当训练集密度不均时。 距离度量直接决定权重分布。本方法选用曼哈顿距离(城市街区距离)而非欧氏距离,对特征量纲偏移更钝感。公式上,对测试用例与每个训练案例求各维绝对差之和,再映射为权重 w,训练案例即被参照的历史样本。外汇与贵金属行情序列用此法做状态归类时,需警惕过拟合与滑点干扰,历史近邻相似不预示后市必然重演。

◍ 能量函数怎么给数据打分

基于能量的模型(EBM)把「输入变量配置 + 模型参数」塞进一个能量函数 E(),吐出来一个标量,用来指示这组变量有多「搭」。在回归场景里,E() 可以直接取均方误差:喂进去相关性高的预测变量,输出值偏小;丢进去一组烂预测,均方误差立刻变大。 训练的目标很直白——调参数 w,让「对」的输入拿低能量、「错」的输入拿高能量。目标函数会惩罚一种典型翻车:错误变量配置 x 配上参数 w,算出的能量太低,低到和正确配置分不开,模型就瞎预测了。 所以优化方向是拉开差距:让「最低能量的错误配置」和「最近的正确配置」之间的能量差尽量大。每个样本的损失可以换规则,对数损失、hinge、平方损失、平方指数损失都能塞进同一个框架,具体看任务。外汇与贵金属行情噪声大、跳空频繁,直接套 EBM 前建议先用历史 tick 跑一遍能量分布,确认低能量区是否被样本外突变击穿。

FREL的能量加权落地细节

FREL本质是能量驱动的特征筛选:把 d 个候选预测变量映射到单个目标,前提是这些变量的量纲尺度尽量接近。若直接喂入尺度悬殊的因子,最终权重会严重扭曲,这一步在 MT5 做特征工程时最容易被忽略。 算法要求你先定义一个带权重的能量函数。以均方误差为例,回归模型里每个候选变量配一个权重 w_i,能量 E = Σ w_i·(y_pred−y_true)²。初始阶段所有权重置 1,意味着算法默认各变量同等重要。 核心循环是对 n 个观测值逐一跑加权最近邻:找出低能量(错误配置)与高能量(正确配置)的邻域,用选定损失函数逐样本算损失,再用优化器把目标损失最小化,可选择性加正则化。论文作者用不放回自举改进——每次抽样算一套权重,最终取各 bootstrap 样本权重均值,降低过拟合概率。外汇与贵金属市场波动剧烈、杠杆风险高,该算法筛选出的相关性仅代表历史样本倾向,实盘须小仓位验证。

常见问题

可用能量学习思路给特征打分,让重要特征获得更高权重,过滤掉平票噪声,优先保留对行情区分度强的变量。
在交易终端内做能直接用实盘级数据验证,避免外部回测与真实环境脱节,且能量加权逻辑可随品种随时调参。
小布可读取你的品种数据跑通能量加权流程,自动标出高权重特征,你只需看结果调策略,不用手写底层代码。
加权后近期相似形态影响更大,减少远距离样本搅局,信号倾向更贴合当前波段,过拟合概率下降。
不建议一刀切删除,可先降权观察;贵金属与外汇高风险,建议保留低分特征做对冲,等能量稳定再剔除。