共计 2809 个字符,预计需要花费 8 分钟才能阅读完成。
原文链接: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 模型进行工夫序列预测