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

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

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

import pandas as pd
# 读取CSV文件
df = pd.read_csv('./000001.XSHE.csv')
df = df[:10]  # 取前10行数据
df
date open close high low volume money
0 2015/1/5 9.98 10.00 10.17 9.74 458099037 4.565388e+09
1 2015/1/6 9.90 9.85 10.23 9.71 346952496 3.453446e+09
2 2015/1/7 9.72 9.67 9.88 9.55 272274401 2.634796e+09
3 2015/1/8 9.68 9.34 9.72 9.30 225445502 2.128003e+09
4 2015/1/9 9.30 9.42 9.91 9.19 401736419 3.835378e+09
5 2015/1/12 9.29 9.22 9.40 9.05 248759608 2.293105e+09
6 2015/1/13 9.15 9.17 9.30 9.12 130822538 1.204987e+09
7 2015/1/14 9.23 9.25 9.49 9.18 202274250 1.889297e+09
8 2015/1/15 9.27 9.58 9.58 9.19 198933635 1.868796e+09
9 2015/1/16 9.62 9.60 9.75 9.48 249168874 2.403346e+09

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']]
date close MA_5
0 2015/1/5 10.00 NaN
1 2015/1/6 9.85 NaN
2 2015/1/7 9.67 NaN
3 2015/1/8 9.34 NaN
4 2015/1/9 9.42 9.656
5 2015/1/12 9.22 9.500
6 2015/1/13 9.17 9.364
7 2015/1/14 9.25 9.280
8 2015/1/15 9.58 9.328
9 2015/1/16 9.60 9.364

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

# 计算近5天的最大值
df['max_5'] = df['close'].rolling(5).max()
df[['date','close','max_5']]
date close max_5
0 2015/1/5 10.00 NaN
1 2015/1/6 9.85 NaN
2 2015/1/7 9.67 NaN
3 2015/1/8 9.34 NaN
4 2015/1/9 9.42 10.00
5 2015/1/12 9.22 9.85
6 2015/1/13 9.17 9.67
7 2015/1/14 9.25 9.42
8 2015/1/15 9.58 9.58
9 2015/1/16 9.60 9.60

同样可以使用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','收盘价_至今均值']]
date close MA_5 收盘价_至今均值
0 2015/1/5 10.00 NaN 10.000000
1 2015/1/6 9.85 NaN 9.925000
2 2015/1/7 9.67 NaN 9.840000
3 2015/1/8 9.34 NaN 9.715000
4 2015/1/9 9.42 9.656 9.656000
5 2015/1/12 9.22 9.500 9.583333
6 2015/1/13 9.17 9.364 9.524286
7 2015/1/14 9.25 9.280 9.490000
8 2015/1/15 9.58 9.328 9.500000
9 2015/1/16 9.60 9.364 9.510000
# 同样的,expanding函数后面可以接各类计算函数,计算从头至今的各类数据。
df['close'].expanding().max()
df['close'].expanding().min()
df['close'].expanding().std()

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

  1. 量化交易系列【2】Pandas数据筛选及处理相关操作

    量化交易系列[2]Pandas数据筛选及处理相关操作 筛选数据 处理缺失值 删除空值dropna 补全缺失值fillna 排序函数 合并操作 去除重复数据 示例中使用的'000001.XSHE.csv ...

  2. 移植 Python 量化交易 TA-Lib 库到函数计算

    TA-Lib,全称"Technical Analysis Library", 即技术分析库,是 Python 金融量化的高级库,涵盖了 150 多种股票.期货交易软件中常用的技术分 ...

  3. Python 量化交易系列教程

    Python 量化交易 例如:第一章 Python 基础知识 Python 基本操作练习 Python 量化交易 Python 基本操作练习 一.基础运算子练习 二.条件判断练习 三.循环练习 四.函 ...

  4. 股票python量化交易012-使用shift函数计算涨跌幅

    认识shift函数 简单理解就是可以把数据整体进行偏移,如csv中的某列数据整体下移一行 ================> 转换后变为: 转换后就得到一张临时的一张表,然后可以用这张临时表的数 ...

  5. QUANT[1]:从零开始量化交易

    本文是量化交易系列博文的第一篇,后续的如下所列 QUANT[1]:从零开始量化交易 - プロノCodeSteel - CSDN博客 QUANT[2]:量化交易策略基本框架搭建 - プロノCodeSte ...

  6. QUANT[10]量化交易——因子暴露度,因子收益与模型

    QUANT[1]:从零开始量化交易 - プロノCodeSteel - CSDN博客 QUANT[2]:量化交易策略基本框架搭建 - プロノCodeSteel - CSDN博客 QUANT[3]:量化交 ...

  7. Python机器学习与量化交易

    文章目录 1. 量化交易简介 1.1 量化交易的历史 1.2 什么是量化交易 1.3 量化交易分类 1.4 金融产品及衍生品的投资策略 1.5 量化交易的优势 1.6 如何做量化交易项目 2. 量化回 ...

  8. 一位从事量化交易的实战者,手把手带你入门量化交易!

    大数据文摘出品 来源:quantstart 编译:LYLM.笪洁琼 本文作者是一位从事量化交易的实战者,他将他的实战心得写成一个量化交易系列,本篇则是系列的第一篇,从文中你会对整个量化交易的框架.流程 ...

  9. 零起点Python大数据与量化交易

    零起点Python大数据与量化交易 第1章 从故事开始学量化 1 1.1 亿万富翁的"神奇公式" 2 1.1.1 案例1-1:亿万富翁的"神奇公式" 2 1.1 ...

最新文章

  1. 算力不是王道,强化学习之父Rich Sutton的六点错误
  2. docker 网络 实现
  3. 品牌价值越发重要的时代,谁才是服务行业标杆?
  4. AJAX代码示例(不使用AJAX控件)
  5. java: -source 1.5 中不支持 diamond 运算符 (请使用 -source 7 或更高版本以启用 diamond 运算符)
  6. MySQL explain 命令
  7. azure mysql on vnet_管理 VNet 终结点 - Azure 门户 - Azure Database for MySQL | Microsoft Docs
  8. 项目管理学习总结(6)——产品经理常用的工具有哪些?
  9. BXP_4.1安装配置及域应用随记一
  10. QT下信号与槽不在同一个线程中如何connect
  11. 追赶法求解线性方程组matlab,追赶法求解三对角线性方程组Matlab编程
  12. 3次样条曲线差值函数c++实现
  13. android+世界地图高清版大图片,世界地图全图高清版
  14. javascript原生代码实现轮播图片
  15. python主函数怎么写_类中的Python主函数
  16. CMY和CMYK彩色模型
  17. java读取Excel文件并各方案对比
  18. vue项目中常用解决跨域的方法
  19. python——设计一个简单的购房商贷月供计算器
  20. 程序员必备的 58 个学习网站

热门文章

  1. telnet 不是内部或外部命令,也不是可运行的程序解决方案
  2. 工业机器人的自由度是什么?
  3. 嵌入式C语言之零碎知识
  4. 安装Linux 乌班图 Ubuntu 系统
  5. JavaScript入门学习指南
  6. Python爬虫学习笔记 (2) [初级] 初识 requests + bs4 + re
  7. Sealed class密封类详解
  8. Keras中predict()方法和predict_classes()方法和evaluate()方法
  9. mosquitto接口流程图
  10. AndroidStudio升级后,离线更新Gradle版本失败问题解决