Take the 2-minute tour ×

I used SPY data to fit GARCH(1,1) in my model. My data starts from Jan, 2000 until Dec, 2013. I compared the volatility using runSD on the 21 rolling window and GARCH(1,1). It looks a pretty good fit so far.

My question would be how can I forecast the future volatility going forward from Dec, 2013? Should I just use the coefficient to calculate the next day's volatility? But what about if I want to simulate 10 days ahead? Is there a simple way to do this in R? I looked at ugarchroll and I don't really understand that function. Hope you guys can shed some lights!

Thank you!

Here are the coeffs and summary of GARCH using tseries package:

garch(x = dailyreturn[, 1], order = c(1, 1))

       a0         a1         b1  
1.637e-06  8.857e-02  9.001e-01  



    Min      1Q  Median      3Q     Max 
-7.1755 -0.5418  0.0716  0.6266  4.0432 

a0 1.637e-06   2.266e-07    7.223  5.1e-13 ***
a1 8.857e-02   7.074e-03   12.520  < 2e-16 ***
b1 9.001e-01   7.916e-03  113.703  < 2e-16 ***
Signif. codes:  0 ?**?0.001 ?*?0.01 ??0.05 ??0.1 ??1

Diagnostic Tests:
    Jarque Bera Test

data:  Residuals
X-squared = 358.7767, df = 2, p-value < 2.2e-16

    Box-Ljung test

data:  Squared.Residuals
X-squared = 7.8313, df = 1, p-value = 0.005135
share|improve this question

1 Answer 1

Ah, this is becoming a common question, just in R now. Please look at this [question] (GARCH model and prediction), it has R code to do the prediction.

In brief, you keep predicting one day ahead. $\sigma_{t+k}^2 =w+\alpha u_{t+k-1}^2+\beta \sigma_{t+k-1}^2$. You already know $ w,\space \alpha \space and \space \beta $ the starting values are the last values in the returns time series and Garch variance at that time. So, the first forecast will become $\sigma_{t+1}^2 =w+\alpha u_{t}^2+\beta \sigma_{t}^2$ and 2nd day forecast will be $\sigma_{t+2}^2 =w+\alpha u_{t+1}^2+\beta \sigma_{t+1}^2$ and so on...

share|improve this answer

Your Answer


