关于数据挖掘:R语言指数加权模型EWMA预测股市多变量波动率时间序列

41次阅读

共计 2207 个字符,预计需要花费 6 分钟才能阅读完成。

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

从狭义上讲,简单的模型能够实现很高的预测准确性。

然而您的读者须要疾速了解。他们没有志愿或工夫去解决任何太乏味的事件,即便它能够略微精确一些。简略性是商业中十分重要的模型抉择规范。在多元稳定率预计中,最简略的办法是应用历史协方差矩阵。但这太简略了,咱们曾经晓得波动性是随工夫变动的。您常常看到从业者应用滚动标准差来模仿随工夫变动的稳定率。它可能不如其余最先进的办法精确,但它实现起来非常简单,也很容易解释。

什么是滚动窗口预计。如果咱们有一个蕴含 5 个察看值的向量并且咱们应用 2 个窗口,那么用于预计的权重向量是 [0,0,0,0.5,0.5]。更进一步的做法是对更远的过来给予少一些权重,但要对最近的察看样本给予更大的权重,比方权重向量 [0.05, 0.1, 0.15, 0.3, 0.4]。

依据低稳定率跟着低稳定率走,高稳定率跟着高稳定率走(稳定率聚类)的典型事实,这个想法齐全适宜于多变量稳定率预测。请思考以下状况。
(1) 

其中  是协方差矩阵的以后预计,并且  是基于过来直到时间段 t-1 的协方差矩阵。咱们应用最简略的预计,即历史协方差矩阵,但减少了一些权重()到仅基于最近的察看预计的协方差矩阵。这真的很容易解释,简直是一个行业标准。能够预计咱们心愿权重降落的速度,但您也能够依据一些先前的钻研,将衰减参数估计为 0.94。

我绘制几个不同 lambda 值随工夫变动的相关矩阵:

k <- 10 # 几年前?end<- format(Sys.Date(),"%Y-%m-%d")

start<-format(Sys.Date() - (k*365),"%Y-%m-%d")



dat0 = getSymbols

for (i in 1:l){da0 = getSymbols(sym\[i\])

ret\[2:n,i\] 
}

EWMAplot
legend

 

您能够看到,如果您为最初一次察看样本调配 15% 的权重,您会失去一些不稳固的预计。仅 5% (lambda = 0.95) 的权重给出了更平滑的预计,但可能不太精确。

除了简略之外,另一个重要的长处是不须要关怀可逆性,因为在每个工夫点上,估计值只是两个无效的相关矩阵的加权平均数。还有,你能够将这种办法利用于任何金融工具,不论是流动的还是非流动的,这是它受欢迎的另一个起因。

EWMA <-

function {

## ###输出。## factors N x K 的数字因素数据。数据是类 data.frame

## N 是工夫长度,K 是因素的数量。## lambda 标量。指数衰减系数在 0 和 1 之间。## return.cor 如果是 TRUE 则返回 EWMA 相关矩阵

## 输入。covewma = array
covf = var(factors)  # 工夫 = 0 时的无条件方差为 EWMA

mfas <- apply(factors,2, mean)

for (i in 2:t.factor) {
FF 
cov.f.ewma
}

}


if(return.cor) {

cewma 
for (i in 1:dim\[1\]) {corewma= covr(coewm\[i, ,\])

这个函数不适宜用于样本外的预测。起因是咱们向样本协方差矩阵收缩,而协方差矩阵是基于全样本的,在样本完结前咱们还不晓得。在事实的设置中,咱们只能应用到咱们心愿预测的那一点为止的信息。随后,我扭转了原始函数,退出了一个额定的参数(用于预计协方差矩阵的初始窗口长度)。而后,初始协方差矩阵的取值只应用到预测时为止的信息,标准化也是如此。批改后的新函数如下 
 

EWMAs <- function{


# 调整了样本外的协方差预测

## 输出。## 因素 N x K 数字因素数据。数据是类 data.frame

## N 是工夫长度,K 是因素的数量。## la 指数衰减因子在 0 和 1 之间。## retu 逻辑的,如果是 TRUE 则返回 EWMA 相关矩阵

## 输入。coa = array(,c(t.cor,k.tor,k.aor))

fas <- apply

covf = var
co.ewa\[(wind-1),,\] = (1-lad)\*FF  + ada\*cov.f

for (i in wind : t.factor) {

covf = var# 到 t 的无条件方差。FF = (fators\[i,\]- mctors) %*% t(factors\[i,\]- mfcrs)

coma\[i,,\] = (1-laa)\*FF  + laba\*coma\[(i-1),,\]



for (i in wn:dim) {orma\[i, , \] = covr(owma\[i, ,\])

最受欢迎的见解

1.R 语言对 S&P500 股票指数进行 ARIMA + GARCH 交易策略

2.R 语言改良的股票配对交易策略剖析 SPY—TLT 组合和中国股市投资组合

3.R 语言工夫序列:ARIMA GARCH 模型的交易策略在外汇市场预测利用

4.TMA 三均线期指高频交易策略的 R 语言实现

5.r 语言多均线量化策略回测比拟

6. 用 R 语言实现神经网络预测股票实例

7.r 语言预测稳定率的实现:ARCH 模型与 HAR-RV 模型

8.R 语言如何做马尔科夫转换模型 markov switching model

9.matlab 应用 Copula 仿真优化市场危险

正文完
 0