基于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创建日历实例
Aug 21 Python
跟老齐学Python之变量和参数
Oct 10 Python
Python实现判断一行代码是否为注释的方法
May 23 Python
python使用装饰器作日志处理的方法
Jul 11 Python
如何不用安装python就能在.NET里调用Python库
Jul 12 Python
Python-copy()与deepcopy()区别详解
Jul 12 Python
python 中值滤波,椒盐去噪,图片增强实例
Dec 18 Python
Python找出列表中出现次数最多的元素三种方式
Feb 24 Python
详解vscode实现远程linux服务器上Python开发
Nov 10 Python
用python制作个视频下载器
Feb 01 Python
Python OpenCV快速入门教程
Apr 17 Python
总结三种用 Python 作为小程序后端的方式
May 02 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
回答PHPCHINA上的几个问题:URL映射
2007/02/14 PHP
PHP 杂谈《重构-改善既有代码的设计》之五 简化函数调用
2012/05/07 PHP
Prototype Hash对象 学习
2009/07/19 Javascript
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
js下写一个事件队列操作函数
2010/07/19 Javascript
理解Javascript_03_javascript全局观
2010/10/11 Javascript
jQuery 菜单随滚条改为以定位方式(固定要浏览器顶部)
2012/05/24 Javascript
jquery实现文字由下到上循环滚动的实例代码
2013/08/09 Javascript
js二维数组定义和初始化的三种方法总结
2014/03/03 Javascript
JQuery为页面Dom元素绑定事件及解除绑定方法
2014/04/23 Javascript
php实例分享之实现显示网站运行时间
2014/05/20 Javascript
jquery Validation表单验证使用详解
2020/09/12 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
Angular.js 实现数字转换汉字实例代码
2016/07/14 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
浅析JS中对函数function的理解(基础篇)
2016/10/14 Javascript
AngularJs 利用百度地图API 定位当前位置 获取地址信息
2017/01/18 Javascript
js实现时间轴自动排列效果
2017/03/09 Javascript
JavaScript常用数学函数用法示例
2018/05/14 Javascript
默认浏览器设置及vue自动打开页面的方法
2018/09/21 Javascript
vue实现在线学生录入系统
2020/05/30 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
浅谈JS for循环中使用break和continue的区别
2020/07/21 Javascript
python hough变换检测直线的实现方法
2019/07/12 Python
Django异步任务线程池实现原理
2019/12/17 Python
基于Python3.7.1无法导入Numpy的解决方式
2020/03/09 Python
基于Python-Pycharm实现的猴子摘桃小游戏(源代码)
2021/02/20 Python
稀有和绝版书籍:Biblio.com
2017/02/02 全球购物
编写函数,将一个3*3矩阵转置
2013/10/09 面试题
就业协议书范本
2014/04/11 职场文书
2014年初一班主任工作总结
2014/11/08 职场文书
初中生思想道德自我评价
2015/03/09 职场文书
大学生支教感言
2015/08/01 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
宪法宣传标语100条
2019/10/15 职场文书
详解Go语言中配置文件使用与日志配置
2022/06/01 Golang