编辑
2025-10-10
金融
00
请注意,本文编写于 66 天前,最后修改于 66 天前,其中某些信息可能已经过时。

目录

移动平均的基本思想
简单移动平均线(SMA)
指数移动平均线(EMA)
EMA 的连续形式与滤波解释
SMA 与 EMA 的数学对比与关系
六、Python 实践与可视化

在时间序列分析与金融数据处理中,“移动平均线(Moving Average,简称 MA)” 是最常见的一种平滑方法。它通过在时间上滑动一个窗口,对过去的数据取加权平均,从而削弱短期波动、突出长期趋势。移动平均线的思想极其简单,但背后蕴含着丰富的数学结构、滤波思想和统计直觉。本文将从数学基础、公式推导、直觉理解与实际应用四个角度,对两种最经典的移动平均线——简单移动平均线(SMA)与指数移动平均线(EMA)——进行深入探讨。

移动平均的基本思想

设有一列时间序列数据 (P1,P2,P3,,Pt)( P_1, P_2, P_3, \dots, P_t ) ,例如每日的股票收盘价或温度记录。由于这些数据常常带有高频噪声,直接观察往往难以把握趋势。移动平均的目的,就是让我们通过“平均”的方式去除噪声,只保留随时间变化的主要趋势。

这种平滑方法从信号处理角度看,本质是一种低通滤波器(Low-pass Filter)。它抑制了频率较高的快速变化(即短期波动),保留了低频成分(即长期趋势)。在金融上,我们会说移动平均帮助我们“看清趋势”;在信号处理中,我们会说它“消除了高频噪声”。

简单移动平均线(SMA)

简单移动平均(Simple Moving Average, SMA)是最直观的形式。它假设在最近的 N 天(或 N 个时间点)中,所有数据点对当前趋势的影响是等权的。数学定义为:

SMAt=1Ni=0N1PtiSMA_t = \frac{1}{N} \sum_{i=0}^{N-1} P_{t-i}

也就是说,当前的平均值 (SMAt)(SMA_t) 是最近 N 个观测值的算术平均。窗口随着时间滑动,每次加入新数据并剔除最旧的数据点。

从数学角度来看,这个计算过程可以被视为一次卷积运算

SMAt=(Pw)t,wi=1NSMA_t = (P * w)_t, \quad w_i = \frac{1}{N}

其中 (wi)(w_i) 是一个长度为 N 的矩形窗口权重向量。这种卷积形式表明,SMA 是一个有限脉冲响应(FIR)滤波器

从统计角度看,SMA 相当于在时间上进行均值估计。如果假设原始数据 (Pt)(P_t) 独立同分布且方差为 (σ2)(\sigma^2),则平均值的方差会缩小为 (σ2/N)(\sigma^2/N)。这表明 SMA 的平滑效果来自于“方差缩减”。

但均值化也带来了问题:滞后lag(lag)。例如对于一条呈上升趋势的曲线,SMA 由于包含较早的低值,会滞后于真实变化。这种滞后大约相当于窗口长度的一半,即 ((N1)/2)((N-1)/2)。这就是为什么在金融图表中,SMA 总是落后于价格曲线。

指数移动平均线(EMA)

指数移动平均(Exponential Moving Average, EMA)是对 SMA 的一种加权改进形式。它不再让所有历史数据的权重相等,而是让权重随时间指数衰减,即越新的数据权重越大,越旧的权重越小。这样可以让平均值对最新变化更加敏感。

EMA 的递推定义为:

EMAt=αPt+(1α)EMAt1EMA_t = \alpha P_t + (1 - \alpha) EMA_{t-1}

其中 (α)( \alpha ) 是平滑系数,取值在 ( (0,1) ) 之间。一般而言,为了让 EMA 与 N 日 SMA 的平滑程度大致对应,我们取:

α=2N+1\alpha = \frac{2}{N + 1}

这一形式体现了 EMA 的递推特征:每一次新的 EMA 值都由当前数据 (P_t) 和前一时刻的 EMA 共同决定。展开该公式可得:

EMAt=αPt+α(1α)Pt1+α(1α)2Pt2+EMA_t = \alpha P_t + \alpha(1 - \alpha) P_{t-1} + \alpha(1 - \alpha)^2 P_{t-2} + \cdots

可以看到,EMA 是对所有历史数据的加权和,只不过权重按指数规律衰减。权重之和为 1,因此它是一个平滑但非均匀的加权平均。它更强调“近期”的信息,这使它比 SMA 反应更快。

EMA 的连续形式与滤波解释

如果我们把时间间隔看作连续的,EMA 的离散递推方程可以看作一阶微分方程的离散形式。假设连续时间下的 EMA 定义为:

τdE(t)dt=P(t)E(t)\tau \frac{dE(t)}{dt} = P(t) - E(t)

