我一直在努力应对波动率预测.在网上挖掘之后,我想出了一个准解决方案.但是,结果对我来说没有意义.我想预测未来多天的波动性.我得到的sigma增加了n.ahead = 50的加班时间.我希望看到未来50天的波动性.但它不能总是增加.
假设我想从今天+ 20天预测西格玛.我该怎么做才能正确?任何提示将不胜感激.也许我应该使用ugarchroll而不是?
library(quantmod)
library(rugarch)
data<-getSymbols("SPY", from="2000-01-01")
dailyreturn<-dailyReturn(SPY$SPY.Adjusted)
mydata<-dailyreturn[,1]
model<-ugarchspec(variance.model = list(model = "sGARCH", garchOrder = c(1, 1)), mean.model = list(armaOrder = c(0, 0), include.mean = FALSE), distribution.model = "norm")
modelfit<-ugarchfit(spec=model,data=mydata)
data = mydata[1:3521, ,drop=FALSE]
spec = getspec(modelfit)
setfixed(spec) <- as.list(coef(modelfit))
forecast = ugarchforecast(spec, n.ahead = 50, n.roll = 3520, data = mydata[1:3521, ,drop=FALSE], out.sample = 3520)
sigma(forecast)
plot(forecast)
Run Code Online (Sandbox Code Playgroud)
非常感谢!
在这个网站上,他使用了高频数据和 mscGARCH 模型。但也许它对你有用。