MACD 和移动平均线的计算方法

MACD 计算、移动平均线公式、数据输入、局限性。

MACD 和移动平均线的计算方法

直接答案

MACD(移动平均收敛发散指标)是基于选定价格序列的移动平均线计算得出的。在最常见的版本中,它使用同一输入价格的两个指数移动平均线(EMA):一个“快”EMA 和一个“慢”EMA。MACD 线是这两个 EMA 的差值。MACD 线的另一个 EMA 构成信号线,而直方图则是 MACD 线与信号线之间的差值。

在此上下文中,移动平均线是通过对定期采样的历史数据点应用加权规则来计算的。EMA 对近期数据赋予更高权重,因此相比单纯“随时间平均”的方法,MACD 反应更快。

机制或定义

1) 选择输入序列(用于平均的“价格”)

MACD 和移动平均线都需要一个定期采样的数值时间序列(例如,每根K线的收盘价)。常见的输入价格选择包括:

  • 收盘价序列
  • 其他价格组成部分(如开盘价、最高价、最低价或它们的平均值)

一旦选定输入序列,移动平均线的计算就是确定性的。

2) 移动平均线基础:EMA 公式

EMA 通过递归方式对时间序列进行平滑处理。

设输入序列为 (P_t),其中 (t) 表示时间步长。长度为 (N) 的 EMA 计算如下:

  • 平滑因子:(\alpha = \frac{2}{N+1})
  • 递归更新(在初始化之后): [ EMA_t = \alpha,P_t + (1-\alpha),EMA_{t-1} ]

初始化很重要。一种常见的实用初始化方法是使用第一个可用价格(或前 (N) 个点的简单平均值)来设定 (EMA_{N}) 或计算窗口中的最早 EMA 值。不同软件可能初始化方式略有不同,这可能导致早期数值出现偏差。

3) MACD 线与直方图(典型参数)

标准 MACD 结构包含三个绘制组件:

  1. MACD 线
  2. 信号线
  3. 直方图

设:

  • (N_{fast}) 为快 EMA 长度
  • (N_{slow}) 为慢 EMA 长度
  • (N_{signal}) 为信号 EMA 长度

计算同一价格序列的两个 EMA:

  • 使用 (N_{fast}) 计算 (EMA^{fast}_t)
  • 使用 (N_{slow}) 计算 (EMA^{slow}_t)

然后 MACD 线为: [ MACD_t = EMA^{fast}_t - EMA^{slow}_t ]

接下来,将信号线计算为 MACD 线的 EMA: [ Signal_t = EMA(MACD)t\text{ 使用长度 }N{signal} ]

最后,直方图为差值: [ Histogram_t = MACD_t - Signal_t ]

这些公式展示了核心“机制”:MACD 不是单一移动平均线;它是两个移动平均线之间的差值,然后对该差值再应用另一个移动平均线。

证据或示例(带明确假设的计算步骤)

本示例的假设:

  • 您有一个每根K线采样一次的时间序列 (P_t)。
  • 使用收盘价作为 (P_t)。
  • 选择 (N_{fast}=12)、(N_{slow}=26) 和 (N_{signal}=9) 作为典型长度。

逐步计算:

  1. 计算 (\alpha_{fast} = 2/(12+1)) 和 (\alpha_{slow} = 2/(26+1))。
  2. 创建 (EMA^{fast}t): [ EMA^{fast}t = \alpha{fast} P_t + (1-\alpha{fast}) EMA^{fast}_{t-1} ]
  3. 创建 (EMA^{slow}t): [ EMA^{slow}t = \alpha{slow} P_t + (1-\alpha{slow}) EMA^{slow}_{t-1} ]
  4. 在两个 EMA 都存在的时间点上计算 MACD 线: [ MACD_t = EMA^{fast}_t - EMA^{slow}_t ]
  5. 使用 (N_{signal}=9) 对 MACD 序列计算信号 EMA: [ Signal_t = \alpha_{signal} MACD_t + (1-\alpha_{signal}) Signal_{t-1} ] 其中 (\alpha_{signal} = 2/(9+1))。
  6. 计算直方图: [ Histogram_t = MACD_t - Signal_t ]

如果您独立实现这些步骤,并使用相同的输入序列 (P_t) 和相同的长度,应能重现相同的 MACD 结构。但如果使用不同的 EMA 初始化方法或不同的初始 EMA 定义,仍可能出现微小差异。

局限性和风险

  1. 参数敏感性 MACD 依赖于 (N_{fast})、(N_{slow}) 和 (N_{signal})。更改这些长度会改变值的响应速度和尺度,即使基础公式保持不变。

  2. 数据和对齐问题 MACD 计算需要一致的时间索引:

  • 所有序列必须使用相同的采样频率。
  • 所选输入价格序列必须与您的数据源和公式匹配。
  • 如果在不同K线定义上计算 EMA(例如,“收盘价” vs. 其他价格),结果将不同。
  1. 历史数据不足和初始化问题 由于 EMA 需要先前的值,如果从数据集开头附近开始计算,早期 MACD 值可能不可靠。EMA 初始化选择(第一个值 vs. 前 (N) 个点的平均值)会影响早期读数。

  2. 解释失败模式 MACD 组件是数学变换;它们不会自动指示盈利或正确结果。应将其视为所选时间序列的描述性特征,而非独立的决策规则。

  3. 非平稳行为 市场时间序列可能随时间改变其统计特性(例如,波动率状态)。即使您的计算正确,相同的数值模式在不同状态下可能表现不同。

验证和下一个问题

要验证您自己的计算,请检查以下项目:

  • 确认一致使用 EMA 平滑因子 (\alpha = 2/(N+1))。
  • 确认使用相同的输入价格序列 (P_t)。
  • 确保在计算信号 EMA 之前先应用 (MACD_t = EMA^{fast}_t - EMA^{slow}_t)。
  • 确保直方图使用 (Histogram_t = MACD_t - Signal_t)。
  • 将一小段计算值与第二个独立实现进行比较,以发现初始化或对齐差异。

如果需要,也可以查看当您更改输入价格或长度 (N_{fast})、(N_{slow}) 和 (N_{signal}) 时,MACD 的含义如何变化。您可以通过内部页面如 macd 和移动平均线 和设置如何改变 macd 和移动平均线设置如何变化 来探索相关解释。

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