НачатьНачать бесплатно

Популярная стратегия на основе автокорреляции

Одна из любопытных аномалий фондового рынка состоит в том, что инвесторы склонны остро реагировать на новости. После резких скачков цен — как вверх, так и вниз — акции, как правило, откатываются обратно. Это явление называется возвратом к среднему: цены стремятся вернуться к прежним уровням после значительных движений, наблюдаемых на горизонте около недели. Математически возврат к среднему описывается как отрицательная автокорреляция доходностей акций.

Эта простая идея лежит в основе популярной стратегии хедж-фондов. Если вам интересно узнать о ней подробнее (хотя это и не является обязательным материалом для дальнейшего курса), ознакомьтесь с этой статьёй.

Вы рассмотрите автокорреляцию недельной доходности акций MSFT за период с 2012 по 2017 год. Исходные данные — DataFrame MSFT с дневными ценами. Используйте метод .resample(), чтобы получить недельные цены, а затем вычислите доходности на их основе. Примените метод .autocorr() из pandas, чтобы вычислить автокорреляцию и убедиться, что она отрицательна. Обратите внимание: метод .autocorr() работает только с объектами Series, а не с DataFrame (даже одностолбцовыми), поэтому вам нужно будет явно выбрать нужный столбец.

Это упражнение является частью курса

Анализ временных рядов на Python

Посмотреть курс

Инструкции к упражнению

  • Используйте метод .resample() с параметром rule='W', а затем функцию .last(), чтобы преобразовать дневные данные в недельные.
  • Создайте новый DataFrame returns с процентными изменениями недельных цен, используя метод .pct_change().
  • Вычислите автокорреляцию с помощью метода .autocorr(), применив его к ряду цен закрытия — это столбец 'Adj Close' в DataFrame returns.

Интерактивное практическое упражнение

Попробуйте выполнить это упражнение, дополнив этот пример кода.

# Convert the daily data to weekly data
MSFT = MSFT.resample(___).___

# Compute the percentage change of prices
returns = MSFT.___

# Compute and print the autocorrelation of returns
autocorrelation = returns[___].___
print("The autocorrelation of weekly returns is %4.2f" %(autocorrelation))
Редактировать и запускать код