一、MACD指标简介
二、MACD的组成部分
-
DIF线(Difference):短期EMA与长期EMA的差值,通常使用12日EMA减去26日EMA。
-
DEA线(Signal Line):DIF线的移动平均线,通常使用9日EMA。
-
MACD柱(Histogram):DIF线与DEA线的差值,反映两者之间的距离。
三、MACD的交易信号
-
买入信号:当DIF线上穿DEA线,视为上升趋势的开始。
-
卖出信号:当DIF线下穿DEA线,视为下降趋势的开始。
四、MACD在Python中的实现
import pandas as pdimport matplotlib.pyplot as plt
def calculate_macd(data, short_period=12, long_period=26, signal_period=9): """ 计算MACD指标 :param data: pandas DataFrame, 包含至少包含收盘价的数据 :param short_period: int, DIF线的短期EMA周期 :param long_period: int, DIF线的长期EMA周期 :param signal_period: int, DEA线的周期 :return: 原DataFrame附带MACD指标 """ # 计算EMA EMA_short = data['close'].ewm(span=short_period, adjust=False).mean() EMA_long = data['close'].ewm(span=long_period, adjust=False).mean() # 计算DIF和DEA data['DIF'] = EMA_short - EMA_long data['DEA'] = data['DIF'].ewm(span=signal_period, adjust=False).mean() # 计算MACD柱 data['MACD Histogram'] = data['DIF'] - data['DEA'] return data
# 示例数据df = pd.DataFrame({ 'close': [22.27, 22.19, 22.08, 22.17, 22.18, 22.00, 21.99, 21.92, 21.91, 21.75, 21.76, 21.78, 21.84, 21.70, 21.65, 21.67, 21.58, 21.46, 21.35, 21.41, 21.49, 21.56, 21.70, 21.75, 21.65, 21.80, 21.92, 22.00]})
# 计算MACDdf_macd = calculate_macd(df)
# 绘图plt.figure(figsize=(14, 7))plt.plot(df['close'], label='Close Price')plt.plot(df_macd['DIF'], label='DIF')plt.plot(df_macd['DEA'], label='DEA')plt.bar(df.index, df_macd['MACD Histogram'], label='MACD Histogram', alpha=0.4)plt.legend()plt.show()
五、结论
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/106041
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!
