技术指标和数字滤波器(基础篇)
◍ 指标背后其实是数字滤波器
在 MT5 里,绝大多数技术指标本质上就是一类数字滤波器:把原始价格序列喂进去,按特定差分或卷积规则吐出平滑后的输出。理解这一点,你就不会再把均线、MACD 当成神秘黑箱,而是能直接改它们的系数。 以简单移动平均为例,它等价于一个矩形窗 FIR 滤波器,对窗口内 N 个样本等权求和。N 越大截止频率越低,高频噪声衰减越强,但相位滞后也越明显——这是外汇与贵金属短线交易里必须权衡的高风险代价。 打开 MT5 按 F4 进 MetaEditor,新建一个自定义指标把下面代码贴进去,就能直观看到滤波输出与原始收盘价的偏差。
「把指标当成数字滤波器看」
代码库里堆了几千个指标,大量只是彼此微调的变体。盯着图表肉眼比对几小时后,自然会想:有没有更客观的办法横向比出优劣?答案是有,前提是先换个视角——指标本质就是数字滤波器。 维基百科对滤波器的定义是物理阻隔某些物质、放行其他的装置;放到交易里,指标就是在阻隔噪声价格波动、只留出你想看的“关键对象”。数字滤波器的严格说法,是在离散时间信号上做数学运算、削弱或增强某些成分的系统。 终端上的价格就是典型的离散信号:H1 每 60 分钟才记一个值,M5 每 5 分钟记一个,并不是连续流。顺着这个框架,很多常见指标其实都属于线性滤波器。本文后续要比的,正是这一类指标的客观参数,而不是靠眼睛看哪条线“顺眼”。
周期与频率在K线上的换算
任何曲线都能拆成一组正弦波的叠加,这条结论在价格序列里同样成立。所谓振动周期,就是波形在同方向经过同一位置的两点间的时间间隔,它是频率的倒数。用柱线来算最直观:一段波在 10 根 K 线内走完一整圈,第 11 根就是下一周期起点,此时周期 T=10(柱),频率 f=1/10=0.1(1/柱)。 若切到分钟图,T=60×10=600 秒,对应 f=1/600≈0.001667 Hz。物理里常用秒和赫兹,数字滤波器里直接用计数(柱)更省事,需要时再乘秒数即可。 把 7 条周期分别为 10、20…70 柱、振幅相同的正弦波叠在一起,肉眼很容易混;它们的频谱里最小频率是 0(常数段),最大到 0.5(1/柱)。周期方向正好反过来,下限 2 柱、上限无穷大——因为按 Nyquist–Shannon 采样定理,一个正弦波至少吞 2 根计数才能被描述,0.5 来自 1/2。 下面这张对照表能止住概念混淆:周期 100/50/16/10/4/2 分别对应频率 0/0.01/0.02/0.0625/0.1/0.25/0.5。外汇与贵金属波动高风险,用柱数代换频率时务必先在 MT5 历史数据里手动数一遍周期,别直接信默认参数。
◍ 从正弦波叠加看四类数字滤波器
假设我们要从混合信号里拿掉周期小于 50 根 K 线的正弦波。若已知各初始分量,分离很容易;若只拿到叠加总和,就得用截止频率 1/45(1/柱)的低通滤波器(LPF)把慢成分留下来。 反过来,若只保留周期 10、20、30 的快波,应上截止频率 1/35(1/柱)的高通滤波器(HPF)。想框住周期 30、40、50 这一段,要用截止 1/25 与 1/55(1/柱)的带宽滤波器(BF);同样两个边界也能做带阻(RF),把这段中间波挖掉。 上面都是理想滤波器。实际器件在通带和阻带之间有过渡带,斜率按 dB/octave 或 dB/decade 计——倍频程是频率翻倍区间,十倍频程是乘十区间。截止频率通常取频谱上 -3 dB 处。 阻带外的带外抑制以分贝表达,通带内还会出现差拍扭曲:某些频率振幅被放大、某些被压小。下表可直接换算,例如要 60 dB 抑制,查 20 dB=10 倍与 40 dB=100 倍相乘得 1000 倍衰减。 dB | 振幅比
- 5 | 1.06
- | 1.12
- | 1.41
- | 2
- | 3.16
- | 10
- | 31.6
- | 100
- | 1000
外汇与贵金属价格序列高频噪声重,实盘用这类滤波先开 MT5 用正弦叠加脚本验证过渡带宽度,再决定参数,杠杆品种回测偏差可能放大。