基于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操作Mysql实例代码教程在线版(查询手册)
Feb 18 Python
python实现sublime3的less编译插件示例
Apr 27 Python
Python聚类算法之基本K均值实例详解
Nov 20 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
详解python实现识别手写MNIST数字集的程序
Aug 03 Python
Python获取Redis所有Key以及内容的方法
Feb 19 Python
python同步windows和linux文件
Aug 29 Python
python调用c++返回带成员指针的类指针实例
Dec 12 Python
python爬虫把url链接编码成gbk2312格式过程解析
Jun 08 Python
解决keras GAN训练是loss不发生变化,accuracy一直为0.5的问题
Jul 02 Python
python如何调用java类
Jul 05 Python
快速解释如何使用pandas的inplace参数的使用
Jul 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
解析array splice的移除数组中指定键的值,返回一个新的数组
2013/07/02 PHP
yii2分页之实现跳转到具体某页的实例代码
2016/06/02 PHP
PHP的mysqli_stmt_init()函数讲解
2019/01/24 PHP
thinkphp5使html5实现动态跳转的例子
2019/10/16 PHP
DWR Ext 加载数据
2009/03/22 Javascript
cookie丢失问题(认证失效) Authentication (用户验证信息)也会丢失
2009/06/04 Javascript
jquery控制显示服务器生成的图片流
2015/08/04 Javascript
jquery+CSS实现的多级竖向展开树形TRee菜单效果
2015/08/24 Javascript
Jquery中map函数的用法
2016/06/03 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
jQuery删除节点用法示例(remove方法)
2016/09/08 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
jQuery插件DataTable使用方法详解(.Net平台)
2016/12/22 Javascript
jQuery使用DataTable实现删除数据后重新加载功能
2017/02/27 Javascript
jQuery插件zTree实现获取一级节点数据的方法
2017/03/08 Javascript
微信小程序动态的加载数据实例代码
2017/04/14 Javascript
angular 基于ng-messages的表单验证实例
2017/05/04 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
JavaScript实现的原生态Tab标签页功能【兼容IE6】
2017/09/18 Javascript
Angular实现的自定义模糊查询、排序及三角箭头标注功能示例
2017/12/28 Javascript
vue-router实现编程式导航的代码实例
2019/01/19 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
axios封装与传参示例详解
2020/10/18 Javascript
浅谈用Python实现一个大数据搜索引擎
2017/11/28 Python
详解Django rest_framework实现RESTful API
2018/05/24 Python
Python Pandas批量读取csv文件到dataframe的方法
2018/10/08 Python
关于Pytorch的MLP模块实现方式
2020/01/07 Python
在django admin中配置搜索域是一个外键时的处理方法
2020/05/20 Python
网易微博Web App用HTML5开发的过程介绍
2012/06/13 HTML / CSS
如果Session Bean得Remove方法一直都不被调用会怎么样
2012/07/14 面试题
毕业生个人自荐书
2015/03/05 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
学生会主席任命书
2015/09/21 职场文书
python缺失值填充方法示例代码
2022/12/24 Python