基于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的setuptools框架下生成egg的教程
Apr 13 Python
总结python实现父类调用两种方法的不同
Jan 15 Python
Python cookbook(数据结构与算法)实现优先级队列的方法示例
Feb 18 Python
python unittest实现api自动化测试
Apr 04 Python
浅谈django rest jwt vue 跨域问题
Oct 26 Python
对Python3中bytes和HexStr之间的转换详解
Dec 04 Python
手把手教你使用Python创建微信机器人
Apr 29 Python
Pyqt QImage 与 np array 转换方法
Jun 27 Python
python超时重新请求解决方案
Oct 21 Python
构建高效的python requests长连接池详解
May 02 Python
浅析Python OpenCV三种滤镜效果
Apr 11 Python
Python何绘制带有背景色块的折线图
Apr 23 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
这部番真是良心,画质好到像风景区,剧情让人跟着小公会热血沸腾
2020/03/10 日漫
谈谈PHP语法(4)
2006/10/09 PHP
PHP登陆后跳转到登陆前页面实现思路及代码
2014/01/17 PHP
ThinkPHP连接数据库及主从数据库的设置教程
2014/08/22 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
ThinkPHP开发--使用七牛云储存
2017/09/14 PHP
javascript 设置文本框中焦点的位置
2009/11/20 Javascript
js定义对象或数组直接量时各浏览器对多余逗号的处理(json)
2011/03/05 Javascript
jquery ajax修改全局变量示例代码
2013/11/08 Javascript
纯css+js写的一个简单的tab标签页带样式
2014/01/28 Javascript
BootStrap tab选项卡使用小结
2020/08/09 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
javascript 注释代码的几种方法总结
2017/01/04 Javascript
vuejs父子组件通信的问题
2017/01/11 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
vue 解决异步数据更新问题
2019/10/29 Javascript
如何检测JavaScript中的死循环示例详解
2020/08/30 Javascript
videocapture库制作python视频高速传输程序
2013/12/23 Python
Tensorflow的可视化工具Tensorboard的初步使用详解
2018/02/11 Python
python实现日常记账本小程序
2018/03/10 Python
详解Python做一个名片管理系统
2019/03/14 Python
详解Python中的正斜杠与反斜杠
2019/08/09 Python
django model object序列化实例
2020/03/13 Python
python让函数不返回结果的方法
2020/06/22 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
美国在线精品家居网站:Burke Decor
2017/04/12 全球购物
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
国际贸易专业个人求职信格式
2014/02/02 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
小学生优秀评语
2014/12/29 职场文书
法务专员岗位职责
2015/02/14 职场文书
2015国庆节66周年演讲稿
2015/03/20 职场文书
活动宣传稿范文
2015/07/23 职场文书
OpenCV-Python实现人脸美白算法的实例
2021/06/11 Python