I try to model currency rates volatility using GARCH models through the RUGARCH package in R.
Starting from the observed currency rate series, I compute the log-return through:
data <- diff(log(series)) # Log-return
Then (after some statistical analysis) I decide to use a GARCH(1,1) model with a skew-student distribution, hence I use
spec_final <- ugarchspec(mean.model=list(armaOrder=c(0,0),include.mean=FALSE),variance.model=list(model="sGARCH",garchOrder=c(1,1)),distribution.model="sstd") fit_final <- ugarchfit(spec_final,data=data)
I then try to simulate future outcomes of this series with an horizon of 260 days with the code
horizon <- 260 exp(diffinv(ugarchsim(fit_final,n.sim=horizon)@simulation$seriesSim))[horizon+1]
If I perform this a great number of times (200,000) I can compute quantiles. More especially I see that the quantile at 0.5% is equal to 0.605 and the quantile at 99.5% is equal to 1.623. The distribution has a mean very close to 1 but is not symmetric.
I would like to understand why there is a lack of symmetry in the simulated distribution, even if the GARCH model is known to be symmetric. It does not happen only for one currency but for all those I tried to model. This is really an issue to me as I do not have any particular reason to explain why the model predicts larger upward shocks than downward shocks.