macd指标 python 代码
时间: 2024-08-25 14:01:05 浏览: 76
MACD(Moving Average Convergence Divergence,移动平均收敛散度)是一种常用的趋势跟踪技术指标,用于分析股票、期货、外汇等金融市场数据。它通过快速(短期)和慢速(长期)指数移动平均线(EMA)的聚合和分离来判断市场的买卖时机。
以下是一个简单的MACD指标的Python代码示例,使用了pandas和matplotlib库来计算MACD并绘制结果图表:
```python
import pandas as pd
import matplotlib.pyplot as plt
from pandas_datareader import data as pdr
# 获取股票数据
df = pdr.get_data_yahoo('AAPL', start='2020-01-01', end='2021-01-01')
# 计算短期和长期的指数移动平均值(EMA)
short_window = 12
long_window = 26
short_ema = df['Close'].ewm(span=short_window, adjust=False).mean()
long_ema = df['Close'].ewm(span=long_window, adjust=False).mean()
# 计算MACD和信号线(signal line)
macd = short_ema - long_ema
signal = macd.ewm(span=9, adjust=False).mean()
# 计算柱状图(Histogram)
histogram = macd - signal
# 绘制MACD图
plt.figure(figsize=(14, 7))
plt.plot(df.index, macd, label='MACD Line', color='red')
plt.plot(df.index, signal, label='Signal Line', color='blue')
plt.bar(df.index, histogram, label='Histogram', color='grey')
# 绘制股票收盘价
plt.plot(df.index, df['Close'], label='Close Price', color='black')
# 添加图表标签和图例
plt.title('AAPL Stock Price & MACD')
plt.xlabel('Date')
plt.ylabel('Price')
plt.legend(loc='upper left')
plt.show()
```
在这段代码中,我们首先导入了必要的库,并从Yahoo Finance获取了苹果公司(AAPL)的股票价格数据。然后,我们计算了12日和26日的EMA,接着计算了MACD线和信号线,并通过两者的差值生成了柱状图。最后,使用matplotlib绘制了MACD指标和股票价格的图表。
阅读全文