0

所以我试图为哥伦比亚股票http://unstarched.net/2013/03/20/high-frequency-garch-the-multiplicative-component-garch-mcsgarch-model/复制这篇文章,所以首先我做与帖子所做的相同,以了解它的作用以及它是如何工作的。但是在安装 mscGARCH 时,我得到了我现在不知道的原因,因为我正在做与帖子相同的事情。都准备好在那里问,但我没有得到答案,所以我来这里寻求帮助。我拥有的代码是:

library(rugarch)
Sys.setenv(TZ="GMT")
library(quantmod)
library(zoo)
library(TTR)

R_i=read.csv('C:/Users/Alejandro/Downloads/C_2008_1minret.csv')
R_i= xts(R_i[,2],as.POSIXct(R_i[,1]))
getSymbols("C", from="2000-01-01", to="2013-03-20")
C= adjustOHLC(C,use.Adjusted = T)
R_d= ROC(Cl(C),na.pad=F)

par(cex.main=0.85,col.main="black")
acf(abs(as.numeric(R_i)),lag.max=4000, main="1-min retornos absolutos\nCitigroup (2008 Jan-Feb)"
      ,cex.lab=1.5)

####################
## Implementacion ##
####################

n= length(unique(format(index(R_i),"%Y-%m-%d")))

spec_d=ugarchspec(mean.model = list(armaOrder=c(1,1)),
                  variance.model = list(model="eGARCH",garchOrder=c(2,1)),
                  distribution="nig")

roll=ugarchroll(spec_d,data=R_d["/2008-02-29"], forecast.lenght=n,
                refit.every = 5,refit.window = "moving", moving.size=2000,
                calculate.VaR=F)

df=as.data.frame(roll)
f_sigma=as.xts(df[,"Sigma",drop=F])

spec= ugarchspec(mean.model=list(armaOrder=c(1,1),include.mean=T),
                 variance.model=list(model="mcsGARCH"), distribution="nig")

fit=ugarchfit(data=R_i, spec=spec,DailyVar=f_sigma^2)

最后一个命令是给我错误的那个:Error in !matchD : invalid argument type. 但我不知道我做错了什么

4

1 回答 1

1

我自己之前遇到过这个错误。如果我没记错的话,你的错误来自这一行:

fit=ugarchfit(data=R_i, spec=spec,DailyVar=f_sigma^2)

您需要确保数据范围 forR_i和 forf_sigma重合。我认为这就是这个错误告诉你的(matchD = 每日数据的盘中匹配?)

例如,如果 R_i 有 2012 年所有日期的日内数据,那么在您的通话中,请确保您的每日成交量估计值(用作输入,包含在 中f_sigma)在同一时间范围内重叠(即f_sigma正确子集)。例如做类似的事情 fit=ugarchfit(data=R_i, spec=spec,DailyVar=f_sigma["2012"]^2)

于 2015-09-21T22:30:38.283 回答