EWMA模型估计波动率

article/2025/10/26 13:05:51

#tushare ID:474220
指数移动平均(Exponential Moving Average, EMA或EWMA)是以指数式递减加权的移动平均。各数值的加权而随时间而指数式递减,越近期的数据加权越重,但较旧的数据也给予一定的加权。加权的程度以常数λ决定,λ数值介乎0至1。
金融资产的波动率对理解资产价格的动态特征是是极为重要的。历史波动率是过去一段时间标的资产价格的波动程度,历史波动率方法是利用历史数据预测资产的波动率。EWMA模型是常用的历史波动率方法,下面我们通过python程序来展示如何实现EWMA模型对历史波动率的估计。
本次使用的数据来自与Tushare平台,有较为全面的金融数据可供使用,通过数据接口调用数据简单快捷,可以通过在终端利用命令pip install tushare安装该库并进行调用。

1.首先我们导入必要的库

import numpy as np
import scipy.io as scio
import datetime
from scipy import stats
import matplotlib.pyplot as plt
import scipy.stats as st
import tushare as ts
#正常显示画图时出现的中文和负号
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

2.初始化pro接口。token可以在https://tushare.pro/上注册后获得。

pro = ts.pro_api('your token')

3.提取数据。本次我们调用的是600809.SH这支股票2021年的日线数据,同时并对数据进行一些预处理。

data = pro.daily(ts_code='600809.SH', start_date='20210101', end_date='20211231')
data = data.sort_values(by=['trade_date']).reset_index(drop=True)

4.提取收益率并格式化时间,为下一步计算做好准备

date = np.array(pd.to_datetime(data['trade_date']))
r = np.array(data['pct_chg'])/100

 5.计算波动率,并绘制各种lambda下的波动率图形。

lamda=0.94
n=len(r)
s11=[np.var(r[0:9])]
for i in range(1,n):s11=np.append(s11,lamda*s11[i-1]+(1-lamda)*r[i-1]**2)
lambda2=0.84
s12=[np.var(r[0:9])]
for i in range(1,n):s12=np.append(s12,lambda2*s12[i-1]+(1-lambda2)*r[i-1]**2)
lambda3=0.64
s13=[np.var(r[0:9])]
for i in range(1,n):s13=np.append(s13,lambda3*s13[i-1]+(1-lambda3)*r[i-1]**2)
plt.xlabel("日期")
plt.ylabel("波动率")
plt.title("用EWMA模型求波动率")
plt.plot(date,s11,'r-',label='lambda=0.94',linewidth=1)
plt.plot(date,s12,'y-.',label='lambda=0.84',linewidth=1)
plt.plot(date,s13,'b:',label='lambda=0.64',linewidth=1)
plt.legend()
plt.show()

 

 

 


http://chatgpt.dhexx.cn/article/jAd8vOiI.shtml

相关文章

史上最通俗易懂的EWMA(指数加权移动平均)的参数解释以及程序代码

文章目录 一、EWMA(指数加权移动平均)是什么?二、详细的参数解释3、使用Python pandas库中的ewm()函数实现指数加权移动平均(EWMA)的示例代码总结 一、EWMA(指数加权移动平均)是什么&#xff1f…

用计算器来进行计算10的几次方的问题

一、首先找到计算器,然后就是找到科学,如图: 二、比如说进行10的2次方,先进行CE清除,然后就是选中10,然后就是选中如下:10^x,如图: 选择10的平方为100,如图: …

十次方项目登陆问题 token令牌解析,claims获取不到userid,求大神帮忙看下代码解决问题

十次方项目登陆问题 token令牌解析,claims获取不到userid 这个是拦截器: 判断角色是用户还是管理员,如果是用户就存入(“claims_user”,token);到controller控制层 此时clims为空,所以下面取值为权限不足

C语言求次方代码

使用pow库函数求2的10次方 #include <stdio.h> #include <math.h>int main() {double a pow(2, 10);printf("%lf",a);return 0; }使用C编译器运行程序 只需更换pow函数中的参数即可求其他结果 _Check_return_ double __cdecl pow(_In_ double _X, …

十次方:区块链需要服务器吗?

随着区块链被正名&#xff0c;上升国家战略后&#xff0c;区块链“忽如一夜春风来&#xff0c;瞬间火遍了全国”。 什么是区块链? 区块链技术是指全民参与记账的一种方式。所有系统背后都有一个数据库&#xff0c;你可以把它看作是一个大账簿。目前是各自记各自的账。它最本…

十次方:服务器的1U、2U、U代表什么意思?

我们在租用或购买服务器的时候&#xff0c;其中有个需要考虑的因素是&#xff0c;我们的服务器需要选择多少U?有1U、2U、4U等服务器可以选择&#xff0c;那么这里的U代表是什么意思? 服务器中的 “U” 代表什么意思 ? 服务器里的“U”特指的是服务器机箱的高度&#xff0c…

五次方数(C语言)

解题思路&#xff1a; 本题的难点在于如何判断边界&#xff0c;我们先判断上边界&#xff1a;我们试着以每位数最大单位数9为边界&#xff0c;所以9^559049,有5位数&#xff0c;所以5*59049295245&#xff1b; 下边界&#xff1a;按题目要求&#xff0c;对一个数十进制表示时的…

