股票高频数据(分钟数据)的入门分析方法——已实现波动率的计算(含完整代码)

本文摘要

本文叙述了对股票市场高频数据分析一个简单方法,即已实现波动率的计算和后续的相关研究。
采用上证综指2019年至2021年3年间实时交易价格的每分钟数据,在已实现方差法下计算了各抽样频率下上证综指日已实现波动率的数值(Realized Volatility,以下简称RV),分析了上证综指在不同抽样频率下计算得到的RV之间的统计特征与关联。

研究背景

波动率的种类多种多样,如历史波动率、实际波动率,隐含波动率等等,在诸多的形形色色的波动率种类中,有一种波动率独树一帜,其以可以准确描绘股市微观结构,充分反映股市波动信息而备受关注,即已实现波动率(Realized Volatility),其由Merton(1980)基于日内高频数据提出这一全新的概念。已实现波动率是由日内高频数据计算得出的,在充分利用了日内交易信息的同时,包含了日内收益率变化的全部信息,因此在理论上可以使波动率的估计更加准确。

已实现波动率的计算

什么是已实现波动率

已实现波动率衡量的是股票价格在一天内波动的剧烈情况

计算原理

本文的计算RV的方法如下:对于第 t t t个交易日,整个交易时间段记为[0,1],将其分成 n = 1 / Δ n=1/\Delta n=1/Δ( Δ \Delta Δ为采样频率)个子区间,RV 被定义为该日所有高频收益率的平方和:
R V t = ∑ i = 1 1 / Δ r t , i 2 RV_t=\sum_{i=1}^{1/\Delta }r_{t,i}^2 RVt=i=11/Δrt,i2
其中 r t , i r_{t,i} rt,i是第 t t t天第 i i i个交易间隔内的对数收益率,按照以下公式计算:
r , i = l n P t , i − l n P t , i − 1 r_{,i}=lnP_{t,i}-lnP_{t,i-1} r,i=lnPt,ilnPt,i1
式中, P t , i P_{t,i} Pt,i为上证指数在 𝑡 𝑡 t 𝑖 𝑖 i时刻的收盘价, P t , i − 1 P_{t,i-1} Pt,i1为上证指数在 𝑡 𝑡 t 𝑖 𝑖 i时刻的前一个时刻的收盘价, 𝑡 𝑡 t取样本中交易日。

代码实现

首先要导入使用的相关包

# -*- coding: utf-8 -*-
"""
Created on Thu Apr 21 19:59:23 2022
@author: Tang
@e-mail: tang20200924@163.com
"""import pandas as pd
import numpy as np
import matplotlib.pylab as plt
import math

读入原始高频数据数据(本文使用的高频数据原始数据见作者上传的下载文件包)

#读入excel文件
filepath1 = r"C:\Users\admin\Desktop\上证综指\2019.xlsx"
df1 = pd.read_excel(filepath1)  
filepath2 = r"C:\Users\admin\Desktop\上证综指\2020.xlsx"
df2 = pd.read_excel(filepath2)  
filepath3 = r"C:\Users\admin\Desktop\上证综指\2021.xlsx"
df3 = pd.read_excel(filepath3)  

将读到的三个数据文件整合到一起,同时由于上证综合指数高频数据不是一般股票交易数据,其交易时间从9点到下午3点半之间都有,而且是不规则的,这里还需要对9点半和下午3点后的数据去除,中午休市的时候价格不变动,因此不影响计算结果。
去除方法是引入“时间戳”。

#合并3年数据
df=pd.concat([df1,df2,df3])#改写列名
new_col = ['date', 'time' ,'close']
df.columns = new_col#引入时间数据
df['time'] = pd.to_datetime(df['time'])
#清洗数据
df=df[(df['time'] >=pd.to_datetime('09:30:00')) & (df['time'] <= pd.to_datetime('15:00:00'))]

