我正在模拟 GARCH 模型。模型本身并不太相关,我想问你的是关于优化 R 中的模拟。最重要的是,如果你看到任何矢量化空间,我已经考虑过了,但我看不到它。到目前为止,我所拥有的是:
让:
# ht=cond.variance in t
# zt= random number
# et = error term
# ret= return
# Horizon= n periods ahead
所以这是代码:
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))
}
我想从现在开始模拟 5 个时期的回报,所以我将运行这个假设 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))
我认为这运行得相当快,但我想问你是否有任何方法可以更好地解决这个问题。
谢谢!