基于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程序代码的几种方法总结
Apr 28 Python
python下调用pytesseract识别某网站验证码的实现方法
Jun 06 Python
Python使用matplotlib绘制三维图形示例
Aug 25 Python
uwsgi+nginx部署Django项目操作示例
Dec 04 Python
Python实现判断一个整数是否为回文数算法示例
Mar 02 Python
使用Flask-Cache缓存实现给Flask提速的方法详解
Jun 11 Python
Pycharm简单使用教程(入门小结)
Jul 04 Python
基于python3 的百度图片下载器的实现代码
Nov 05 Python
Pycharm安装并配置jupyter notebook的实现
May 18 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
python实现大文本文件分割成多个小文件
Apr 20 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实现网站留言板功能
2015/11/04 PHP
Laravel框架实现利用监听器进行sql语句记录功能
2018/06/06 PHP
YII分模块加载路由的实现方法
2018/10/01 PHP
jQuery 获取对象 基本选择与层级
2010/05/31 Javascript
关于锚点跳转及jQuery下相关操作与插件
2012/10/01 Javascript
使用Grunt.js管理你项目的应用说明
2013/04/24 Javascript
jQuery实现拖动调整表格单元格大小的代码实例
2015/01/13 Javascript
全面解析JavaScript中apply和call以及bind(推荐)
2016/06/15 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
[03:58]兄弟们,回来开黑了!DOTA2昔日战友招募宣传视频
2016/07/17 DOTA
改进Django中的表单的简单方法
2015/07/17 Python
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
python获取当前用户的主目录路径方法(推荐)
2017/01/12 Python
Python中django学习心得
2017/12/06 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python之两种模式的生产者消费者模型详解
2018/10/26 Python
解决PyCharm的Python.exe已经停止工作的问题
2018/11/29 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
详解python之heapq模块及排序操作
2019/04/04 Python
python实现网站微信登录的示例代码
2019/09/18 Python
基于Python获取照片的GPS位置信息
2020/01/20 Python
Python实现播放和录制声音的功能
2020/08/12 Python
python给list排序的简单方法
2020/12/10 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
浅谈HTML5 Web Worker的使用
2018/01/05 HTML / CSS
html5 postMessage前端跨域并前端监听的方法示例
2018/11/01 HTML / CSS
使用layui实现左侧菜单栏及动态操作tab项的方法
2020/11/10 HTML / CSS
short s1 = 1; s1 = s1 + 1;有什么错? short s1 = 1; s1 += 1;有什么错?
2014/09/26 面试题
大学生水文观测实习自我鉴定
2013/09/29 职场文书
借款协议书范本
2014/04/22 职场文书
学雷锋月活动总结
2014/04/25 职场文书
大学专科自荐信
2014/06/17 职场文书
幼儿园中班教学反思
2016/03/03 职场文书
JS前端使用canvas实现扩展物体类和事件派发
2022/08/05 Javascript
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers