乐趣区

关于数据挖掘:R语言HAR和HEAVY模型分析高频金融数据波动率附代码数据

全文链接:http://tecdat.cn/?p=19129

最近咱们被客户要求撰写对于 HAR 和 HEAVY 模型的钻研报告,包含一些图形和统计输入。

在本文中,在学术界和金融界,剖析高频财务数据的经济价值当初不言而喻。

摘要

它是每日危险监控和预测的根底,也是高频交易的根底。为了在财务决策中高效利用高频数据,高频时代采纳了最先进的技术,用于荡涤和匹配交易和报价,以及基于高收益的流动性的计算和预测。

高频数据的解决

在本节中,咱们探讨高频金融数据处理中两个十分常见的步骤:(i)清理和(ii)数据聚合。

> dim(dataraw);
[1] 48484 7

> tdata$report;

initial number    no zero prices    select exchange
48484    48479    20795

sales condition merge same timestamp
20135 9105
> dim(afterfirstclean)
[1] 9105 7

高频数据的汇总

通常不会在等距离的工夫点记录价格,而许多理论稳定率掂量办法都依赖等理论距离的收益。有几种办法能够将这些异步和 / 或不规则记录的序列同步为等距工夫数据。
最受欢迎的办法是依照工夫汇总,它通过获取每个网格点之前的最初价格来将价格强制为等距网格。

> # 加载样本价格数据

> data("sample");

> # 聚合到 5 分钟的采样频率:> head(tsagg5min);
PRICE
2008-01-04 09:35:00 193.920
2008-01-04 09:40:00 194.630
2008-01-04 09:45:00 193.520
2008-01-04 09:50:00 192.850
2008-01-04 09:55:00 190.795
2008-01-04 10:00:00 190.420
> # 聚合到 30 秒的频率:> tail(tsagg30sec);
PRICE
2008-01-04 15:57:30 191.790
2008-01-04 15:58:00 191.740
2008-01-04 15:58:30 191.760
2008-01-04 15:59:00 191.470
2008-01-04 15:59:30 191.825
2008-01-04 16:00:00 191.670

在下面的示例中,价格被强制设置为 5 分钟和 30 秒的等距工夫网格。此外,aggregates 函数内置于所有已实现的度量中,能够通过设置参数 align.by 和 align.period 来调用该函数。在这种状况下,首先将价格强制等距离的惯例工夫网格,而后依据这些惯例时间段内执行察看值的收益率来计算理论度量。这样做的长处是,用户能够将原始价格序列输出到理论度量中,而不用放心价格序列的异步性或不规则性。

带有工夫和稳定率计算的价格示例:

> #咱们假如 stock1 和 stock2 蕴含虚构股票的价格数据:> #汇总到一分钟:> Price_1min = cbind(aggregatePrice(stock1),aggregatePrice(stock2));
> #刷新工夫聚合:refreshTime(list(stock1,stock2));
> #计算跳跃鲁棒的波动性指标

> #基于同步数据
rBPCov(Price_1min,makeReturns=TRUE);
> #计算跳跃和噪声鲁棒的波动性度量

> #基于非同步数据:

理论波动性度量

高频数据的可用性使钻研人员可能依据日内收益的平方来预计理论波动性(Andersen 等,2003)。实际上,单变量稳定率预计的次要挑战是应答(i)价格的上涨和(ii)宏观构造噪声。因而多变量稳定率预计也引起了人们的留神。高频软件包施行了许多早先提出的理论稳定率办法。

上面的示例代码阐明了日内周期的预计:

> #计算并绘制日内周期


> head(out);
                               returns    vol    dailyvol periodicvol
2005-03-04 09:35:00 -0.0010966963 0.004081072 0.001896816    2.151539
2005-03-04 09:40:00 -0.0005614217 0.003695715 0.001896816    1.948379
2005-03-04 09:45:00 -0.0026443880 0.003417950 0.001896816    1.801941

点击题目查阅往期内容

R 语言预测期货稳定率的实现:ARCH 与 HAR-RV 与 GARCH,ARFIMA 模型比拟

左右滑动查看更多

01

02

03

04

波动性预测

学术研究人员普遍认为,如果进行适当的治理,对高频数据的拜访将带来劣势,能够更好地预测将来价格变动的波动性。早在 2003 年 Fleming 等人(2003 年)预计,投资者将违心每年领取 50 到 200 个点,来预测投资组合绩效的收益,这是通过应用高频收益率而不是每日收益率来进行稳定率预测的。

只管 HAR 和 HEAVY 模型的指标雷同,即对条件稳定率进行建模,但它们采纳的办法不同。HAR 模型专一于预测收盘价变动。HAR 模型的次要长处是,它易于预计(因为它实质上是一种能够用最小二乘方预计的线性模型),HEAVY 模型的次要长处在于,它能够模仿收盘价和收盘价的条件方差。此外,HEAVY 模型具备动量和均值回归效应。与 HAR 模型相同,HEAVY 模型的预计是通过正态分布的最大似然来实现的。接下来的本文更具体地介绍 HAR 模型和 HEAVY 模型,当然还要探讨并阐明如何应用高频收益率来预计这些模型。