上文代码运行后结果
可以看到,在生成df数据集里,有20余万条数据,包含730个交易日,为了计算每天的数值,是个非常繁琐的过程,我们这里采用groups语句来处理。

#按日期分割
groups = df.groupby(df.date)

这个语句的作用是将df数据集按照天数分割成了730个小数据集储存在groups里,后面我们用循环语句调用即可:

"""计算RV_1min"""
RV_1min = []
for i,group in groups:group["close_lag"] = group["close"].shift(1)group["ln_clo"] = group["close"].apply(np.log) group["ln_clo_lag"] = group["close_lag"].apply(np.log) group["r"]=group["ln_clo"]-group["ln_clo_lag"]group["r^2"]=group["r"]*group["r"]rv = group['r^2'].sum()  RV_1min.append(rv)

这里计算的是以一分钟抽样频率计算的已实现波动率,同理修改参数我们也可以计算5分钟抽样频率的,一般认为1分钟抽样频率过高,5分钟或10分钟的抽样频率可以很好的平衡微观结构噪声和保持信息的不丢失。

"""计算RV_5min """ 
RV_5min = []
#计算RV_5min    
for i,group in groups:#获取抽取序列a=[]for i in range(0,len(group),5):#每隔5行取数据a.append(i) group=group.iloc[a] group["close_lag"] = group["close"].shift(1)group["ln_clo"] = group["close"].apply(np.log) group["ln_clo_lag"] = group["close_lag"].apply(np.log) group["r"]=group["ln_clo"]-group["ln_clo_lag"]group["r^2"]=group["r"]*group["r"]rv = group['r^2'].sum()  RV_5min.append(rv)    

剩下10分钟和30分钟的代码同样,不再展示。接下来将生成的结果汇总保存,已备后文分析。

"""生成最终数据"""
date=df[["date"]]#提取日期
date.drop_duplicates(subset=None, keep='first', inplace=True)#删除重复日期 
date=date.reset_index(drop=True)#重置索引以拼接#将list转换为dataframe以绘图  
RV_1 = pd.DataFrame([RV_1min],index=["RV_1min"])
RV_5 = pd.DataFrame([RV_5min],index=["RV_5min"])
RV_10 = pd.DataFrame([RV_10min],index=["RV_10min"])
RV_30 = pd.DataFrame([RV_30min],index=["RV_30min"])#转置
RV_1_2 = RV_1.T
RV_5_2 = RV_5.T
RV_10_2 = RV_10.T
RV_30_2 = RV_30.T#生成最终RV数据集
RV_SZ=pd.concat([date,RV_1_2,RV_5_2,RV_10_2,RV_30_2],axis=1)   

保存数据

"""保存数据
writer = pd.ExcelWriter(r"C:\Users\admin\Desktop\上证RV.xlsx")
RV_SZ.to_excel(writer, "sheet1")
writer.save()
"""

我们来绘图看下结果

"""绘图"""
plt.rcParams['font.sans-serif'] = ['simhei'] #字体为黑体
plt.rcParams['axes.unicode_minus'] = False #正常显示负号 #时序图的绘制
RV_SZ.plot("date","RV_30min",kind = 'line')#这是绘图函数
plt.xticks(rotation=45) #坐标角度旋转
plt.xlabel('日期') #横、纵坐标以及标题命名
plt.ylabel('已实现波动率')
plt.title('上证指数2019年到2021年日已实现波动率',loc='center')

30分钟抽样频率计算的RV
接下来的几篇文章将对RV进行分析,包括统计性描述,ARIMA模型,EGARCH模型等等。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/25657.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Midjourney绘制插画,绘画重来没有如此之简单 - 第12篇

历史文章&#xff08;文章累计460&#xff09; 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 用…

北大郭炜教授《程序与算法(二)算法基础》学习笔记

