
Metody statystyczne oraz oparte na uczeniu maszynowym, które w ostatnich latach zyskały na popularności, kuszą swoją łatwością użycia i dobrą skutecznością. Tyczy to się również prognozowania szeregów czasowych, co można udanie wykorzystać w analizach rynków kapitałowych. W tym materiale przyjrzę się prognozom wygenerowanym dla czterech głównych indeksów na GPW - WIG, WIG20, mWIG40 i sWIG80, a prognozy przygotowywane będą przy użyciu biblioteki Prophet. Aktualna sytuacja geopolityczna i wynikająca z niej podwyższona zmienność z pewnością będą stanowiły duże wyzwanie dla modelu, o czym przekonamy się przy okazji kolejnego podsumowania.
Biblioteka Prophet - informacje teoretyczne
Biblioteka została stworzona przez pracowników Facebooka i w ostatnich latach zyskała bardzo mocno na popularności. Prognoza jest efektem dekompozycji szeregu na trend, sezonowość i święta. W trakcie tworzenia modelu możliwe jest dostosowanie odpowiedniej sezonowości (np. tygodniowa, roczna); wskazanie jej wagi, rodzaju trendu (multiplikatywny / addytywny), punktów zwrotnych (automatycznie lub manualnie). W wielu przypadkach przydatne będzie także dodanie regresorów, przy czym muszą one później być podane także za okres prognozowany (np. prognoza tygodni, zaplanowane eventy itd.), co akurat w przypadku prognozy indeksów giełdowych nie do końca znajdzie zastosowanie.
Tuning parametrów - w poszukiwaniu optymalnych parametrów
Pierwszym krokiem do wykonania będzie przetestowanie różnych kombinacji parametrów, jakie przyjmuje Prophet, celem znalezienia zestawu optymalnego. W moim przypadku za metryki sukcesu przyjąłem MAPE (średni absolutny błąd procentowy) oraz część prognoz, która pokrywała się pod względem kierunku z wartością zrealizowaną (czyt. czy prognoza pokazywała wzrost za okres, kiedy rzeczywiście urosło (i odwrotnie)). Uznałem, że to istotne aby nawet jeśli prognoza nie trafi idealnie w punkt, to wskazywała odpowiedni kierunek, w którym zmierza kurs.
Tuning parametrów przeprowadziłem wykonując hipotetyczne prognozy na miesiąc do przodu - przykładowo 31 stycznia sprawdzałem jakim wynikiem zamknie się luty. Prognozy na dni w trakcie miesiąca w kolejnych częściach będą wyświetlane, jednak nie podlegały ocenie w ramach tuningu parametrów.
Elementem, który zweryfikowałem na starcie, lecz nie jest wykazany w tym raporcie, to fakt że Prophet nie potrzebuje bardzo długiej historii, a wręcz może mu ona szkodzić. Przykładowo po wprowadzeniu danych od 2021 roku do dziś, osiągałem gorsze rezultaty niż w przypadku datasetu za lata od 2023 w górę. Ostatecznie, właśnie ten zakres czasu będzie brany pod uwagę przy uczeniu modelu. Co ważne, tuning hiperparametrów będzie wykonywany dla każdego indeksu osobno.
Jeśli chodzi o parametry, testowane będą: punkty zwrotu (tu przetestuję sygnały płynące z SMA100, wskaźnika supertrend oraz autodetekcję zaszytą w Prophecie) i ich waga, sezonowość roczna/weekendowa oraz ich waga; rodzaj sezonowości (multiplikatywna / addytywna)
WIG20
Z tuningu parametrów wyłonił się zestaw kombinacji, który historycznie mylił się średnio (absolutnie) o mniej niż 6% i jednocześnie w ponad 70% wyznaczony kurs pokrywał się rzeczywistą realizacją.
Zgodnie z prognozą, na kwiecień WIG20 powinien zakończyć na poziomie 3555 pkt., co względem odczytu z 10 kwietnia - 3596.84 pkt, co oznaczałoby około 1-procentowy spadek w porównaniu do ostatniej znanej wartości.

mWIG40

W przypadku pracy na notowaniach mWIG40, wprawdzie nie udało się znaleźć kombinacji, która co do kierunku zmiany pokrywałaby się z rzeczywistością o ponad 70%, jednak wciąż dostępne są warianty mogące dostarczać prognozy z średnim błędem absolutnym w okolicach 5 procent i dość satysfakcjonującym wskaźnikiem zgodności kierunku.
W porównaniu do indeksu WIG20, w mwig40 zastosowany został model multiplikatywny (kosztem addytywnego), zwiększyła się także wrażliwość na punkty zwrotne.
| y | |
|---|---|
| ds | |
| 2023-01-02 | 4198.67 |
| 2023-01-03 | 4303.33 |
| 2023-01-04 | 4389.26 |
| 2023-01-05 | 4397.18 |
| 2023-01-09 | 4448.10 |
| ... | ... |
| 2026-04-02 | 8652.40 |
| 2026-04-07 | 8632.30 |
| 2026-04-08 | 8918.69 |
| 2026-04-09 | 8895.59 |
| 2026-04-10 | 9036.06 |
816 rows × 1 columns

Zgodnie z wykresem, zakończenie kwietnia szacowane jest na poziomie 8909 punktów, co oznaczałoby spadek względem ostatniej znanej wartości, a więc 9036 (odczyt z 10 kwietnia): spadek o ok. 1,4%.
sWIG80

W przypadku indeksu sWIG80 również znalazły się kombinacje parametrów, które historycznie dostarczały dość skuteczne prognozy, z MAPE poniżej 4%. Podobnie jak w przypadku prognozy dla mWIG40, również i tutaj wykorzystano model multiplikatywny, lecz z nieco niższą wagą dla punktów przegięcia.
| y | |
|---|---|
| ds | |
| 2023-01-02 | 17878.40 |
| 2023-01-03 | 18162.08 |
| 2023-01-04 | 18297.24 |
| 2023-01-05 | 18411.53 |
| 2023-01-09 | 18658.83 |
| ... | ... |
| 2026-04-02 | 29881.32 |
| 2026-04-07 | 29749.20 |
| 2026-04-08 | 30193.93 |
| 2026-04-09 | 30152.13 |
| 2026-04-10 | 30228.51 |
816 rows × 1 columns

Prognoza dla mWIG40 na koniec kwietnia wynosi 30011, a aktualna wartość to 30228, co oznaczałoby niespełna procentową stratę.
Podsumowanie
Zaprezentowane trzy prognozy szacują, że trzy główne indeksy GPW zamkną się nieco poniżej bieżących notowań. Zaznaczam jednak, iż zgodnie z wykresami wykazanymi w poprzednich sekcjach, na giełdzie pojawiła się podwyższona zmienność i na początku kwietnia inwestorzy doświadczyli delikatnej korekty, a obecne zauważalne jest gwałtowne odbicie. Taka sytuacja nie pomaga prognozowaniu, zaś o ostatecznym wyniku przekonamy się już niedługo.