一、移动平均线(MA)与指数移动平均线(EMA)的计算与信号生成
各位同学,今天我们来聊聊技术指标里最基础、也最实用的两个工具——移动平均线(MA)和指数移动平均线(EMA)。
说实话,我刚入行那会儿,觉得均线这东西太简单了,不就是算个平均值嘛。直到我在实盘里吃过亏,才明白这玩意儿背后藏着不少门道。今天我就把踩过的坑和积累的经验,一次性讲清楚。
1.1 什么是移动平均线?
移动平均线,英文叫 Moving Average,简称 MA。说白了,就是把过去 N 天的收盘价加起来,除以 N。
举个例子:
假设某股票最近 5 天的收盘价是:10, 11, 12, 13, 14
那么 5 日 MA = (10+11+12+13+14) / 5 = 12
嗯,就这么简单。但注意,这个「移动」二字很关键——每天都会加入新数据,剔除旧数据,所以线是动态的。
核心公式:
MA(N) = (P₁ + P₂ + ... + Pₙ) / N
其中 P 是收盘价,N 是周期数
1.2 指数移动平均线(EMA)—— 给数据加点「偏心」
EMA 和 MA 最大的区别是什么?
MA 对每一天的价格一视同仁。但 EMA 不一样,它更看重最近的价格。你想想看,昨天的价格和 10 天前的价格,哪个对今天的走势影响更大?显然是昨天。
EMA 的公式稍微复杂一点:
EMA(今天) = (收盘价 × 平滑系数) + (EMA(昨天) × (1 - 平滑系数))
平滑系数 = 2 / (N + 1)
举个例子,计算 5 日 EMA:
平滑系数 = 2 / (5 + 1) = 0.333
假设昨天 EMA = 12,今天收盘价 = 14
今天 EMA = 14 × 0.333 + 12 × 0.667 = 12.666
我的经验:EMA 对价格变化反应更快,适合短线交易。MA 更平滑,适合看趋势。我在做日内策略时,通常用 EMA;做波段时,用 MA 更稳。
1.3 MA 与 EMA 的对比
| 特性 | MA | EMA |
|---|---|---|
| 计算方式 | 简单平均 | 加权平均(近期权重高) |
| 对价格敏感度 | 低 | 高 |
| 滞后性 | 高 | 低 |
| 适用场景 | 趋势判断 | 短线交易 |
避坑指南:我曾经在回测时发现,用 MA 做信号,经常出现「假突破」——价格刚穿过均线就掉头。后来换成 EMA,信号虽然多了,但准确率反而更高。所以别迷信哪个更好,关键看你的策略周期。
1.4 信号生成:金叉与死叉
均线最经典的用法,就是看交叉信号。
- 金叉:短期均线上穿长期均线 → 买入信号
- 死叉:短期均线下穿长期均线 → 卖出信号
举个例子:
5 日 MA 上穿 20 日 MA,就是金叉。说明短期趋势转强,可以考虑进场。
但注意,不是所有金叉都值得做。我见过太多新手看到金叉就冲进去,结果被套在半山腰。为什么?因为均线本身有滞后性,等金叉出现时,价格可能已经涨了一大截。
我的建议:结合成交量来判断。如果金叉时成交量放大,可信度更高。如果缩量上涨,多半是诱多。
1.5 代码实现:从零开始写均线策略
光说不练假把式。我们直接上代码,用 Python 实现 MA 和 EMA 的计算,并生成交易信号。
import pandas as pd
import numpy as np
# 模拟价格数据
data = {
'close': [10, 11, 12, 13, 14, 13, 12, 11, 10, 9]
}
df = pd.DataFrame(data)
# 计算 MA 和 EMA
df['MA5'] = df['close'].rolling(window=5).mean()
df['EMA5'] = df['close'].ewm(span=5, adjust=False).mean()
# 生成信号
df['signal'] = 0
df.loc[df['MA5'] > df['EMA5'], 'signal'] = 1 # 买入
df.loc[df['MA5'] < df['EMA5'], 'signal'] = -1 # 卖出
print(df)
这段代码很简单,但有几个细节要注意:
rolling(window=5).mean()就是计算 5 日 MAewm(span=5)是计算 EMA,span 参数对应周期- 信号生成逻辑:MA5 大于 EMA5 时买入,反之卖出
避坑提醒:我曾经在实盘里直接用这个逻辑,结果发现信号太频繁,手续费都亏没了。后来加了过滤条件——比如要求连续 3 天信号一致才执行。嗯,效果好了很多。
1.6 知识体系总览
下面这张图,是我自己整理的知识结构。你可以把它当成一张地图,随时回来对照。
1.7 写在最后
均线这东西,看着简单,但用好了能赚钱,用不好就是亏钱的坑。我个人建议,刚开始做策略时,先用 MA 和 EMA 做双均线系统,跑一段时间回测,看看效果。
记住一句话:指标是死的,市场是活的。别指望靠一个金叉就能稳定盈利。多观察、多总结,慢慢你就能找到感觉。
好了,这一章就到这里。下一章我们聊聊更进阶的指标——布林带和 MACD,到时候我会分享一些实盘里的骚操作。