Skip to content

已弃用 (2026-05-25) —— 该算子是 Layer-1 变换、非 Layer-0 原子输入,已并入 compute_ema_v1。保留作历史。

做什么(One-liner)

EMA 指数移动平均(α = 2/(n+1) convention,adjust=False 递推)。

怎么用

python
from services.algo.technical import compute_ema
compute_ema(prices, period=12)  # MACD 快线
compute_ema(prices, period=26)  # MACD 慢线

核心公式

α = 2 / (period + 1)
EMA_0 = P_0
EMA_t = α × P_t + (1-α) × EMA_{t-1}

# pandas 等价
prices.ewm(span=period, adjust=False).mean()

假设与适用场景

假设:TradingView / MT4 convention α = 2/(n+1) + recursive (adjust=False) + first-value init。

适用:MACD、Bollinger middle、momentum 策略。

不适用:Wilder α=1/n(那是 RSI)、短序列。

已知局限

  1. α 硬编码 2/(n+1)
  2. adjust=False recursive(前几期 biased)
  3. 等距假设

参考文献

Murphy (1999) + Roberts (1959) EWM 统计起源。

Golden Test

tests/golden/fixtures/tier1/compute_ema/,1e-12,2026-04-20 passing。

Changelog

  • 1.0.0 (2026-04-20) — 首次 Active

Verifiable intelligence for the decisions that demand scrutiny.