WMA 的计算方法(加权移动平均)
直接答案:什么是 WMA,以及如何计算?
WMA 通常代表 加权移动平均(Weighted Moving Average)。它是一种移动平均,其中 较近的观测值被赋予更大的影响力(或更一般地说,每个观测值被赋予一个 指定的权重)。该计算使用最近数据点的 窗口,生成一个单一的平均值。
标准离散公式为:
WMAₜ = ( Σᵢ₌₀^(n−1) [ wᵢ · x₍ₜ−i₎ ] ) / ( Σᵢ₌₀^(n−1) wᵢ )
其中:
- t 是当前索引/时间步。
- n 是 窗口长度(使用的过去点数)。
- x₍ₜ−i₎ 是在时间 t, t−1, …, t−(n−1) 的数据值(例如,价格)。
- wᵢ 是应用于窗口中每个位置的 权重。
在许多图表惯例中,你选择权重使得 较大的 w 对应 更近 的点,但具体的加权方向取决于你如何定义 i。
机制:参数、输入和示例
1) 需要哪些输入?
要计算 WMA,你需要:
- 一个 时间序列:在一致时间间隔内观测到的值序列 xₜ。
- 一个 窗口大小 n:包含的最近点数。
- 一个 权重规则:一组权重 w₀ … wₙ₋₁。权重通常为正,但一般原则是:权重控制影响力。
一个关键要求是权重及其与时间的映射必须明确。例如,你必须知道 w₀ 是应用于当前值 xₜ 还是最旧值 x₍ₜ−(n−1)₎。
2) WMA 与简单移动平均有何不同?
简单移动平均(SMA) 对所有点一视同仁(所有权重相同)。WMA 通过允许权重在窗口内变化来改变机制。
这意味着两个具有相同 n 的 WMA 计算,如果使用不同的权重规则,仍可能产生不同的结果。
3) 数值示例(含明确假设)
假设:
- 窗口长度 n = 3
- 在时间 t, t−1, t−2 的数据值为:xₜ = 10,x₍ₜ−1₎ = 12,x₍ₜ−2₎ = 14
- 权重随更近的点而增加。使用上述公式,其中 w₀ 乘以 xₜ,选择权重 w₀ = 3,w₁ = 2,w₂ = 1。
计算加权和:
- 分子 = (3·xₜ) + (2·x₍ₜ−1₎) + (1·x₍ₜ−2₎)
- 分子 = (3·10) + (2·12) + (1·14)
- 分子 = 30 + 24 + 14 = 68
权重之和:
- 分母 = 3 + 2 + 1 = 6
因此:
- WMAₜ = 68 / 6 ≈ 11.33
如果你改变权重(例如,使其更极端),结果会更接近权重最大的点。
4) 常见实际说明:“平均”仅在有分母时成立
一些实现实际上会对权重进行归一化(除以总权重)。上述公式通过 Σwᵢ 显式地实现了这一点。
如果你省略归一化,结果将是 加权和 而非平均值。这种区别在比较不同窗口大小或权重集的 WMA 值时很重要。
限制和失效模式:可能出现的问题
1) 权重选择改变行为
WMA 不是固定的“唯一正确计算”。窗口长度 n 和 权重规则 wᵢ 决定输出。
- 如果权重过于集中,WMA 可能对短期噪声反应强烈。
- 如果权重过于均匀,它会接近 SMA 行为,可能滞后更多。
2) 数据频率和时间对齐很重要
WMA 假设序列与一致的时间步对齐。如果你的数据包含缺失点、不规则采样,或你意外混合了不同的时间分辨率,则索引 t, t−1, … 将不再代表相等的时间间隔。这可能会扭曲移动平均的解释。
3) 边缘效应:初始窗口未定义(或处理方式不同)
对于时间 t 小于 n−1 的情况,没有足够的过去观测值来填满窗口。不同实现以不同方式处理此问题(例如,不输出值、使用较小的有效窗口,或延迟开始)。因此,要复现结果,你需要匹配相同的开始/初始化约定。
4) 噪声、成本和执行在实际交易中可能占主导
尽管 WMA 是确定性计算,但在决策中使用它可能受到现实因素的影响,如交易成本、数据修订,以及值的采样/执行方式。历史关系并不自动意味着未来会以类似方式表现,尤其是在波动性状态变化时。
验证和下一步问题:如何检查你的计算
要独立验证你的 WMA 计算是否正确:
- 写下你选择的 n、你的 权重列表 wᵢ,以及每个权重与特定时间位置的映射。
- 显式计算分子 Σ(wᵢ·x₍ₜ−i₎) 和分母 Σwᵢ。
- 确认你的实现除以总权重(归一化)。
- 在信任大型数据集的结果之前,先用小的、可手算验证的数字(如上述示例)测试至少一个时间步。
如果你想,下一步可以比较 不同加权规则 如何改变 WMA 相对于相关平均值(例如,简单 vs 加权)的变化,并澄清窗口长度等设置如何改变输出。