HAR 模型

示例

将 HARRV 模型拟合到道琼斯工业指数,咱们加载每日理论稳定率。

> #每天获取样本理论稳定率数据
> DJI_RV = realized$DJI; #抉择 DJI
> DJI_RV = DJI_RV[!is.na(DJI_RV)]; #删除缺失值

第二步,咱们计算传统的异构自回归(HAR)模型。因为 HAR 模型只是线性模型的一种非凡类型,因而也能够通过以下形式实现:harModel 函数的输入是 lm 的子级 harModel lm,线性模型的规范类。图绘制了 harModel 函数的输入对象,程度轴上有工夫,在垂直轴上有察看到的理论稳定率和预测的理论稳定率(此剖析是在样本中进行的,然而模型的预计系数能够显然用于样本外预测)。从图的查看中能够分明地看出,harModel 能够绝对疾速地拟合稳定程度的变动,

[1] "harModel" "lm"
> x;
Model:
RV1 = beta0 + beta1 * RV1 + beta2 * RV5 + beta3 * RV22
Coefficients:

beta0    beta1
4.432e-05    1.586e-01


r.squared    adj.r.squared
0.4679    0.4608
> summary(x);
Call:
"RV1 = beta0    +    beta1 * RV1 +    beta2 * RV5 +    beta3 * RV22"
Residuals:
Min    1Q    Median    3Q    Max
-0.0017683 -0.0000626 -0.0000427 -0.0000087    0.0044331

Coefficients:
Estimate Std. Error t value Pr(>|t|)
beta0 4.432e-05 3.695e-05 1.200 0.2315
beta1 1.586e-01 8.089e-02 1.960 0.0512 .
beta2 6.213e-01 1.362e-01 4.560 8.36e-06 ***
beta3 8.721e-02 1.217e-01 0.716 0.4745
---
Signif. codes: 0 ^a˘ A¨ Y***^a˘ A´ Z 0.001 ^a˘ A¨ Y**^a˘ A´ Z 0.01 ^a˘ A¨ Y*^a˘ A´ Z 0.05 ^a˘ A¨ Y.^a˘ A´ Z 0.1 ^a˘ A¨ Y ^a˘ A´ Z 1
Residual standard error: 0.0004344 on 227 degrees of freedom
Multiple R-squared: 0.4679, Adjusted R-squared: 0.4608
F-statistic: 66.53 on 3 and 227 DF, p-value: < 2.2e-16

HARRVCJ 模型拟合

预计 harModel 的更简单版本。例如,在 Andersen 等人中探讨的 HARRVCJ 模型。能够应用示例数据集估算,如下所示:

> data = makeReturns(data); #获取高频收益数据


> x
Model:

sqrt(RV1) = beta0 + beta1 * sqrt(C1) + beta2 * sqrt(C5) + beta3 * sqrt(C10)
+ beta4 * sqrt(J1) + beta5 * sqrt(J5) + beta6 * sqrt(J10)

Coefficients:
beta0    beta1    beta2    beta3    beta4    beta5
-0.8835    1.1957    -25.1922    38.9909    -0.4483    0.8084
beta6
-6.8305
r.squared    adj.r.squared
0.9915    0.9661

最初一个示例是仅将日内收益作为输出就能够估算的一种非凡类型 HAR 模型。

HEAVY 模型

将 HEAVY 模型拟合到道琼斯工业均匀指数。第一步,咱们加载道琼斯工业均匀指数。而后,咱们从该库中抉择每日收益和每日理论核预计(Barndorff-Nielsen 等,2004)。当初,作为 HeavyModel 输出的数据矩阵的第一列为收益率,第二列为 Realized Kernel 估计值。咱们进一步将参数设置为采样期内日收益率和均匀理论核预计方差。当初,咱们来估算 HEAVY 模型。依据模型的输入,图绘制了由模型中的第二个方程式估算的条件方差。

> # heavy 模型在 DJI 上的实现:
> returns = returns[!is.na(rk)]; rk = rk[!is.na(rk)]; # 删除 NA
> startvalues = c(0.004,0.02,0.44,0.41,0.74,0.56); #初始值

> output$estparams
[,1]
omega1 0.01750506
omega2 0.06182249
alpha1 0.45118753
alpha2 0.41204541
beta1 0.73834594
beta2 0.56367558

流动性

交易量和价格

交易量和价格通常作为独自的数据对象提供。对于许多与交易数据无关的钻研和理论问题,须要合并交易量和价格。因为交易量和价格可能会收到不同的报告滞后影响,因而这不是一个简略的操作(Leeand Ready 1991)。函数 matchTradesQuotes 可用于匹配交易量和价格。依据 Vergote(2005)的钻研,咱们将价格设置为 2 秒作为默认值。

流动性掂量

