Simulação de GARCH em R

Estou fazendo uma simulação de um modelo GARCH. O modelo em si não é muito relevante, o que eu gostaria de perguntar é sobre como otimizar a simulação em R. Mais do que tudo, se você vê algum espaço para vetorização, pensei nisso, mas não consigo vê-lo. Até agora, o que tenho é este:

Deixei

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

Então este é o 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))
  }

Eu quero fazer uma simulação dos retornos daqui a 5 períodos, então executarei isso, 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))

Acho que isso está ocorrendo razoavelmente rápido, mas gostaria de perguntar se há alguma maneira de abordar esse problema de uma maneira melho

Obrigado

questionAnswers(4)

yourAnswerToTheQuestion