基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解


Posted in Python onJune 08, 2020

我就废话不多说了,大家还是直接看代码吧!

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 12 11:23:46 2018
@author: henbile
"""
 
#计算滚动波动率可以使用专门做技术分析的talib包里面的函数,也可以使用pandas包里面的滚动函数。
#但是两个函数对于分母的选择,就是使用N还是N-1作为分母这件事情上是有分歧的。
#另一个差异在于:talib包计算基于numpy,而pd.rolling是基于Series或者DataFrame的。
 
import pandas as pd
import numpy as np
import talib as tb
 
a = tb.VAR(closeFull[:,0], timeperiod = 12, nbdev =1)
b = tb.VAR(closeFull[:,0], timeperiod = 12, nbdev =0)
 
#我以为nbdev是涉及分母的数量,发现其实不是。nbdev = -1也没有改变。
 
c = pd.Series(closeFull[:,0]).rolling(window = 12, center = False).var()
#tb基于np数据,pd基于pd包的两个类型的数据。
 
d = pd.rolling_var(pd.Series(closeFull[:,0]), window= 12, min_periods=None, freq=None, center=False, how=None)
#__main__:1: FutureWarning: pd.rolling_var is deprecated for Series and will be removed in a future version, replace with 
#    Series.rolling(window=12,center=False).var()
 
#以前的公式是d,现在运行d会报错,所以改正成c的形式。
 
closeFull[0:12,0].var(ddof =1)
#Out[28]: 0.30576590909090895
 
#ddof参数的意义:分母是N-ddof
 
closeFull[0:12,0].var(ddof =0)
#Out[29]: 0.28028541666666656
 
#因为window是12,所以选第11个print
print(a[11],b[11],c[11],d[11])
#0.28028541666667195 0.28028541666667195 0.3057659090909086 0.3057659090909086
 
#计算都是var的计算,大胆的推测std的计算也是适用的。
#talib包的std运算的公式是tb.STDDEV
#pd.rolling就是var换成std
#谨慎起见,还是计算一下,看一看。
#最后发现大胆的推测是正确的。
 
e = tb.STDDEV(closeFull[:,0], timeperiod = fastPeriod, nbdev = 1)
f = pd.Series(closeFull[:,0]).rolling(window = fastPeriod, center = False).std()
 
closeFull[0:12,0].std(ddof =1)
#Out[45]: 0.5529610375884624
 
closeFull[0:12,0].std(ddof =0)
#Out[46]: 0.5294198869202653
 
print(e[11], f[11])
#0.5294198869202704 0.5529610375884622

补充知识:python —— .rolling(20).std()

#在这里我们取20天内的标准差

基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解

以上这篇基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python转码问题的解决方法
Oct 07 Python
Python连接MySQL并使用fetchall()方法过滤特殊字符
Mar 13 Python
一个Python最简单的接口自动化框架
Jan 02 Python
python实现飞机大战
Sep 11 Python
windows7 32、64位下python爬虫框架scrapy环境的搭建方法
Nov 29 Python
在python中对变量判断是否为None的三种方法总结
Jan 23 Python
微信小程序python用户认证的实现
Jul 29 Python
python利用tkinter实现屏保
Jul 30 Python
np.random.seed() 的使用详解
Jan 14 Python
Python使用plt.boxplot() 参数绘制箱线图
Jun 04 Python
Python 实现一个计时器
Jul 28 Python
python爬虫分布式获取数据的实例方法
Nov 26 Python
Python实现查找数据库最接近的数据
Jun 08 #Python
python numpy库np.percentile用法说明
Jun 08 #Python
python thrift 实现 单端口多服务的过程
Jun 08 #Python
Python astype(np.float)函数使用方法解析
Jun 08 #Python
python opencv 实现读取、显示、写入图像的方法
Jun 08 #Python
python:删除离群值操作(每一行为一类数据)
Jun 08 #Python
pyecharts在数据可视化中的应用详解
Jun 08 #Python
You might like
php错误提示failed to open stream: HTTP request failed!的完美解决方法
2011/06/06 PHP
学习php设计模式 php实现适配器模式
2015/12/07 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
javascript跨域刷新实现代码
2011/01/01 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
node.js中的fs.futimesSync方法使用说明
2014/12/17 Javascript
浅谈JavaScript function函数种类
2014/12/29 Javascript
jQuery选择器源码解读(六):Sizzle选择器匹配逻辑分析
2015/03/31 Javascript
JavaScript表格常用操作方法汇总
2015/04/15 Javascript
js实现仿Discuz文本框弹出层效果
2015/08/13 Javascript
分享两款带遮罩的jQuery弹出框
2015/12/30 Javascript
纯JavaScript基于notie.js插件实现消息提示特效
2016/01/18 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
JS延时器提示框的应用实例代码解析
2016/04/27 Javascript
JavaScript中setTimeout的那些事儿
2016/11/14 Javascript
微信小程序 保留小数(toFixed)详细介绍
2016/11/16 Javascript
详解webpack 入门总结和实践(按需异步加载,css单独打包,生成多个入口文件)
2017/06/20 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
vue2.0 可折叠列表 v-for循环展示的实例
2018/09/07 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
2019/02/21 Javascript
微信小程序开发之转发分享功能
2019/10/22 Javascript
vue 验证两次输入的密码是否一致的方法示例
2020/09/29 Javascript
[28:42]Ti4正赛VG vs NEWBEE1
2014/07/19 DOTA
AmazeUI 列表的实现示例
2020/08/17 HTML / CSS
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
项目经理的岗位职责
2013/11/23 职场文书
我的动漫时代的创业计划书范文
2014/01/27 职场文书
家长对老师的感言
2014/03/11 职场文书
“九一八事变纪念日”国旗下讲话稿
2014/09/14 职场文书
博士生专家推荐信
2014/09/26 职场文书
教师个人查摆剖析材料
2014/10/14 职场文书
幼儿园安全工作总结2015
2015/04/20 职场文书
Python中requests做接口测试的方法
2021/05/30 Python
oracle重置序列从0开始递增1
2022/02/28 Oracle
集英社今正式宣布 成立游戏公司“集英社Games”
2022/03/31 其他游戏