什么是MACD指标呢,我们可以通过行情软件,来看一看
1、MACD指标介绍
指数平滑异同移动平均线(Moving Average Convergence /Divergence, MACD)是股票交易中一种常见的技术分析工具,由Gerald Appel于1970年代提出,用于研判股票价格变化的强度、方向、能量,以及趋势周期,以便把握股票买进和卖出的时机。
2、MACD的原理以及计算公式
Python系列教程,免费获取,遇到bug及时反馈,讨论交流可加扣裙<60 61 15 02 7>
2.1原理
原理:MACD的意义和双移动平均线基本相同,即由快、慢均线的离散、聚合表征当前的多空状态和股价可能的发展变化趋势,但阅读起来更方便
2.2 计算公式
-
1、MACD首先行计算出快速(一般选12日)移动平均值与慢速(一般选26日)移动平均值
-
2、12日EMA数值减去26日EMA数值得到,差离值DIF
-
3、根据离差值计算其9日的EMA,即离差平均值,是所求的MACD值。为了不与指标原名相混淆,又名DEA或DEM(讯号线)
-
4、DIF与DEA的差值,为MACD柱状图
2.3交易信号种类
-
差离值(DIF值)与讯号线(DEA值,又称MACD值)相交;
-
差离值与坐标轴相交;
-
股价与差离值的背离。
2.4 交易信号分析
-
差离值值和讯号线
差离值(DIF)形成“快线”(短期线),讯号线(DEM)形成“慢线”(长期线)。 当差离值(DIF)从下而上穿过讯号线(DEM),为买进讯号(金叉);相反若从上而下穿越,为卖出讯号。(死叉)
-
差离值(MACD柱状图)
-
1、当红柱状持续放大时,表明投资市场处于牛市行情中,价格走势将继续上涨,这时应持仓待涨或短线买入投资品种,直到红柱无法再放大时才考虑卖出
-
2、当绿柱状持续放大时,表明投资市场处于熊市行情之中,价格走势将继续下跌,这时应持币观望或卖出投资品种,直到绿柱开始缩小时才可以考虑少量买入投资品种。
-
3、当红柱状开始缩小时,表明投资市场牛市即将结束(或要进入调整期),价格走势将大幅下跌,这时应卖出大部分投资品种而不能买入投资品种。
-
4、当绿柱状开始收缩时,表明投资市场的大跌行情即将结束,价格走势将止跌向上(或进入盘整),这时可以少量进行长期战略建仓而不要轻易卖出投资品种。
-
5、当红柱开始消失、绿柱开始放出时,这是投资市场转市信号之一,表明投资市场的上涨行情(或高位盘整行情)即将结束,价格走势将开始加速下跌,这时应开始卖出大部分投资品种而不能买入投资品种。
-
6、当绿柱开始消失、红柱开始放出时,这也是投资市场转市信号之一,表明投资市场的下跌行情(或低位盘整)已经结束,价格走势将开始加速上升,这时应开始加码买入投资品种或持仓待涨。
3、TA-Lib库进行指标运算
TA-Lib安装问题解决:
# 安装依赖项 ubuntu:sudo ap-get install ta-lib maxos:brew install ta-lib # 安装库 pip install TA-Lib
4、案例: 计算MACD指标、画出图形
效果:
4.1 获取股票日线数据
# 读取日线的数据 stock_day = pd.read_csv("./data/stock_day/stock_day.csv") stock_day = stock_day.sort_index()[:200] stock_day['index'] = [i for i in range(stock_day.shape[0])] arr = stock_day[['index', 'open', 'close', 'high', 'low']].values[:200]
4.2 分析
-
计算MACD值
-
传入的参数序列必须是Numpy序列
-
macd:快线
-
macdsignal:慢线
-
macdhist:MACD柱状图值
# 使用收盘价格去计算MACD指标数据 # MACD指标,除了close价格数据,还有12,26,日期以及DIF的移动平均线 # dif: 12, 与26日的差别 # dea:dif的9日以移动平均线 dif, dea, macd_hist = talib.MACD(stock_day['close'].values, fastperiod=12, slowperiod=26, signalperiod=9)
-
显示MACD值
# 通过画图将结果展示查出来 # 第一步:构造画布,里面包含了一个axes fig, axes = plt.subplots(nrows=1, ncols=1, figsize=(20, 8), dpi=100) # 产生一个x的单维数组 index = [i for i in range(200)] # 先画出dif这根差离值线 plt.plot(index, dif, color='y', label="差离值 DIF") plt.plot(index, dea, color='b', label="讯号线 DEA") # 画出MACD柱状图 # 分开正负的柱状图去画出来 # 画第一个bar, macd_hist,如果大于0, 保留当前值,如果小于0,变为0,得出一个red_hist # 画出第二个bar,macd_hisr,如果小于0, 保留当前值,如果大于0,直接变为0 red_hist = np.where(macd_hist > 0 , macd_hist, 0) green_hist = np.where(macd_hist < 0 , macd_hist, 0) plt.bar(index, red_hist, label="红色MACD值", color='r') plt.bar(index, green_hist, label="绿色MACD值", color='g') # 显示一下K线图对比MACD指标图 candlestick_ochl(axes, arr, width=0.2, colorup='r', colordown='g') plt.legend(loc="best") plt.show()
-
背离分析(了解)
当股价创新低,但MACD并没有相应创新低(牛市背离或顶背离),视为利多讯息,股价跌势或将完结。相反,若股价创新高,但MACD并没有相应创新高(熊市背离或底背离),视为利空讯息。
5、MACD总结
MACD是一种中长线的研判指标。当股市强烈震荡或股价变化巨大(如送配股拆细等)时,可能会给出错误的信号。所以在决定股票操作时,应该谨慎参考其他指标,以及市场状况,不能完全信任差离值的单一研判,避免造成损失。