我正试图根据一系列股票价格来预测每日波动。我正在使用Pythons Arch包。对于预测,我想使用20天滚动的窗口。
x=20
garch =[]
# r is a series of dayli price changes
r = data['Aktien Deutschland'].pct_change().dropna()
n=1
while x < len(r):
model = arch_model(r.iloc[:x].tail(20),mean='Zero', vol = 'Garch',p=1,q=1)
model_fit = model.fit(disp='off',show_warning=False)
forecast = model_fit.forecast(horizon=n)
garch.append(sqrt(forecast.variance.values[-1,:])*sqrt(252)) # I'm annualizing the volatility
x += 1
我的问题是所得的序列包含的值大于1。由于我们在谈论股价波动,所以这似乎是错误的。 See here
有人知道代码的哪一部分是错误的吗?谢谢!