Simulación de GARCH en R

Estoy haciendo una simulación de un modelo GARCH. El modelo en sí no es demasiado relevante, lo que me gustaría preguntarle es sobre la optimización de la simulación en R. Más que nada si ve algún espacio para la vectorización, lo he pensado pero no puedo verlo. Hasta ahora lo que tengo es esto:

Dejar

#    ht=cond.variance in t
#    zt= random number 
#    et = error term
#    ret= return
#    Horizon= n periods ahead

Así que este es el código:

randhelp= function(horizon=horizon){
    ret <- zt <- et <- rep(NA,horizon)#initialize ret and zt et
    for( j in 1:horizon){
      zt[j]= rnorm(1,0,1)
      et[j] = zt[j]*sqrt(ht[j])
      ret[j]=mu + et[j]

      ht[j+1]= omega+ alpha1*et[j]^2 + beta1*ht[j]
    }
    return(sum(ret))
  }

Quiero hacer una simulación de los retornos en 5 períodos a partir de ahora, así que ejecutaré esto, digamos 10000.

#initial values of the simulation
ndraws=10000
horizon=5 #5 periods ahead
ht=rep(NA,horizon) #initialize ht
ht[1] = 0.0002
alpha1=0.027
beta1 =0.963
mu=0.001
omega=0


sumret=sapply(1:ndraws,function(x) randhelp(horizon))

Creo que esto está funcionando razonablemente rápido, pero me gustaría preguntarle si hay alguna forma de abordar este problema de una mejor manera.

¡Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta