简单移动平均线(SMA)的计算方法

了解SMA是如何计算的,以及哪些输入参数至关重要。

简单移动平均线(SMA)的计算方法

直接答案

SMA(简单移动平均线)是通过对最近N个数据点(通常是所选时间周期的收盘价)取算术平均值来计算的。每次新增一个数据点时,会剔除最旧的数据点并加入最新的数据点,从而形成一个滚动平均值。

机制与定义

SMA的定义基于三个选择:

  1. 你所平均的数据类型:常见的选择是时间序列数据,例如价格(如收盘价)或由价格衍生出的指标值。计算本身是相同的:你对一组数值进行平均。
  2. 窗口长度(N):N是每个平均值中包含的数据点数量。
  3. 时间对齐方式:你为序列中的每个位置计算一个SMA值,在最常见的实际定义中,该值位于窗口的末尾。

公式

设数据序列为 (x_t)。对于窗口长度 (N),在时间 (t) 的SMA为:

[ \text{SMA}t = \frac{1}{N}\sum{i=0}^{N-1} x_{t-i} ]

通俗地说:对于 (\text{SMA}_t),将当前值 (x_t) 和前 (N-1) 个值相加,然后除以 (N)。

参数与数据要求

要准确计算SMA,你需要:

  • 完整有序的序列 (x_t) 值(在你要平均的序列部分内不能有缺失点)。
  • 一致的采样频率(例如每日数据或1小时K线)。如果你混合不同频率,那么“最近N个点”将不再代表相同的时间跨度。
  • 为每个比较的序列选定N值
  • 关于首个可用SMA值的约定:只有当你至少有N个观测值时,SMA值才能开始计算。

实例或计算示例

假设你想对一个代表连续时间步长上类似价格指标的数值序列计算3点SMA。

设序列为:

  • (x_1 = 10)
  • (x_2 = 12)
  • (x_3 = 14)
  • (x_4 = 13)

当 (N=3) 时:

  • (\text{SMA}_3 = (x_3 + x_2 + x_1)/3 = (14 + 12 + 10)/3 = 12)
  • (\text{SMA}_4 = (x_4 + x_3 + x_2)/3 = (13 + 14 + 12)/3 = 13)

这展示了滚动行为:(\text{SMA}_4) 重用了 (\text{SMA}_3) 中的两个值((x_3) 和 (x_2)),并将最旧的值((x_1))替换为新点((x_4))。

SMA在实际中的工作方式

由于SMA是一种平均值,它相对于单个数据点减少了短期噪音。然而,由于它反映了多个过去的观测值,其响应速度通常比原始序列更慢。

局限性与风险

SMA虽然简单,但在某些情况下可能无法准确反映你期望的结果。

  1. 滞后(延迟)于最新变化 由于SMA对过去数值赋予同等权重,即使序列已经移动,它仍可能受到早期水平的影响。在快速变动的市场条件下,SMA可能表现为“跟随”而非“预测”。

  2. N值的选择影响行为 较大的N值平滑效果更强,但反应更慢;较小的N值反应更快,但可能波动更剧烈。如果有人比较不同N值的SMA线,由于时间范围不同,这种比较可能会产生误导。

  3. 数据选择问题 SMA完全依赖于输入序列 (x_t)。如果你平均了错误的字段(例如使用了衍生值而不是预期值)或使用了不一致的采样(混合了不同的时间周期),结果将不符合预期的计算。

  4. 缺失或不规则数据 如果存在数据缺口或缺失点,“最近N个值”可能无法对应一致的时间窗口。一些系统通过填充或跳过处理缺失数据;这两种方法都会改变计算出的SMA。

  5. 历史关系不能保证未来表现 即使SMA在过去匹配了某些模式,过去数值的平均值也不能保证未来的行为。市场状况可能发生变化,相同的参数选择在不同时期可能表现出不同的行为。

验证与后续问题

你可以通过以下三个检查独立验证SMA的计算:

  1. 确认所使用的窗口长度N
  2. 使用 (\text{SMA}t = (x_t + x{t-1} + \dots + x_{t-N+1})/N) 手动重新计算一小段数据的SMA。
  3. 确保输入序列和时间周期符合定义(相同频率、相同顺序)。

如果你想进一步了解,一个有用的后续问题是:SMA与其他使用不同加权方式的移动平均线相比如何?尽管目标相似,但公式会发生变化。

外汇和差价合约交易具有重大风险。FoxiForex的信息仅用于教育,不构成个人财务建议。赞助内容会被清楚标注。