量化交易系列【4】高频函数:rolling与expanding用法

简介: 量化交易系列【4】高频函数:rolling与expanding用法

示例中使用的‘000001.XSHE.csv’文件,已上传至csdn资源中,可直接下载


import pandas as pd


# 读取CSV文件
df = pd.read_csv('./000001.XSHE.csv')
df = df[:10]  # 取前10行数据
df

image.png

rolling函数:计算移动平均线MA


# 5日均线的计算:即最近5天收盘价的均值
# 使用rolling函数进行计算:rolling(n)即为取最近n行数据的意思,只计算这n行数据。后面可以接各类计算函数,例如max、min、std等
df['MA_5'] = df['close'].rolling(5).mean()
df[['date','close','MA_5']]

image.png


由于前4天不满足5天的条件,因此,前4天的MA_5值为空


# 计算近5天的最大值
df['max_5'] = df['close'].rolling(5).max()
df[['date','close','max_5']]


image.png


同样可以使用df[‘close’].rolling(5).min()计算5日最小值df[‘close’].rolling(5).std()计算标准差


expanding函数


作用:expanding()函数计算从一开始至今的某些数据值,实现累计计算,即不断扩展;类似于cumsum()函数的累加操作。


那如何将MA_5前4天的数据使用前几天的数据均值进行补充呢?


如第二天收盘价 = 前2天收盘价均值, 第三天收盘价 = 前3天收盘价均值…


此时就需要用到expanding函数:可以用于计算每天的从一开始至今的均值。


df['收盘价_至今均值'] = df['close'].expanding().mean()
df[['date','close','MA_5','收盘价_至今均值']]


image.png


# 同样的,expanding函数后面可以接各类计算函数,计算从头至今的各类数据。
df['close'].expanding().max()
df['close'].expanding().min()
df['close'].expanding().std()
相关文章
|
3月前
|
运维 中间件 数据库
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
浅析JAVA日志中的性能实践与原理解释问题之元信息打印会导致性能急剧下降问题如何解决
|
3月前
|
数据可视化 Python
时间序列分析是一种统计方法,用于分析随时间变化的数据序列。在金融、经济学、气象学等领域,时间序列分析被广泛用于预测未来趋势、检测异常值、理解周期性模式等。在Python中,`statsmodels`模块是一个强大的工具,用于执行各种时间序列分析任务。
时间序列分析是一种统计方法,用于分析随时间变化的数据序列。在金融、经济学、气象学等领域,时间序列分析被广泛用于预测未来趋势、检测异常值、理解周期性模式等。在Python中,`statsmodels`模块是一个强大的工具,用于执行各种时间序列分析任务。
|
5月前
|
存储 安全 C++
【C++14保姆级教程】lambda 初始化捕获 new/delete 消除
【C++14保姆级教程】lambda 初始化捕获 new/delete 消除
255 0
|
决策智能
运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍
运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍
运筹优化学习04:Lingo的sum函数和for函数的使用方法介绍
|
决策智能
运筹优化学习07:Lingo的 @if 函数的使用方法
运筹优化学习07:Lingo的 @if 函数的使用方法
运筹优化学习07:Lingo的 @if 函数的使用方法
|
决策智能 Windows
运筹优化学习01:Lingo入门与错误列表分析(二)
运筹优化学习01:Lingo入门与错误列表分析
运筹优化学习01:Lingo入门与错误列表分析(二)
|
数据可视化 测试技术 Python
sum() 函数性能堪忧,列表降维有何良方?
(1)sum() 函数的性能到底差多少,为什么会差?(2)既然 sum() 不是最好的列表降维方法,那是否有什么替代方案呢?
189 0
sum() 函数性能堪忧,列表降维有何良方?
moment的高频用法总结
用法总结 指定语言;不然可能引起一些不必要的bug。
294 0
Raptor实践参考:分段函数求值
返回->课程主页 2-3 分段函数求值   从键盘输入x的值,根据下面的公式计算并输出y的值。 【参考解答】 $(function () { $('pre.prettyprint code').each(function () { va
2288 0
HEVC代码追踪(十一。四):运动估计/补偿之xPatternSearch和xPatternSearchFast
<p><br></p> <p></p> <pre name="code" class="cpp">Void TEncSearch::xPatternSearch( TComPattern* pcPatternKey, Pel* piRefY, Int iRefStride, TComMv* pcMvSrchRngLT, TComMv* pcMvSrchRngRB, TComMv&amp;
1816 0