Применение модели MA
Колебания цены акции между ценой покупки и ценой продажи порождают отрицательную автокорреляцию первого порядка, тогда как автокорреляции при лагах выше 1 отсутствуют. Такой же паттерн ACF даёт модель MA(1). Поэтому в этом упражнении вы подгоните модель MA(1) к внутридневным данным по акциям из предыдущего упражнения.
Первый шаг — вычислить поминутные доходности по ценам из intraday и построить функцию автокорреляции. Вы увидите, что ACF соответствует процессу MA(1). Затем подгоните данные к модели MA(1) так же, как вы делали это для смоделированных данных.
Это упражнение является частью курса
Анализ временных рядов на Python
Инструкции к упражнению
- Импортируйте модули
plot_acfиARIMAиз statsmodels - Вычислите поминутные доходности по ценам:
- Рассчитайте доходности с помощью метода
.pct_change() - Используйте метод pandas
.dropna(), чтобы удалить первую строку доходностей, содержащую NaN
- Рассчитайте доходности с помощью метода
- Постройте функцию ACF с лагами до 60 минут
- Подгоните данные доходностей к модели MA(1) и выведите на экран параметр MA(1)
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Import plot_acf and ARIMA modules from statsmodels
from statsmodels.graphics.tsaplots import plot_acf
from statsmodels.tsa.arima.model import ARIMA
# Compute returns from prices and drop the NaN
returns = intraday.___
returns = returns.___
# Plot ACF of returns with lags up to 60 minutes
plot_acf(___, ___)
plt.show()
# Fit the data to an MA(1) model
mod = ARIMA(___, order=(0,0,1))
res = mod.fit()
print(res.params[1])