目录 第一章 枚举例题一 完美立方例题二 生理周期例题三 称硬币例题四 熄灯问题 第二章 递归&#xff08;一&#xff09;例题一 求阶乘例题二 汉诺塔例题三 n皇后问题例题四 逆波兰表达式 补充笔记&#xff08;from theCherno)第三章 递归&#xff08;二&#xff09;例题 一 求…

75岁图灵奖得主Hinton离职谷歌!痛悔毕生工作,无法阻止人类AI大战

【导读】入职谷歌10年后&#xff0c;人工智能教父Hinton选择离职。对于造就了如今AI技术繁荣的神经网络&#xff0c;Hinton表示&#xff1a;这是我毕生的后悔。 一觉醒来&#xff0c;整个科技圈惊掉了下巴&#xff01;&#xff01;&#xff01; 深度学习泰斗、神经网络之父Ge…

GPT可以被放任的在问答区应用吗?

GPT可以被放任的在问答区应用吗&#xff1f; 1、CSDN问答乱象2、GPT-4&#xff0c;大增长时代的序幕数字生命离我们到底还有多远&#xff1f;AI 家教/老师/教育 距离独立又有哪些需要完成的过程&#xff1f; 3、老顾对CSDN问答的一些看法老顾对GPT使用者的一些建议 1、CSDN问答…

华语辩论冠军的思辩表达

华语辩论冠军的思辩表达 这是一门思考表达的高阶技术&#xff0c;也是这个时代&#xff0c;每个人的必修课。 学了他&#xff0c;你才能在焦虑的时代学会如何思考与表达观点&#xff0c;才能领先他人。 查看原文下载 上一篇&#xff1a;零基础学photoshop 下一篇&#xff…

《杀破狼》:可能是华语动作电影最后的绝唱!

https://www.toutiao.com/a6681956509103948292/ 2019-04-20 20:43:54 《杀破狼》是一部大咖云集的警匪动作片&#xff0c;为了解决观众的审美疲劳期&#xff0c;本片在功夫设计上走了综合格斗的线路&#xff0c;散打、擒拿、跆拳道等功夫路数全面铺开&#xff0c;剧组的花边消…

挑起华语电影大梁后,金鸡奖正在借前沿技术实现蜕变

文 | 曾响铃 来源 | 科技向令说&#xff08;xiangling0815&#xff09; 与电影大量使用新技术拍摄、呈现更多样化的观影体验相对应的是&#xff0c;近些年&#xff0c;在“电影节”这件事上也出现越来越明显的技术身影&#xff0c;这一切都指向了如何提高观众的注意力。 在注…

Python爬虫:想听榜单歌曲?使用BeautifulSoup库只需要14行代码即可搞定

目录 BeautifulSoup库安装BeautifulSoup库BeautifulSoup库简介选择解释器基础用法 节点选择器获取节点名称属性内容获取所有子节点获取所有子孙节点父节点与兄弟节点 方法选择器find_all()方法find()方法 CSS选择器嵌套选择节点获取属性与文本 通过浏览器直接Copy-CSS选择器实战…

聊斋2聂小倩java华语版,【聊斋故事汇】之聂小倩(篇二)

第二日&#xff0c;宁采臣恐怕燕赤霞有事外出&#xff0c;便趁早找他相会。还准备好酒菜&#xff0c;请他一起喝酒。宁采臣暗地观察燕赤霞&#xff0c;心道&#xff1a;小倩说燕赤霞是位奇人异士&#xff0c;为何我端端看不出呢&#xff1f;宁采臣想着小倩的话&#xff0c;不得…

聊斋2聂小倩java华语版,九个版本的聂小倩,看全的没有几个,经典也不是王祖贤!...

原标题&#xff1a;九个版本的聂小倩&#xff0c;看全的没有几个&#xff0c;经典也不是王祖贤&#xff01; 在娱乐圈一个经典的素材经常会拿来翻拍&#xff0c;也叫IP。《倩女幽魂》这个大IP就多次翻拍过&#xff0c;给投资方传的盆满钵满。最先接触的87年的《倩女幽魂》的聂小…

