创建非滞后数字滤波器·进阶篇
📡

创建非滞后数字滤波器·进阶篇

(2/3)·经典平滑总在末根柱重绘,群集滤波如何绕开流数据的不稳定性陷阱

含代码示例 第 2/3 篇

多数人在 EA 里直接套用移动平均类指标,默认末根柱的平滑值可信,实盘却反复被重绘打脸。报价本质非平稳,历史拟合再漂亮的滤波器,遇到做市商扰动就失效。本篇接着基础篇,把群集滤波怎么在流数据里落地讲透。

「双均线群集滤波器的落地逻辑」

把市场报价当输入序列,用任意周期收盘价就能跑通这套简单群集滤波器。核心假设只有四条:可接近序列非平稳、收盘价本身只是噪声之一、真实价落在前后两根收盘价之间、序列倾向延续上一根的方向。 滤波器选两个都基于最近两根收盘价:SMA 对应「真实价在邻近收盘价之间」的假设,EMA 因为比 SMA 快、对噪声响应更好,用来捕捉序列特性漂移。两者组合后,收盘价按假设直接丢弃,只留 MA 与 EMA 参与决策。 方向判定看前两根群集值 CF(i-1) 与 CF(i-2)。上升时 CF(i-1)>CF(i-2),按 CF(i-1) 相对 MA(i)、EMA(i) 的位置在四个变体里取 MIN/MAX 或单值;下降时镜像处理。例如上升中若 CF(i-1) 同时低于 MA 与 EMA,则 CF(i)=MIN(MA(i),EMA(i)),相当于取两者更贴近噪声下沿的估计。 开 MT5 新建脚本,把下面代码贴入并用 EURUSD 的 M1 收盘价跑一遍,能直接看到 CF 序列相较原始收盘价的平滑差异。外汇与贵金属杠杆高、跳空频繁,该滤波仅降低噪声干扰,不预示价格必然沿某方向走。

群集滤波器的代码与实测表现

指标的 MQL5 实现难度和一根普通移动平均线差不多,没有用到什么冷门技巧,源码随文附上,直接丢进 MT5 就能编译跑。 视频里先看单独跑群集滤波器的效果:在原始序列的锯齿段,滤波线比单根均线更贴、更稳,那种毛刺被压下去的感觉比看公式直观得多。外汇与贵金属行情里这种锯齿极多,高杠杆下误判成本不小。 再把它和 JJMA 拉到同一段数据上比,JJMA 调到了尽量贴合的参数。平均来看,群集滤波器在各类时间序列上的表现和 JJMA 大致相当,但 JJMA 基本到顶了,群集滤波器还留着调参和扩展的余地。 想验证就开 MT5 把两个指标叠一起,找一段震荡行情拖一下参数,体会那条线怎么把噪音吃掉。

◍ 群集滤波的超前假象

群集滤波器本身并不能无延迟地平滑输入序列,想做到这点得用比前文复杂得多的结构。为直观验证,我写了个 GMomentum 测试指标:蓝线是经典动量,红线是用数字群集滤波算法重算后的动量,设置里内置了多种测试模式。 把 Filter 参数设为 Test No.1 Advance 再加载指标,滤波器会专门盯住那些最可能出现“超前”的区域,而不是平滑整条动量线。它并非真能预测,只是噪声扰动让红线偶尔看起来跑在蓝线前头。 对从简单 MA 到 JJMA 的各类指标做同样观察,超前平滑假象都存在;指定周期越小,出现频率越高。最新测试表明,通过改写可能值向量生成与分析方法,该效应还能被人为增强,但这仍是噪声层面的视觉偏移,不是真实领先。外汇与贵金属波动剧烈,拿这类指标直接下单属高风险行为,信号仅作概率参考。

「未完成柱上的眼镜蛇效应」

在 MT5 上加载指标后盯住最后一个未完成柱(current bar),会发现指标线并不始终贴着价格走。价格向上推,指标线可能反向滑落;价格急跌,指标却翘头,这种背离在快速行情或缩小到观察仪(Market Watch 缩放视图)时尤其明显。 该现象源于指标对未完成柱的实时重算:每一笔 tick 进来都改写当前柱的 OHLC,平滑算法随之重算前置权重,于是线体像眼镜蛇舌头一样左右抽打猎物,而非滞后跟随。 实战意义在于,用此类超前平滑指标做即时入场信号时,未完成柱上的反向摆动多是重算噪声,概率上容易假触发。建议至少等柱闭合、线体方向确认后再评估,外汇与贵金属杠杆高、滑点大,此类噪声可能导致频繁止损。

用滤波器压住超前趋势错误

动量初始线有时会朝与趋势完全相反的方向突然“射击”,甚至趋势已经反转它还滞后很久不动,这类噪声直接喂给平滑线就会造成超前趋势错误。逻辑上应该让滤波器把这种走势先放慢,再交给平滑处理。 在 MT5 里加载指标前,把 Filter 参数设为 Test No.2 Smoothing,群集滤波会拆成两段工作。子窗口显示的 GMomentum(Parameter 1, Parameter 2) 中,第二个参数为 -1 时算法专门修复超前趋势错误;若该参数 ≥0,则切到高级平滑设置。 用上下方向键调滤波器灵敏度(指标窗口需激活),能看到灵敏度加大后动量线被平滑且几乎无滞后,到最大平滑时给出可接受的入场参考点。视频里从最小调到可接受值再反向调,现象一致。 平缓行情里多数指标会衰退成近似直线,这里部分设置下也难免;理论上这招可套到任何指标去噪不增滞后,实盘是否划算还待验证。外汇与贵金属波动剧烈、杠杆高风险大,此类平滑仅降低噪声不代表信号必胜。 滤波后初始动量线主峰被压平,趋势线更贴价格且几乎无滞后,原理近似 William Blau 动量体系。整段历史回看结果并不全一致,但动量本就噪多、该指标纯演示无滞后过滤且不重绘,算可接受。

把重绘诊断交给小布盯盘
这些诊断小布盯盘的 AIGC 已内置,打开对应品种页即可看到末根柱重绘概率与滤波滞后秒数,你只管判断信号质量。

常见问题

移动平均基于平稳序列假设,而市场报价非平稳,末样本的不稳定性会扭曲滤波结果,导致延迟与重绘并存。
不是。群集滤波器是一组独立特性的数字滤波器集合,用于实时逼近初始序列;群集指标是另一类现成指标,二者不可混淆。
可以。小布盯盘的品种页内置了重绘与滞后诊断模块,加载自编群集滤波指标后能看到实时平滑偏差。
指某些分解方法试图抵消非平稳扰动,但反而放大端部不稳定性,群集滤波则回避该路径,以参考而非目标处理输入序列。
指为追求零滞后强行修正末柱,诱发虚假信号自我强化,类似干预引发反效果,详见第4节案例。