以比亚迪为例,使用mplfinance分析MACD指标

发布时间:2023-06-03 公开文章

基本概念

MACD指标(Moving Average Convergence Divergence,移动平均收敛/发散指标)是一种常用的技术分析工具,用于评估股票、外汇、商品等市场中的价格趋势。MACD指标由两条指数平滑移动平均线(EMA)和一条信号线组成。首先,计算两条不同时间周期的EMA:快速EMA(EMA12)和慢速EMA(EMA26)。然后计算这两个EMA之间的差异,即差离值(DIF):DIF = (EMA12 - EMA26)。接下来,计算DIF的9日指数平均值(DEA),以及一条信号线(通常是9日的DIF值):信号线 = DEA。最后,通过比较短期EMA与长期EMA之间的差离值(DIF)与信号线之间的关系,可以判断市场的上涨、下跌或盘整趋势。例如,当DIF从下向上突破信号线时,可能预示着市场的上涨趋势;相反,当DIF从上向下突破信号线时,可能预示着市场的下跌趋势。MACD指标可以帮助投资者发现价格动量的变化,并根据这些变化制定相应的交易策略。然而,请注意,MACD指标并非绝对的预测工具,投资者在使用时应结合其他技术分析方法和市场信息进行综合判断。

代码实现

# 计算快线DIF和慢线DEA,使用pandas的ewm方法
exp12 = data['close'].ewm(span=12, adjust=False).mean() # 12日指数移动平均
exp26 = data['close'].ewm(span=26, adjust=False).mean() # 26日指数移动平均
dif = exp12 - exp26 # DIF = EMA(12) - EMA(26)
dea = dif.ewm(span=9, adjust=False).mean() # DEA = EMA(DIF, 9)

# 计算柱状图,使用pandas的apply方法
histogram = dif - dea # 柱状图 = DIF - DEA
histogram = histogram.apply(lambda x: x*2) # 柱状图放大两倍

# 创建附加图形,使用mpf.make_addplot方法
apds = [
    mpf.make_addplot(exp12, color='lime'), # 快线DIF,绿色
    mpf.make_addplot(exp26, color='c'), # 慢线DEA,青色
    mpf.make_addplot(histogram, type='bar', width=0.7, panel=1, color='dimgray', alpha=1, secondary_y=True), # 柱状图,灰色,放在第二个面板上
    mpf.make_addplot(dif, panel=1, color='fuchsia', secondary_y=False), # DIF线,紫红色,放在第二个面板上
    mpf.make_addplot(dea, panel=1, color='b', secondary_y=False) # DEA线,蓝色,放在第二个面板上
]

# 绘制K线图和MACD指标,使用mpf.plot方法
mpf.plot(data, type='candle', addplot=apds, figscale=1.6, title='MACD指标', volume=True, ylabel='价格', ylabel_lower='成交量', figratio=(15, 10),style=s)

运行结果