数创空间&国际华语音乐联盟达成合作,将联合发行系列数字音乐藏品

​​ 官方信息&#xff1a;数创空间&国际华语音乐联盟已经正式达成合作&#xff0c;继陆燕仪《头上的月光》后将继续联合发行系列数字音乐藏品。由国际华语音乐联盟提供优秀的音乐人和作品&#xff0c;数创空间提供技术和商业支持&#xff0c;共同帮助音乐人通过数字音乐藏…

计算机音乐关键词,2019华语数字音乐年度报告重磅发布 盘点音乐行业八大现象关键词...

腾讯科技讯 3月23日&#xff0c;基于 QQ 音乐、酷狗音乐、酷我音乐、全民 K 歌四大平台用户音乐行为数据&#xff0c;由腾讯音乐娱乐集团(TME)旗下由你音乐榜推出的 《2019华语数字音乐年度报告》(以下简称“报告”)正式发布。 在这份报告中&#xff0c;我们看到了华语数字音乐…

网易音乐人2021年度盘点上线 揭晓2021年华语原创音乐年度记忆

1月12日,网易云音乐发布“网易音乐人2021年度盘点”,为大家推荐2021年表现优异的原创音乐人和作品。今年网易音乐人年度盘点由平台作品榜单和从业者推荐构成,共同见证2021年华语原创音乐的生机与活力。相关数据显示,截至2021年上半年,网易音乐人总数突破30万,持续领先行业。 从…

Python实战之提取豆瓣华语新碟榜数据

Python爬虫提取数据无非下面四点 1. 要获得怎么样的数据 2. 找到数据来源 3. 模拟浏览器发送请求获得数据 4. 处理数据&#xff0c;保存数据 第一步&#xff1a;要获得怎么样的数据 首先明白要提取什么数据&#xff0c;这里我们提取数据的url地址为&#xff1a;https://m.douba…

爬虫实战(一)利用scrapy爬取豆瓣华语电影

爬虫第一个项目是爬取豆瓣华语电影&#xff0c;后面将对这部分数据进行分析。 本文也是发表于『运筹OR帷幄』微信公众号的《用数据带你了解电影行业—华语篇》的爬虫介绍篇。 1. 爬取思路 在观察了豆瓣每个影片的链接地址后&#xff0c;写下了主要思路&#xff1a; &#xf…

语音之家SOTA|TIOBE 场景测试:华语大学生辩论赛

SpeechIO TIOBE Benchmark 场景测试&#xff1a;华语大学生辩论赛 场景&#xff1a;华语大学生辩论赛 1、素材来源 YouTube 爬取&#xff0c;华语大学生辩论世界杯&#xff0c;现场视频&#xff0c;原始时长约2小时。 2、场景特点 环境 辩论赛现场&#xff0c;室内场馆会场&…

Python批量爬取华语天王巨星周杰伦的音乐

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 PS&#xff1a;如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 python免费学习资料以及群交流解答点击即可加入 小伙伴说想听周杰伦的音乐&#xff…

华语乐坛到底姓什么?------酷狗篇

爬取页面展示 热门榜单——酷狗top500: https://www.kugou.com/yy/rank/home/1-8888.html?fromrank 特色榜单——影视金曲榜: https://www.kugou.com/yy/rank/home/1-33163.html?fromrank 项目分析 对于酷狗top500: 打开network发现酷狗并没有将榜单封装在json里面&#x…

华语电影

转载于:https://www.cnblogs.com/yymn/p/4512893.html

华为eSpace7910话机通讯录配置

1.登录话机IP。默认账号 admin/admin123 2.在左侧导航栏选择高级——服务——通讯录服务器 3.点击通讯录服务器选择LADP 4.按照下图设置LADP选项 LDAP服务器&#xff1a;172.16.237.1 LDAP端口&#xff1a;389 根节点&#xff1a;oucontacts,ouGD,ouAH,dcXXXX,dccom 账号:域…