原文链接:http://tecdat.cn/?p=22692 

原文出处:拓端数据部落公众号

在过来十年中,人们对高频交易和模型的趣味成倍增长。尽管我对高频乐音中呈现信号的有效性有一些狐疑,但我还是决定应用GARCH模型钻研一下收益率的统计模型。与每日和较低频率的收益不同,日内高频数据有某些非凡的特点,使得应用规范的建模办法是有效的。在这篇文章中,我将应用花旗集团2008年1月2日至2008年2月29日期间的1分钟收益率。这个数据集删除了异样值。思考的日内工夫范畴是09:30至16:00,即证券交易所的正式交易工夫。与大多数此类对于日内数据建模的钻研一样,当天的第一个收益被删除。每日数据从雅虎财经下载。

getSymbols('C')C = adjustOHLC(C, use.Adjusted = TRUE)R_d = ROC(Cl(C), na.pad = FALSE)

考虑一下花旗集团在上述样本期间的1分钟相对收益的相干图。

acf(abs((R_i))

有法则的模式非常明显,大概每 390 个周期(1 天)反复一次,并显示出收盘和开盘时的波动性减少。GARCH,以及更广泛的ARMA模型只能解决指数衰减,而不是这里看到的那种模式。为了使相对收益去节令化,文献中提出了几种办法,如Andersen和Bollerslev(1997)的灵便傅里叶办法,以及Bollerslev和Ghysels(1996)的定期GARCH模型。然而,我发现这些模型都不太容易操作。Engle和Sokalska(2012)(以下简称ES2012)引入了乘法重量GARCH模型作为一种简略的代替办法。本文探讨了它的实现、挑战和应用这个模型的具体细节。

模型

思考间断复利收益率 r_{t,i}  ,其中  t  示意一天, i 示意计算收益率的定期间隔时间。在这个模型下,条件方差是每日和随机(日内)成分的乘积,因而,收益能够示意为:。

其中 q_{t,i}是随机的日内稳定率,sigma\_t是每日外生确定的预测稳定率, s\_i是每个定期距离 i 的日稳定率。预测稳定率 sigma_t是由内部的多因素危险模型得出的,然而同样能够从每日 GARCH 模型中产生这种预测。该过程的季节性局部定义为:。

用残差除以稳定率和日稳定率,就失去了归一化残差。

而后能够用它来生成稳定率的随机重量 q_{t,i} 与 GARCH 的动静关系。接下来的章节提供了一个应用花旗集团数据集的模型演示。

估算

模型要求用户传递一个xts对象,即所思考期间的数据的预测日方差。

# 定义一个日模型spec(list(armaOrder = c(1, 1)))# 应用ugarchroll办法创立一个滚动的预测roll(spec)#提取sigma 预测sigma = as.xts(df\[, 'Sigma'\])#当初预计日内模型spec( list(model = 'mcsGARCH'))# DailyVar是预测日方差的必要xts对象fit(data = R, spec, Var = sigma^2)

上面的图表显示了将稳定率合成为其不同的组成部分。应用规范的 GARCH 模型不可能捕捉到总稳定率的法则模式。

plot(fit@DiurnalVar^0.5))

预测

为预测编写代码的最大挑战是解决工夫的对齐和匹配问题,特地是将来的工夫/日期,因为该模型依赖于日内重量,而日内重量是特定的。与预计办法一样,预测程序也要求提供所思考的期间的预测稳定率。

咱们用ugarchforecast估算。

forecast(fit2, n.ahead = 10, n.roll = 299, f_sigma^2)

仿真

与规范的GARCH仿真不同,区间工夫在日内GARCH中很重要,因为咱们生成的门路是遵循十分具体的定期抽样的工夫点。此外,须要再次提供所思考的模仿期的模仿或预测日方差。这是一个xts对象,也能够抉择有m.sim列,这样每个独立的模仿都是基于日方差独立模仿的调整残差。上面的示例代码显示了对将来1分钟距离的10,000个点的模仿,并阐明了季节性成分的影响。

# dtime蕴含了数据集中惟一的区间点的汇合# (可从mcsGARCH模型的所有rugarch对象中取得)sim = sim(fit, n.sim = 10000,Var = var_sim)#plot(as.numeric(sim@simulation$DiurnalVar^0.5), type = 'l')

滚动的回测和危险值

ugarchroll函数对于在回测利用中测试模型的充分性十分有用,上面的代码阐明了模型在数据期间的状况。

n = length(index(R_d\['2008-01-01/2008-03-01'\]))roll(spec, data = R, refit.window = 'moving')

成果比拟现实。

如下图所示,VaR能很好地解决日内数据。察看到的VaR峰值是收盘前后的季节性因素造成的。

D = as.POSIXct(rownames(roll@forecast$VaR))VaRplot(0.01, actual = xts(roll@forecast$VaR\[, 3\], D), VaR = xts(roll@forecast$VaR\[,1\], D))

瞻望

在乘法模型中减少额定的GARCH模型是十分 "容易 "的,如eGARCH、GJR等。另一个可能的扩大方向是别离解决一周中每一天的昼夜效应。
最初,这个模型不是 "上手即用 "的,须要在筹备日内收益率数据时进行一些思考。

参考文献

Bollerslev, T., & Ghysels, E. (1996). Periodic autoregressive conditional heteroscedasticity. Journal of Business & Economic Statistics, 14(2), 139–151.

Andersen, T. G., & Bollerslev, T. (1997). Intraday periodicity and volatility persistence in financial markets. Journal of Empirical Finance, 4(2), 115–158.


最受欢迎的见解

1.在python中应用lstm和pytorch进行工夫序列预测

2.python中利用长短期记忆模型lstm进行工夫序列预测剖析

3.应用r语言进行工夫序列(arima,指数平滑)剖析

4.r语言多元copula-garch-模型工夫序列预测

5.r语言copulas和金融工夫序列案例

6.应用r语言随机稳定模型sv解决工夫序列中的随机稳定

7.r语言工夫序列tar阈值自回归模型

8.r语言k-shape工夫序列聚类办法对股票价格工夫序列聚类

9.python3用arima模型进行工夫序列预测