
(永久免费,扫码加入)
量化是一个庞大的学科体系,华尔街早在很多年前就有了一帮精英在研究,集合了数学,统计学,计算机和金融几大学科的知识,其中python目前是量化领域最通用的编程语言。
前面小编写了几篇关于股票量化的开胃菜,有粉丝同学私信我比较有兴趣,今天我们继续写,更多内容我们都看我们的小册:
我的小册:小白零基础用Python量化股票分析小册,原价199 早鸟价39(满100人涨10元)
今天我们来说说用pandas进行滚动操作,比如我们计算5日,10日,30日的均线类似这样的数学计算有很多,如果都通过for循环去遍历非常麻烦,而且耗时。Pandas自带了一种滚动操作叫rolling ,可以轻松搞定,我们一起来看一下吧。我们还是以五粮液的历史股票数据来演示。
1.打印出股票数据

为了方便观察,我们只取3列 '股票名称','交易日期','收盘价'

2.什么是Pandas的rolling函数
在开始使用rolling 之前,我们先解释一下啥是rolling函数。在 pandas 中,rolling 函数是一个非常强大的工具,用于对数据序列执行滚动窗口计算。这意味着它可以在一个固定大小的窗口上应用函数,该窗口沿着数据索引移动。
rolling 函数常用于时间序列数据分析,以计算滑动平均、滑动标准差等统计指标。比如我们可以用来计算移动平均线,标准差,统计滑动窗口的最小值,最大值和中位数等等。
rolling 函数通常与聚合函数(如 sum、mean、std)结合使用。
3.计算3日移动平均线
比如我们用rolling 来计算移动平均线,非常简单。

rolling(window=3) 创建了一个大小为 3 的滚动窗口,然后 mean() 计算了每个窗口的平均值。
比如我们看第一行,第二行 moving_avg列都是NaN,原因是因为我们要计算3日的平均线,所以第一行,第二行肯定是空值,因为3天都不够啊。所以看到第三行的moving_avg 是有值的167.75 , 它等于(165.14+165.46+172.65 )/3 = 167.75

同理,第4行的3日均价就是第2行+第3行+第4行的收盘价的均值,所以我们可以非常方便地计算5日,10日均线。

看一下打印结果:

通过上面的计算,我们可以看到5日和10日的均线的价格在 8月7号是178.61和179.099 ,我们打开东方财富网上的K线来核对一下。

核对一下确实是对的。
4.构建上下轨道,计算5日内最大值和最小值
除了上面的计算5日平均值,我们还可以计算5日最大值,最小值。有同学会问计算这个有啥用啊,这个可是非常有用,我们有很多策略都是跟通道有关,比如布林策略,Vagas通道,或者大名鼎鼎的江恩箱都是有类似计算。还有很多策略都用到类似的计算思想,只是有的用ATR计算,而不是直接用收盘价~~(这个我们会在群里讲)
就是某一段时间的最大值构建上轨,计算某一段时间的最小值,构建下轨。看股价是否有突破上下轨,从而判断是上升还是下降的趋势。

看一下打印的结果:

5.更强大的expanding函数
介绍完了rolling的使用,我们来介绍一个更强大的函数expanding。在 pandas 中,expanding 是用于执行累积或扩展窗口计算的函数。与 rolling 相比,expanding 提供的是一个单向扩大的窗口,即从序列的开始处到当前位置。这个功能非常适用于需要计算从开始到当前位置的累积指标时。一般我们用它来计算累计值,比如:
expanding 函数的主要用途包括:
累积求和:计算数据从开始到当前位置的累积总和。
累积平均:计算从开始到当前位置的平均值。
其他累积统计:如累积最小值、最大值、标准差等
与 rolling 类似,expanding 也通常与聚合函数(如 sum、mean、std)结合使用。
我们还是用上面的股票数据举例:

expanding() 创建了一个从序列开始到当前位置的窗口,然后 mean() 计算了每个窗口的平均值。
第2行的expanding_avg 就是计算第1行的收盘价+第2行的收盘价 的均值
第3行的expanding_avg 就是计算第1行的收盘价+第2行的收盘价++第3行的收盘价 的均值

第99行 也就是第100天的数据,我们可以看到收盘价是142.67 但是它的100天的收盘价的均值160.96 ,二者相差还是很大,说明背离了很多。但是还要结合成交量和其他指标来判断。
总结:
rolling 和expanding这个2个函数就是为量化而生的,对我们后面进行量化分析非常重要,必须要熟练掌握这2个函数的用法,好处多多。
如果想了解更多我们量化小册的内容,欢迎订阅:原价199 早鸟价39(满100人涨10元)。

推荐阅读:
入门: 最全的零基础学Python的问题 | 零基础学了8个月的Python | 实战项目 |学Python就是这条捷径
干货:爬取豆瓣短评,电影《后来的我们》 | 38年NBA最佳球员分析 | 从万众期待到口碑扑街!唐探3令人失望 | 笑看新倚天屠龙记 | 灯谜答题王 |用Python做个海量小姐姐素描图 |碟中谍这么火,我用机器学习做个迷你推荐系统电影
趣味:弹球游戏 | 九宫格 | 漂亮的花 | 两百行Python《天天酷跑》游戏!
AI: 会做诗的机器人 | 给图片上色 | 预测收入 | 碟中谍这么火,我用机器学习做个迷你推荐系统电影
小工具: Pdf转Word,轻松搞定表格和水印! | 一键把html网页保存为pdf!| 再见PDF提取收费! | 用90行代码打造最强PDF转换器,word、PPT、excel、markdown、html一键转换 | 制作一款钉钉低价机票提示器! |60行代码做了一个语音壁纸切换器天天看小姐姐!|
764



被折叠的 条评论
为什么被折叠?



