网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
A
t
=
P
1
P
2
…
P
n
n
S M A_{t}=\frac{P_{1}+P_{2}+\ldots+P_{n}}{n}
SMAt=nP1+P2+…+Pn
比如若依次得到测定值
x
1
、
x
2
、
x
3
、
x
4
、
x
5
、
x
6
、
x
7
.
.
.
x_1、x_2、x_3、x_4、x_5、x_6、x_7…
x1、x2、x3、x4、x5、x6、x7…,按顺序取一定个数所做的全部算术平均值就是移动平均值,如
y
1
=
(
x
1
x
2
x
3
)
/
3
、
y
2
=
(
x
2
x
3
x
4
)
/
3…
y_1=(x_1+x_2+x_3)/3、y_2=(x_2+x_3+x_4)/3…
y1=(x1+x2+x3)/3、y2=(x2+x3+x4)/3…,
而panda提供了rolling函数可以用来计算移动平均,使用简单,速度较快:
DataFrame.rolling(window, min_periods=None, freq=None, center=False, win_type=None, on=None, axis=0, closed=None)
参数 | 用法 |
---|---|
window | 表示时间窗的大小,注意有两种形式(int or offset)。如果使用int,则数值表示计算统计量的观测值的数量即向前几个数据。如果是offset类型,表示时间窗的大小。 |
min_periods | 最少需要有值的观测点的数量,对于int类型,默认与window相等。对于offset类型,默认为1。 |
freq | 不用管,从0.18版本中已经被舍弃。 |
win_type | 窗口类型,不用管,默认为None一般不特殊指定 |
on | 对于DataFrame如果不使用index(索引)作为rolling的列,那么用on来指定使用哪列。 |
closed | 定义区间的开闭,不用管,新版本中已经被舍弃 |
axis | 方向(轴),一般都是0。 |
center | 是否使用window的中间值作为label,默认为false。只能在window是int时使用。 |
那么我们使用的简单移动平均直接使用:data['ma5'] = data['Adj Close'].rolling(5).mean()
,其表示窗口大小为5的移动平均。计算后,使用matplotlib.pyplot进行画图,横轴为时间,竖轴为预测价格,将其在pyplot 图中打印:
import matplotlib.pyplot as plt
fig = plt.figure(figsize=(16,9))
ax1 = fig.add_subplot(111, ylabel='Price')
data.ma5.plot(ax=ax1, color='plum', lw=2., legend=True)
效果如下:
我们以同样方法画出多个均线并且和原数据real对比:
data['real'] = data['Adj Close'].rolling(1).mean()
data['ma5'] = data['Adj Close'].rolling(5).mean()
data['ma10'] = data['Adj Close'].rolling(10).mean()
![img](https://img-blog.csdnimg.cn/img_convert/e6d7da01f39b990c061e01c43698fd3a.png)
![img](https://img-blog.csdnimg.cn/img_convert/6bd9f9ab401a220496184bc49a143515.png)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
img-WC7xMiaj-1715367827428)]
[外链图片转存中...(img-6Aiq5S2t-1715367827428)]
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**[需要这份系统化资料的朋友,可以戳这里获取](https://bbs.csdn.net/forums/4f45ff00ff254613a03fab5e56a57acb)**
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**