一、MACD原理
指数平滑异同移动平均线(MACD)由三部分组成:
- DIF线:12日EMA - 26日EMA
- DEA线:DIF的9日EMA
- MACD柱:(DIF-DEA)×2
二、Python实现
1. 计算MACD
from ta.trend import MACD
macd = MACD(df['close'])
df['dif'] = macd.macd()
df['dea'] = macd.macd_signal()
df['macd_bar'] = macd.macd_diff()
2. 可视化
plt.figure(figsize=(10, 8))
gs = gridspec.GridSpec(2, 1, height_ratios=[3, 1])
# 价格和均线
ax1 = plt.subplot(gs[0])
ax1.plot(df['close'], label='收盘价')
# MACD
ax2 = plt.subplot(gs[1])
ax2.plot(df['dif'], label='DIF')
ax2.plot(df['dea'], label='DEA')
ax2.bar(df.index, df['macd_bar'],
color=np.where(df['macd_bar']>0, 'g', 'r'))
plt.show()
三、实战应用
买卖信号:
-
DIF上穿DEA → 买入
-
DIF下穿DEA → 卖出
-
柱状线由负转正 → 趋势转强
特点:
-
兼顾趋势和动量
-
适合中长线分析