科学计算机怎么用10次方,一个数怎么用计算器开10次方

2010-10-20 关于使用计算器&#xff1f;谢谢 那个x^y的按键就是x的y次方的意思 不知道您上高中没有&#xff0c;大概是上高中的时候学的&#xff0c;开根号的新的表示方法 比如说根号下3&#xff0c;也就是2次根号下3&#xff0c;就等于3的2分之1次方 再比如3次根号下16&#x…

window如何安装head插件

head插件是给Elasticsearch提供的图形化界面 1&#xff0c;下载地址 head插件下载地址 2&#xff0c;解压 3&#xff0c;安装node js&#xff0c;安装cnpm npm install ‐g cnpm ‐‐registryhttps://registry.npm.taobao.org4&#xff0c;将grunt安装为全局命令 。Grunt是…

用计算机怎么按四分之三次方等于多少,八十一分之十六的负四分之三次方怎么算,要具体过程,答案是多少?...

八十一分之十六的负四分之三次方怎么算&#xff0c;要具体过程&#xff0c;答案是多少&#xff1f;以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01; 八十一分之十六的负四分之三次方怎么算&a…

十次方:机架式服务器和塔式服务器有什么区别?

通过服务器外形的结构,可以把服务器分为塔式、机架式、刀片式服务器三种类型。而目前市场上比较常见的是塔式和机架式服务器两种,那么这两种服务器有什么区别呢? 外形上: 塔式服务器它的外形上跟我们普通电脑的主机差不多,是立的,可以随便放置,无需机柜。只不过个头更…

【十次方】Springboot中使用SpringCache做缓存

Spring全家桶分布式微服务&#xff08;十次方项目学习&#xff09; 十次方学习交流qq群&#xff1a;672373393 其实在sptringboot中本身提供了一个缓存SpringCache&#xff0c;相比redis更加的简单&#xff0c;但是相对的功能也没有redis强大。如果没有其它特别的需求&#xff…

10的几次方 用计算机计算公式,在excel中如何计算10的几次方呢

excel的运算功能我们都知道非常强大&#xff0c;但是在excel中如何计算10的几次方呢&#xff1f;今天小编就通过一个简单的例子来给大家介绍下在excel中10的几次方的输入和运算方法。 第一、excel 10的几次方运算结果。 在excel中如何得到 10的几次方的结果呢&#xff1f;提供两…

【十次方】Springboot中使用Redis做缓存

Spring全家桶分布式微服务&#xff08;十次方项目学习&#xff09; 十次方学习交流qq群&#xff1a;672373393 今天学习十次方项目&#xff0c;其中说到了如何在springboot框架中如何使用redis缓存&#xff0c;写篇博客记录一下。 为什么要用缓存&#xff1f; 在我们平时开发…

python开三次方_python 三次方

广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! python语言支持以下类型的运算符: 算术运算符 比较(关系)运算符 赋值运算符 逻辑运算符 位运算符成员运算符 身份运算符 运算符优先级算术运算符 + — * % **…

十次方微服务全套课程介绍

连接资源地址 一&#xff1a;课程简介 《十次方社交系统》采用目前主流的微服务系统架构SpringBootSpringCloudSpringData进行开发&#xff0c;前端技术采用Vue.js。系统整体分为三大部分&#xff1a;微服务、网站前台、网站管理后台。功能模块包括文章、问答、招聘、活动、吐…

【JVM】jvm简介特点和jvm在整个计算机框架中的位置

本文目录 一、JVM概念二、JVM介绍三、JVM特点四、JVM的位置一、JVM概念 什么是JVM? JVM(Java Virtual Machine的缩写)一般指java虚拟机。 Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,是Java语言的运行环境,它是Java 最具吸引力的特性之…

JVM - 堆

# JVM - 堆 JDK版本&#xff1a;1.8 # 1、堆的核心概述 堆内存针对于JVM进程是唯一的&#xff0c;也就是一个进程只有一个JVM&#xff0c;一个进程下会存在多个线程&#xff0c;这些线程共享同一个堆空间&#xff0c;其中还可以被划分为线程私有的缓冲区(Thread Local Allocat…

Java虚拟机 - JVM是什么?

为什么要有JVM&#xff1f; JVM就是Java运行虚拟机&#xff0c;那么虚拟机又分为系统虚拟机和程序虚拟机&#xff0c;而JVM是属于程序虚拟机&#xff0c;所以不要看到是虚拟机就误认为JVM是系统虚拟机。 JVM是帮助Java程序开发者在开发过程中无需考虑无用的资源需要进行回收&a…

jvm虚拟机-什么是jvm

最近看了一段时间jdk源码&#xff0c;在看源码的过程中对数据的存储不是很清楚&#xff0c;当时就在想数据到底存在哪里去了&#xff1f;以前只是看博客什么的对jvm有一个大概的了解&#xff0c;但是没有深入研究。经过一段时间的研究<<深入理解java虚拟机后>>&…