Я пытаюсь прогнозировать дневную волатильность из ряда цен на акции. Я использую пакет 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. Поскольку мы говорим о волатильности цен на акции, это, похоже, неправильно. Смотрите здесь
У кого-то есть идея, какая часть кода неправильна? Спасибо!