其中 (τ)( \tau ) 是时间常数(平滑时间尺度)。解得:

E(t)=1τte(ts)/τP(s),dsE(t) = \frac{1}{\tau} \int_{-\infty}^{t} e^{-(t - s)/\tau} P(s) , ds

这正是一个指数衰减卷积核。这说明 EMA 本质上是连续时间的一阶低通滤波器(IIR Filter)。它的频率响应比 SMA 更平滑,没有矩形窗口引起的“频谱泄漏”,因此在信号处理和控制系统中,EMA(或称为一阶指数平滑器)被广泛使用。

从物理直觉看,EMA 就像一个带有“惯性”的系统:它对输入变化有反应,但不会立刻到达,而是逐渐接近。其反应速度由 (α)( \alpha ) 控制。若 (α)( \alpha ) 较大,EMA 变化迅速但噪声较多;若 (α)( \alpha ) 较小,EMA 平滑但反应迟缓。

SMA 与 EMA 的数学对比与关系

从线性系统理论角度看,SMA 是一种有限冲激响应(FIR)滤波器,而 EMA 是无限冲激响应(IIR)滤波器。FIR 只依赖于有限个过去输入,IIR 则递归地依赖所有历史输入。

SMA 的权重分布是一个矩形函数,即所有过去 N 个数据点权重相等;EMA 的权重分布则是一个指数函数,权重随时间衰减。矩形权重虽然直观,但在频率域会造成较大的泄漏效应;而指数权重在频域表现为单调衰减,因此响应更平滑自然。

两者的滞后量也不同。若以相同平滑程度比较,EMA 的有效滞后小于 SMA。例如,一个 10 日 EMA 对应大约 9 日 SMA 的平滑程度,但滞后减少约 30%。

在经济意义上,SMA 可以理解为“过去平均水平”,而 EMA 更像是“当前趋势的平滑估计”。因此,在快速变化的市场中,EMA 通常更受欢迎,因为它能更快捕捉到价格转向信号。

六、Python 实践与可视化

在 Python 中,我们可以使用 NumPy 实现两种移动平均。SMA 直接用 np.convolve 进行滑动平均即可;EMA 则可以用递推方式实现。

python
import numpy as np import matplotlib.pyplot as plt # 生成模拟价格序列 np.random.seed(0) days = 100 prices = np.cumsum(np.random.randn(days)) + 100 # 简单移动平均 N = 10 weights = np.ones(N) / N sma = np.convolve(prices, weights, mode='valid') # 指数移动平均 alpha = 2 / (N + 1) ema = np.zeros_like(prices) ema[0] = prices[0] for t in range(1, len(prices)): ema[t] = alpha * prices[t] + (1 - alpha) * ema[t-1] # 绘图 plt.figure(figsize=(10,6)) plt.plot(prices, label='Original Price', color='gray', alpha=0.5) plt.plot(np.arange(N-1, len(prices)), sma, label=f'{N}-day SMA', linewidth=2) plt.plot(ema, label=f'{N}-day EMA', linewidth=2) plt.title('SMA vs EMA') plt.xlabel('Time') plt.ylabel('Price') plt.legend() plt.grid(True) plt.show()

从图上可以清晰看到:SMA 曲线更平滑,但明显滞后;EMA 更贴近价格曲线,能够更快地捕捉转折点。 从更广的视角看,SMA 与 EMA 只是加权平均的一种特殊形式。更一般的加权移动平均可表示为:

MAt=i=0N1wiPti,wi=1,wi0MA_t = \sum_{i=0}^{N-1} w_i P_{t-i}, \quad \sum w_i = 1, \quad w_i \ge 0

(wi=1/N)( w_i = 1/N ) 时得到 SMA;当 (wieλi)( w_i \propto e^{-\lambda i} ) 时得到 EMA;当 (wi(Ni))( w_i \propto (N-i) ) 时得到线性加权移动平均WMA(WMA)。这些不同的权重分布对应不同的平滑特性。

在更高层次的平滑算法中,还有双指数移动平均(DEMA)、三指数移动平均(TEMA)、Holt-Winters 平滑、甚至卡尔曼滤波(Kalman Filter)等方法,它们本质上都基于相同的思想:以加权方式结合历史信息以预测或估计当前状态

简单移动平均线(SMA)代表着“均匀记忆”,指数移动平均线(EMA)代表着“加权记忆”。SMA 平滑但滞后,EMA 敏感但可能噪声更多。数学上,SMA 是有限卷积,EMA 是递推指数卷积;从系统理论看,SMA 是有限冲激响应滤波器,EMA 是无限冲激响应滤波器。 理解它们的核心,不仅是掌握两个指标,更是理解“时间序列平滑”的根本思想:过去的信息并非消失,而是以不同权重持续影响现在。

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:MapleCity

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!