股票指标:异同移动平均线(MACD)解析

MACD是什么?

MACD,全称Moving Average Convergence Divergence,即指数平滑异同移动平均线,是一种在股票、期货等投资市场中广泛使用的动量指标。它能帮助投资者识别市场的趋势及其变化。

简单来说,MACD主要是通过比较短期和长期的指数移动平均线(EMA)之间的关系来工作的。这里的“短期”和“长期”指的是计算这些平均值时所依据的时间段长度。通常情况下,短期是12天,长期是26天。

MACD的计算分为以下几个步骤:

  1. 计算短期EMA:首先需要基于收盘价计算出一个12天的指数移动平均线(EMA12)。
  2. 计算长期EMA:接着,再计算出一个26天的指数移动平均线(EMA26)。
  3. 计算差值(DIFF):然后,用短期EMA减去长期EMA,得到的数值就是所谓的“DIFF线”,也就是快速线。
  4. 计算信号线(DEA/Signal Line):最后,基于DIFF线的9日EMA生成一条被称为“DEA线”或“信号线”的慢速线。

MACD的一个常见展示方式是直方图,它表示的是DIFF线与信号线之间的差异。当DIFF线上穿信号线时,这通常被视为买入信号;相反,当DIFF线下穿信号线时,则可能是一个卖出信号。

MACD解析

EMA即EXPMA

EXPMA解析

DIFF(快速线)

DIFF = 短期EMA - 长期EMA

通常使用的是:

  • 短期EMA:12日指数移动平均
  • 长期EMA:26日指数移动平均

所以 DIFF = EMA(12) - EMA(26)

DEA(慢速线)

DEA线,全称为DIFFerence of Exponential Average线,也被称为信号线(Signal Line),是MACD指标(Moving Average Convergence Divergence,指数平滑异同移动平均线)中的一个关键组成部分。DEA线通过对DIFF线(快速线)进行进一步的平滑处理来生成,通常使用9日的EMA(指数移动平均)来计算。

对比

  1. DIFF对价格变化反应更快
  • 因为它是用短期EMA减去长期EMA,而短期EMA本身比长期EMA更贴近当前价格,对价格变动更敏感。
  • 所以当价格发生变化时,DIFF线会比DEA线(信号线)更快地出现变化。
  1. DEA线(慢速线)
  • DEA线是DIFF线的9日EMA,是对DIFF进一步平滑处理后的结果。
  • 它波动更平缓,滞后性更强,就像大卡车一样,转向和加速都比较慢。

MACD实际交易中的意义:

在这里插入图片描述

MACD通过观察价格变动的速度而非价格本身来提供买卖信号,有助于捕捉市场趋势的变化。

在MACD图表中,你会看到两条线:

  • 快速线(DIFF):颜色通常是白线
  • 慢速线(DEA):颜色通常是黄线

当:

  • DIFF上穿DEA → 出现金叉 → 可能是买入信号(股价拉升)
  • DIFF下穿DEA → 出现死叉 → 可能是卖出信号(股价下跌)

这些交叉点之所以有意义,正是因为DIFF线反应快,能率先捕捉到趋势的变化。

名称含义为什么叫“快速”
快速线(DIFF)短期EMA - 长期EMA对价格变化更敏感,反应更快
慢速线(DEA)DIFF的9日EMA(信号线)更平滑,滞后性强,反应较慢

程序化计算示例

import akshare as ak
import pandas as pd
import numpy as np

# 获取中兴通讯的股票历史数据
stock_code = '000063'  # 中兴通讯在深圳证券交易所的代码
stock_data = ak.stock_zh_a_hist(symbol=stock_code, period="daily", adjust="qfq")  # 调整参数以获取前复权数据

# 将数据转换为DataFrame,并设置日期为索引
df = pd.DataFrame(stock_data, columns=['日期', '开盘', '最高', '最低', '收盘', '成交量', '振幅', '涨跌幅', '涨跌额', '换手率'])
df['日期'] = pd.to_datetime(df['日期'])
df.set_index('日期', inplace=True)

# 计算短期(12日)和长期(26日)EMA
short_window = 12
long_window = 26
signal_window = 9

df['EMA12'] = df['收盘'].ewm(span=short_window, adjust=False).mean()
df['EMA26'] = df['收盘'].ewm(span=long_window, adjust=False).mean()

# 计算DIF(快速线)
df['DIF'] = df['EMA12'] - df['EMA26']

# 计算DEA(信号线)
df['DEA'] = df['DIF'].ewm(span=signal_window, adjust=False).mean()

# 计算MACD柱状图值
df['MACD'] = (df['DIF'] - df['DEA']) * 2

# 打印结果查看
print(df[['DIF', 'DEA', 'MACD']].tail())

# 如果需要,可以将结果保存到CSV文件中
# df.to_csv('ZTE_MACD.csv')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值