python编写计算方差的函数_基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解...
我就废话不多说了,大家还是直接看代码吧!
# -*- 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编写计算方差的函数_基于python计算滚动方差(标准差)talib和pd.rolling函数差异详解...相关推荐
- python编写的动物识别专家系统_基于Python的动物识别专家系统
1. 利用pyqt5来设计专家系统的界面. 如下图一: 图一 起始界面 相应的运行过程的界面,如图二: 图二 相应的运行过程界面 2. 设置规则文本 guizhe.txt 有毛发 哺乳动物 有奶 哺乳 ...
- 用python写脚本筛选原创微博_基于python编写的微博应用
本文实例讲述了基于python编写的微博应用,分享给大家供大家参考.具体如下: 在编写自己的微博应用之前,先要到weibo开放平台申请应用的公钥和私钥. 下载python版的SDK,打开example ...
- python cut函数_基于python cut和qcut的用法及区别详解
我就废话不多说了,直接上代码吧: from pandas import Series,DataFrame import pandas as pd import numpy as np from num ...
- python用户名和密码登录函数_基于Python构建用户ID和密码存储查询系统,python,建立,一个,用户名,UserID,Password,的...
大家好,本篇博客目的是建立存储和查询用户名和密码的python系统,基础好的可跳过中间小干货,源码在末尾,喜欢的留下小赞哦! 系统主要功能 主要功能如下: 创建一个新用户及其密码 修改值定用户的密码 ...
- python中numpy数组的合并_基于Python中numpy数组的合并实例讲解
基于Python中numpy数组的合并实例讲解 Python中numpy数组的合并有很多方法,如 - np.append() - np.concatenate() - np.stack() - np. ...
- python的图书管理项目教程_基于python图书馆管理系统设计实例详解
写完这个项目后,导师说这个你完全可以当作毕业项目使用了,写的很全,很多的都设计考虑周全,但我的脚步绝不止于现在,我想要的是星辰大海!与君共勉! 这个项目不是我的作业, 只是无意中被拉进来了,然后就承担 ...
- python怎样使用各个日期赤纬_基于Python的天文软件命令行界面设计与实现
计算机软件技术的不断发展,推动了人机交互技术的长足进步.从传统的命令行(Command Line Interface,CLI),到图形用户界面(Graphical User Interface,GUI ...
- python随机输出52张牌_基于Python制作一副扑克牌过程详解
整理一下通过本文分享给大家, 该案例是通过 Python 类属性创建一幅除去大王.小王之后的 52 张扑克牌,并实现随机抽牌.排序.洗牌等功能: 创建一个纸牌类 一副扑克除去大王小王之外,剩下的 52 ...
- python中sample是什么意思_基于Python中random.sample()的替代方案
python中random.sample()方法可以随机地从指定列表中提取出N个不同的元素,但在实践中发现,当N的值比较大的时候,该方法执行速度很慢,如: numpy random模块中的choice ...
- python编写win 本地reader程序_使用Python、win32api和Acrobat Reader 9打印PDF
我有报告,我要发送到一个系统,要求报告是可读的PDF格式.我尝试了所有的免费库和应用程序,我发现唯一有效的是Adobe的acrobat家族.在 我用python编写了一个快速脚本,它使用win32ap ...
最新文章
- 生信服务器 | Linux 时间戳和标准时间
- java cutdown_Java并发程序入门介绍
- 10.13 上午 考试
- 三极管基本参数介绍与放大电路分析
- setTimeout(fn,0)
- CF16A Flag
- np.random的随机数函数
- NuGet:添加EntityFramework
- 移动电子商务,“移动”至生活
- kali linux set工具,求助: 社会工程学工具set 出现错误for kali linux.
- 调用ICodeCompiler来计算字符串表达式
- Java基础--Java---IO流------GUI(布局)、Frame、事件监听机制、窗体事件、Action事件、鼠标事件、对话框Dialog、键盘事件、菜单
- apache多域名403配置
- Axure 初学者如何做 App 产品原型?
- 互联网+餐饮:看李帅与面点王董事长张和平如何说
- Python3网络爬虫(十三):王者荣耀那些事!(Fiddler之手机APP爬取)
- 什么是零知识证明?Tokenview
- C语言循环语句进阶练习题
- 如何抓住ChatGPT的热潮,打造小红书爆款
- 大企业邮箱品牌排行中,哪个企业邮箱好用?