能够应用函数 tqLiquidity 依据匹配的交易量和价格数据计算流动性指标。表中计算了次要实现的流动性掂量指标,并且能够用作函数 tqLiquidity 的参数。
以下示例阐明了如何:(i)匹配交易和报价,(ii)获取交易方向,以及(iii)计算流动性掂量指标。

> #加载数据样本

> #匹配交易量和价格数据

> tqdata = matchTradesQuotes(tdata,qdata);
> #在 tqdata 中显示信息

> colnames(tqdata)[1:6];
[1] "SYMBOL" "EX" "PRICE" "SIZE" "COND" "CORR"

> #依据 Lee-Ready 规定推断的交易方向


> #计算无效价差
> es = tqLiquidity(tqdata,type="es");

点击文末 “浏览原文”

获取全文残缺材料。

本文选自《 R 语言 HAR 和 HEAVY 模型剖析高频金融数据稳定率》。

点击题目查阅往期内容

R 语言中基于混合数据抽样 (MIDAS) 回归的 HAR-RV 模型预测 GDP 增长
HAR-RV- J 与递归神经网络(RNN)混合模型预测和交易大型股票指数的高频稳定率
R 语言预测期货稳定率的实现:ARCH 与 HAR-RV 与 GARCH,ARFIMA 模型比拟
PYTHON 用 GARCH、离散随机稳定率模型 DSV 模仿预计股票收益工夫序列与蒙特卡洛可视化
极值实践 EVT、POT 超阈值、GARCH 模型剖析股票指数 VaR、条件 CVaR:多元化投资组合预测危险测度剖析
Garch 稳定率预测的区制转移交易策略
金融工夫序列模型 ARIMA 和 GARCH 在股票市场预测利用
工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言危险价值:ARIMA,GARCH,Delta-normal 法滚动预计 VaR(Value at Risk)和回测剖析股票数据
R 语言 GARCH 建模罕用软件包比拟、拟合规范普尔 SP 500 指数稳定率工夫序列和预测可视化
Python 金融工夫序列模型 ARIMA 和 GARCH 在股票市场预测利用
MATLAB 用 GARCH 模型对股票市场收益率工夫序列稳定的拟合与预测 R 语言 GARCH-DCC 模型和 DCC(MVT)建模预计
Python 用 ARIMA、GARCH 模型预测剖析股票市场收益率工夫序列
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言 ARIMA-GARCH 稳定率模型预测股票市场苹果公司日收益率工夫序列
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
R 语言工夫序列 GARCH 模型剖析股市稳定率
R 语言 ARMA-EGARCH 模型、集成预测算法对 SPX 理论稳定率进行预测
matlab 实现 MCMC 的马尔可夫转换 ARMA – GARCH 模型预计
Python 应用 GARCH,EGARCH,GJR-GARCH 模型和蒙特卡洛模仿进行股价预测
应用 R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略
R 语言用多元 ARMA,GARCH ,EWMA, ETS, 随机稳定率 SV 模型对金融工夫序列数据建模
R 语言股票市场指数:ARMA-GARCH 模型和对数收益率数据探索性剖析
R 语言多元 Copula GARCH 模型工夫序列预测
R 语言应用多元 AR-GARCH 模型掂量市场危险
R 语言中的工夫序列分析模型:ARIMA-ARCH / GARCH 模型剖析股票价格
R 语言用 Garch 模型和回归模型对股票价格剖析
GARCH(1,1),MA 以及历史模拟法的 VaR 比拟
matlab 预计 arma garch 条件均值和方差模型 R 语言 POT 超阈值模型和极值实践 EVT 剖析
R 语言极值推断:狭义帕累托散布 GPD 应用极大似然预计、轮廓似然预计、Delta 法
R 语言极值实践 EVT:基于 GPD 模型的火灾损失散布剖析
R 语言有极值(EVT)依赖构造的马尔可夫链 (MC) 对洪水极值剖析
R 语言 POT 超阈值模型和极值实践 EVT 剖析
R 语言混合正态分布极大似然预计和 EM 算法
R 语言多项式线性模型:最大似然预计二次曲线
R 语言 Wald 测验 vs 似然比测验
R 语言 GARCH-DCC 模型和 DCC(MVT)建模预计
R 语言非参数办法:应用核回归平滑预计和 K -NN(K 近邻算法)分类预测心脏病数据
matlab 实现 MCMC 的马尔可夫转换 ARMA – GARCH 模型预计
R 语言基于 Bootstrap 的线性回归预测置信区间预计办法
R 语言随机搜寻变量抉择 SSVS 预计贝叶斯向量自回归(BVAR)模型
Matlab 马尔可夫链蒙特卡罗法(MCMC)预计随机稳定率(SV,Stochastic Volatility)模型
Matlab 马尔可夫区制转换动静回归模型预计 GDP 增长率 R 语言极值推断:狭义帕累托散布 GPD 应用极大似然预计、轮廓似然预计、Delta 法

退出移动版