经验模态分解法介绍(基础篇)
📘

经验模态分解法介绍(基础篇)

第 1/3 篇

◍ 经验模态分解在 MT5 里的定位

经验模态分解(EMD)把非平稳价格序列拆成若干本征模态函数(IMF),每一层对应不同尺度的波动。对做价格行为的人而言,它比直接看均线更能剥离噪声,尤其适合抓贵金属与外汇里的中频结构。 MT5 的 MQL5 环境没有内建 EMD 函数,得自己写递归筛分逻辑。2014 年 3 月那篇原始实现被社区下载 11 623 次、评论 43 条,说明手动做这套分解的需求一直存在。 外汇和贵金属杠杆高、跳空频繁,EMD 拆出的 IMF 只能描述历史尺度,对后市仅作概率倾向参考,不能当方向保证。

「为什么要把行情拆开看」

真实世界里的过程大多不是单一因果,天气图就是典型例子:季节轮换、洋流、太阳活动周期、碳排放量等分量搅在一起,直接读图时彼此遮挡,规律容易被扭曲甚至看不见。 交易里的货币报价也一样,由宏观利差、避险流动、资金面等大量因素叠加而成。把复合过程硬看整体,噪音会盖过信号。 所谓分解,形式上是把整体拆成组成部分;但在信号和序列分析里,它常指拆出原本数据里并不存在的函数。这些函数是人工构造的,却能把隐藏形态暴露出来。 市场分析里很多方法明着暗着都在做同一件事——从过程里挑出某些分量。后面几节会具体过一遍这类分解思路。

从移动平均到小波:序列分解的几种路子

把一段价格序列拆开看,是做量化前处理的基本功。最直白的玩法是在任意货币对图表上叠一条移动平均线(MA),再用原始序列减去这条曲线,立刻得到两部分:平滑后的 MA 线和残差。换成更长周期的 MA 继续对残差做一遍,就能拆出两条 MA 加一个变换后的残差——外汇与贵金属波动高风险,这种拆法只是结构性观察,不预示方向。 傅里叶变换是经典正交分解,基函数固定、频率和幅度在全序列里恒定。问题在于它假设数据静态:若 EURUSD 在 1 小时图里前段震荡后段趋势,变换结果只反映平均状态,区间内的性质变化会被抹平。小波变换改用预设小波基,但每个分量带随时间变化的比例和水平参数,能接住非静态过程。 两类变换数学成熟、算法高效,通用性强。但实盘更想要一种基函数能按数据自适应的分解——既能处理非静态,又不绑死预设波形。后面要聊的正是这类自适应变换,也是本系列的主线。

◍ EMD 把序列拆成自适应的 IMF

经验模态分解(EMD)是希尔伯特-黄变换的第一阶段,它不依赖任何预设基函数,而是让基直接从输入数据里长出来。这和傅里叶、小波很不一样:后两者先用固定波形去套,EMD 只按序列自身形态拆出一组本质模态函数(IMF)。 一个合格的 IMF 要过两道硬杠:极值总数(极大加极小)和零穿越数相等或最多差 1;任意点上,由局部极大包络和局部极小包络算出的均值必须为零。分解出来的 IMF 按频率分阶,排在前面的振荡频率高,越往后频率越低——虽然 IMF 里的“频率”沿时间轴可变,幅度也飘,但用这个词描述性质最直观。 光看文字很难想象 EMD 跑出来长啥样。外汇与贵金属这类高噪声非静态序列用它拆周期分量时风险偏高,结果可能只是概率性参考;直接上 MT5 跑一段代码,比空读定义更有用。

常见问题

可用序列分解把价格拆成不同频率成分,剔除高频噪音后看低频趋势,能减少假突破干扰。外汇贵金属波动大,拆解后仍需结合风控。
移动平均滞后明显,EMD按数据自身节奏拆分量,非农这类突变行情里自适应更强。建议先用历史数据对比两种信号的延迟。
小布盯盘的AIGC已内置序列分解诊断,打开对应品种页即可看到自适应拆分后的分量,不用手写算法。
多数品种拆出3到5个IMF加残差已够用,分量过多会拟合噪声。看各IMF能量占比,低于5%的可忽略。
小波依赖人为选定母小波,EMD直接用极值包络提取本征模态,基函数自适应。但EMD端点效应需注意,可加延拓处理。