Zacznij terazZacznij za darmo

Popularna Strategia Oparta na Autokorelacji

Jedną z intrygujących anomalii na rynku akcji jest tendencja inwestorów do nadmiernego reagowania na informacje. Po dużych skokach cen – zarówno w górę, jak i w dół – akcje mają tendencję do odwracania kierunku. Opisuje się to jako powrót do średniej: ceny odbijają się od skrajnych poziomów i wracają w kierunku poprzednich wartości. Zjawisko to obserwuje się w horyzontach czasowych rzędu tygodnia. Matematycznie można je opisać, stwierdzając, że stopy zwrotu z akcji są ujemnie autokorelowane.

Ta prosta idea stanowi podstawę popularnej strategii funduszy hedgingowych. Jeśli chcesz dowiedzieć się więcej na ten temat (choć lektura nie jest wymagana do dalszej pracy z kursem), zajrzyj tutaj.

Przeanalizujesz autokorelację tygodniowych stóp zwrotu akcji MSFT w latach 2012–2017. Punktem wyjścia będzie DataFrame MSFT z dziennymi cenami. Użyj metody .resample(), aby uzyskać ceny tygodniowe, a następnie oblicz stopy zwrotu na podstawie cen. Skorzystaj z metody pandas .autocorr(), aby obliczyć autokorelację i wykazać, że jest ona ujemna. Pamiętaj, że metoda .autocorr() działa wyłącznie na obiektach Series, a nie na DataFrame'ach (nawet tych z jedną kolumną) – dlatego musisz najpierw wybrać odpowiednią kolumnę.

To ćwiczenie jest częścią kursu

Analiza szeregów czasowych w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Użyj metody .resample() z argumentem rule='W', a następnie funkcji .last(), aby przekształcić dane dzienne na tygodniowe.
  • Utwórz nowy DataFrame returns z procentowymi zmianami tygodniowych cen, korzystając z metody .pct_change().
  • Oblicz autokorelację, używając metody .autocorr() na serii zamkniętych cen akcji – czyli kolumnie 'Adj Close' w DataFrame returns.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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))
Edytuj i uruchom kod