计算移动平均线的过程可以分为以下几个步骤:
- 获取数据
- 计算移动平均值
- 绘制移动平均线
下面分别对这几个步骤进行详细讲解。
1. 获取数据
首先,需要从某个数据源获取股票的历史交易数据。这里可以使用pandas-datareader库中的DataReader函数获取Yahoo Finance上的股票数据,代码如下:
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2020, 1, 1)
end = datetime.datetime(2022, 1, 1)
symbol = 'AAPL'
data = web.DataReader(symbol, 'yahoo', start, end)
这里获取的是AAPL在2020年1月1日到2022年1月1日的数据,保存在data变量中。
2. 计算移动平均值
接下来,需要对数据进行处理,计算出移动平均值。移动平均值是指在一段时间内的平均价格。常用的计算移动平均值的方法有SMA和EMA两种,其中SMA是简单移动平均线,EMA是指数移动平均线。
这里以SMA为例,计算5日和10日的移动平均线。代码如下:
data['SMA5'] = data['Close'].rolling(window=5).mean()
data['SMA10'] = data['Close'].rolling(window=10).mean()
这段代码的含义是,计算Close列的滑动平均,窗口大小分别为5和10,并将结果保存在SMA5和SMA10列中。
3. 绘制移动平均线
最后一步是将计算出的移动平均线绘制到图表上。这里可以使用matplotlib库来进行绘图。代码如下:
import matplotlib.pyplot as plt
plt.plot(data['Close'])
plt.plot(data['SMA5'])
plt.plot(data['SMA10'])
plt.legend(['Close', 'SMA5', 'SMA10'])
plt.show()
这段代码的含义是,绘制Close列的折线图,并在同一个图表中绘制SMA5和SMA10列的折线图,并添加图例。最后,调用show()函数显示图表。
示例说明
假设我们要计算Dow Jones Industrial Average (DJIA)指数的移动平均线。可以使用下列代码:
import pandas_datareader.data as web
import datetime
start = datetime.datetime(2020, 1, 1)
end = datetime.datetime(2022, 1, 1)
symbol = '^DJI'
data = web.DataReader(symbol, 'yahoo', start, end)
data['SMA20'] = data['Close'].rolling(window=20).mean()
data['SMA50'] = data['Close'].rolling(window=50).mean()
import matplotlib.pyplot as plt
plt.plot(data['Close'])
plt.plot(data['SMA20'])
plt.plot(data['SMA50'])
plt.legend(['Close', 'SMA20', 'SMA50'])
plt.show()
这段代码的含义是,计算DJIA在2020年1月1日到2022年1月1日的数据,计算20日和50日的移动平均线,并将结果绘制在同一个图表上。