SMA与EMA的区别:简单移动平均线和指数移动平均线详解

SMA与EMA的区别:简单移动平均线和指数移动平均线详解
移动平均线是技术分析中使用最广泛的指标。几乎每张图表上都能看到两种:**SMA(简单移动平均线)**和 EMA(指数移动平均线)。它们看起来相似,行为却不同——选对哪一种,决定了你的策略反应有多早、有多频繁。
SMA 是什么?
SMA 即 Simple Moving Average,简单移动平均线,是最近 N 个收盘价的算术平均值。20 日 SMA 就是把最近 20 个日收盘价相加再除以 20。每过一天,最早的价格移出、最新的价格加入,平均值随之"移动"。
SMA 计算公式
SMA_N = (P1 + P2 + ... + PN) / N
示例——收盘价 10、11、12、11、13 的 5 日 SMA:
SMA = (10 + 11 + 12 + 11 + 13) / 5 = 11.4
窗口内每个价格的权重完全相同(1/N)。
EMA 是什么?
EMA 同样是价格均值,但通过平滑系数 α = 2 / (N + 1) 给近期价格更高权重。完整公式与手算示例见 EMA是什么?指数移动平均线详解。
SMA 与 EMA 的核心区别
| SMA | EMA | |
|---|---|---|
| 权重 | 每根K线权重相同 | 近期K线权重更高 |
| 反应速度 | 较慢 | 较快 |
| 噪音/假信号 | 较少 | 较多 |
| 记忆 | 仅最近 N 根 | 所有历史K线(影响逐渐衰减) |
| 适用 | 长期趋势、关键支撑阻力 | 短期动能、及时入场 |
| 经典参数 | 50 SMA、200 SMA | 9、12、21、26 EMA |
一句话总结:EMA 更贴近价格、转向更早;SMA 更平稳、转向更晚。 行情急转时,EMA 通常比 SMA 提前几根K线与价格交叉。
什么时候用 SMA,什么时候用 EMA
适合用 SMA:
- 在日线、周线等较大周期交易,希望减少洗盘。
- 关注市场共识位——50 日和 200 日 SMA 是许多机构的参考点。
- 需要稳定基准做均值回归策略。
适合用 EMA:
- 日内或波段交易,入场时机很重要。
- 构建动能指标(MACD 使用 12 与 26 EMA)。
- 强趋势行情中需要紧跟价格的移动止损。
很多交易者两者结合,例如用短期 EMA 找入场点,用 200 SMA 做长期趋势过滤。
用 Python 计算 SMA 和 EMA
import requests
import pandas as pd
TOKEN = "YOUR_API_TOKEN"
url = "https://api.itick.org/forex/kline"
params = {"region": "GB", "code": "EURUSD", "kType": 8, "limit": 300}
headers = {"accept": "application/json", "token": TOKEN}
data = requests.get(url, params=params, headers=headers, timeout=10).json()["data"]
df = pd.DataFrame(data)
df["close"] = df["c"].astype(float)
df["sma_20"] = df["close"].rolling(window=20).mean()
df["ema_20"] = df["close"].ewm(span=20, adjust=False).mean()
# 两者差值扩大,说明趋势在加速
df["gap"] = df["ema_20"] - df["sma_20"]
print(df[["close", "sma_20", "ema_20", "gap"]].tail())
同样的代码适用于股票(/stock/kline,region US,code AAPL)和加密货币(/crypto/kline,region BA,code BTCUSDT)。数据来自 iTick 历史行情数据API。
小实验:谁先交叉?
在同一市场上同时运行两条均线,统计趋势改变后各自要多少根K线才与价格交叉。通常你会发现 EMA 反应更早,但在横盘期交叉次数也更多。这种速度与可靠性的权衡,就是 SMA 与 EMA 之争的全部。想严谨评估,请参考 Python 回测教程。
常见问题
股票里的 SMA 是什么意思? SMA 即简单移动平均线,是一定周期内收盘价的平均值。
200 日均线是 SMA 还是 EMA? 通常指 SMA,但部分软件默认 EMA,请检查图表设置。
日内交易用 SMA 还是 EMA? 大多数日内交易者偏好 EMA,因为它对日内价格变化反应更快。
SMA 和 EMA 可以一起用吗? 可以。常见做法是短期 EMA 出信号、长期 SMA 做趋势过滤。
用真实数据开始构建
均线需要干净、无缺口的价格数据。免费获取 iTick API Key,获取股票、外汇与加密货币 OHLCV 数据,并通过 WebSocket 实时推送 让均线实时更新。