基于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编程django实现同一个ip十分钟内只能注册一次
Nov 03 Python
Python实现的双色球生成功能示例
Dec 18 Python
Django 根据数据模型models创建数据表的实例
May 27 Python
Python for循环生成列表的实例
Jun 15 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
python os.path.isfile 的使用误区详解
Nov 29 Python
Python列表切片常用操作实例解析
Dec 16 Python
解决pycharm安装第三方库失败的问题
May 09 Python
python Paramiko使用示例
Sep 21 Python
python 将html转换为pdf的几种方法
Dec 29 Python
Pytorch中TensorBoard及torchsummary的使用详解
May 12 Python
python装饰器代码解析
Mar 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
随机头像PHP版
2006/10/09 PHP
小偷PHP+Html+缓存
2006/11/25 PHP
用PHP实现浏览器点击下载TXT文档的方法详解
2013/06/02 PHP
PHP实现广度优先搜索算法(BFS,Broad First Search)详解
2017/09/16 PHP
PDO::rollBack讲解
2019/01/29 PHP
鼠标经过的文本框textbox变色
2009/05/21 Javascript
打造基于jQuery的高性能TreeView(asp.net)
2011/02/23 Javascript
Jquery中删除元素的实现代码
2011/12/29 Javascript
JS上传图片前的限制包括(jpg jpg gif及大小高宽)等
2012/12/19 Javascript
Javascript学习笔记之数组的构造函数
2014/11/23 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
Extjs让combobox写起来简洁又漂亮
2017/01/05 Javascript
微信小程序之购物车功能
2020/09/23 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
layui--js控制switch的切换方法
2019/09/03 Javascript
让你30分钟快速掌握vue3教程
2020/10/26 Javascript
Vue 防止短时间内连续点击后多次触发请求的操作
2020/11/11 Javascript
Python性能优化技巧
2015/03/09 Python
python机器学习之神经网络(三)
2017/12/20 Python
python通过伪装头部数据抵抗反爬虫的实例
2018/05/07 Python
Python二进制串转换为通用字符串的方法
2018/07/23 Python
padas 生成excel 增加sheet表的实例
2018/12/11 Python
Python 抓取微信公众号账号信息的方法
2019/06/14 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
CSS3地图动态实例代码(圆圈向外扩散)
2018/06/15 HTML / CSS
基于HTML5的WebGL实现json和echarts图表展现在同一个界面
2017/10/26 HTML / CSS
美国知名艺术画网站:Art.com
2017/02/09 全球购物
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
国际经济贸易专业推荐信
2013/11/06 职场文书
教师档案管理制度
2014/01/23 职场文书
幼儿园法制宣传日活动总结
2014/11/01 职场文书
学生保证书格式
2015/02/27 职场文书
电影小兵张嘎观后感
2015/06/03 职场文书
新手入门Mysql--概念
2021/06/18 MySQL
Oracle数据库中通用的函数实例详解
2022/03/25 Oracle
MySQL 外连接语法之 OUTER JOIN
2022/04/09 MySQL