移动平均(Moving Average,简称MA)是一种统计分析方法,通过计算一系列数据点的平均值,来平滑数据的波动。它可以帮助我们更清晰地看到数据的长期趋势,而不被短期的剧烈变化所干扰。
假设我们有一组股票价格数据:[100, 105, 102, 110, 108, 115]。为了计算3天的移动平均,我们需要对每3个连续的价格进行平均。
(1)第一天的移动平均:平均(100, 105, 102) = (100 + 105 + 102) / 3 = 102.33
(2)第二天的移动平均:平均(105, 102, 110) = (105 + 102 + 110) / 3 = 105.67
(3)第三天的移动平均:平均(102, 110, 108) = (102 + 110 + 108) / 3 = 106.67
(4)第四天的移动平均:平均(110, 108, 115) = (110 + 108 + 115) / 3 = 111
让我们使用Python绘制股票价格和移动平均的图表,来更直观地理解这种技术的应用。Python代码如下:
import pandas as pd
import matplotlib.pyplot as plt
from matplotlib import font_manager
#设置全局字体(需要是中文字体)
plt.rcParams['font.sans-serif']=['QingYuan']
# 创建股票价格数据
data = {
'日期': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05', '2023-01-06'],
'收盘价': [100, 105, 102, 110, 108, 115]
}
df = pd.DataFrame(data)
# 将日期列转换为日期类型
df['日期'] = pd.to_datetime(df['日期'])
# 计算3天的移动平均
df['移动平均'] = df['收盘价'].rolling(window=3).mean()
# 设置图表大小
plt.figure(figsize=(10, 6))
# 绘制股票价格
plt.plot(df['日期'], df['收盘价'], marker='o', linestyle='-', color='b', label='收盘价')
# 绘制移动平均
plt.plot(df['日期'], df['移动平均'], marker='x', linestyle='-', color='r', label='3天移动平均')
# 添加标题和标签
plt.title('股票价格和3天移动平均')
plt.xlabel('日期')
plt.ylabel('价格')
# 旋转日期标签
plt.xticks(rotation=45)
# 添加图例
plt.legend()
# 添加网格线
plt.grid()
# 显示图表
plt.show()
运行上述代码,输出可视化折线图,如图
在这个示例中,上面的线代表了每日的股票价格,下面的线代表了3天的移动平均值。通过对比两条线,我们可以看到,移动平均线更加平滑,消除了短期的波动,突出显示了价格的长期趋势。
小贴士:通过添加移动平均线,我们可以更清晰地看到股票价格的长期趋势。这种方法不仅适用于金融数据,也可以应用于其他类型的时序数据,比如气温变化、销售数据等。