Od grudnia 1997 r. w Beskidzkim Domu Maklerskim SA prowadzony jest test systemu neuronowego przeznaczonego do generowania prognoz dla spółek notowanych na GPW.Charakterystyka systemuSystem został skonstruowany pod kątem tworzenia prognoz o horyzoncie czasowym wynoszącym kilkanaście sesji. Wielkość prognozowana oparta jest o impet 15-sesyjny trendu reprezentowanego przez średnią SK15. Wyprzedzenie czasowe prognoz wynosi 11 sesji. Dobrana w ten sposób wielkość wyjściowa sieci neuronowych (wielkość prognozowana) ma trzy cenne z punktu widzenia użytkownika właściwości:1. zmiana jej znaku (z + na - lub odwrotnie) z uwzględnieniem wyprzedzenia czasowego (11 sesji) dość dobrze pokrywa się z występowaniem istotnych szczytów lub dołków kursów akcji i indeksów2. jest "wygładzona" - co pozwala zignorować większość fałszywych sygnałów wywołanych przez 1-2-sesyjne ruchy cen, często o chaotycznym charakterze3. interesujący nas horyzont czasowy jest na tyle krótki, że prawdopodobieństwo powtarzania się w nim zdarzeń trudnych do przewidzenia, a mogących znacznie zaburzyć prognozy (np. kryzysy finansowe, klęski żywiołowe i inne) jest stosunkowo niewielkie.Należy podkreślić, że satysfakcjonujących wielkości prognozowanych (użytecznych z punktu widzenia podejmowania decyzji inwestycyjnych) można znaleźć znacznie więcej. Nie muszą to być wielkości analogowe, ale np. klasyfikujące różne sytuacje, które mogą występować w przebiegach kursów (szczyt, dołek, trend wzrostowy, trend spadkowy itp.) lub jeszcze inne. Dokonując jednak wyboru wielkości prognozowanej, należy mieć na względzie charakter danych wejściowych (służących do nauczania sieci), jakimi dysponujemy. Sieć neuronowa musi bowiem znaleźć powiązania pomiędzy zestawem danych wejściowych, a wielkością prognozowaną. Jeśli takich powiązań zupełnie brak, nie osiągniemy zadowalającego wyniku nauczania.Dane wejścioweStworzenie zestawu wejść do sieci jest istotnym etapem budowy systemu neuronowego. Jest sprawą oczywistą, że jakość prognoz (wyznaczana przez różnego rodzaju miary odchylenia prognozy od rzeczywistej wartości wielkości wyjściowej) jest ściśle związana z zawartością zestawu danych wejściowych. W praktyce należy przetestować wiele takich zestawów, by znaleźć kilka najlepszych. Wiąże się to, niestety, z dużym nakładem czasu i pracy. Ważną cechą określającą przydatność danego zestawu wejść jest jego uniwersalność, tzn. fakt, że można go z dobrym skutkiem zastosować zarówno do prognoz dowolnych akcji, jak i indeksów. Obecnie istotna jest również możliwość wykonywania prognoz indeksów giełd zagranicznych. System neuronowy testowany w BDM spełnia wszystkie wymienione wyżej wymagania. Wykonywane są prognozy większości spółek notowanych na GPW (około 140, mających odpowiednią liczbę historycznych notowań), indeksu WIG oraz (od niedawna) indeksu DJIA. W niedalekiej przyszłości dostępne będą prognozy kilku innych indeksów giełd zagranicznych.Wyniki prognozEfekty prac nad uzyskaniem coraz lepszych zestawów wejść do sieci obrazują rysunki przedstawiające przebiegi prognoz i rzeczywistych wartości wyjścia dla indeksu WIG w okresie od 29.05.1998 r. do 11.02.1999 r. (165 sesji giełdowych). Rysunek 1 zawiera przebieg prognozy uzyskany przy zastosowaniu wcześniejszej wersji zestawów wejść (przebieg 1). Rysunek 2 ukazuje przebieg prognozy dla tego samego okresu, lecz otrzymanej przy użyciu najnowszych zestawów wejść (przebieg 2).Parametry przebiegów prognoz: przebieg przebieg 1 2współczynnik korelacji 0,841 0,871prognoza / wyjścieodsetek błędów 18,8 12,7w znaku (w %)średnie odchylenie 3,9 3,26prognozy od wyjścia(w punktach %)Widoczne jest zwłaszcza zmniejszenie odsetka błędów w znaku prognozy (rozbieżność pomiędzy znakiem prognozy a znakiem rzeczywistego wyjścia sieci).Uzyskane przebiegi prognoz dotyczą okresu, którego system neuronowy wcześniej "nie znał", czyli żadnej z przedstawionych sytuacji nie był uprzednio nauczany. Na tym zresztą polega istota jego testowania. Okres ten został włączony do bazy danych z około 2-miesięcznym poślizgiem. Jak widać na rysunkach, prognozy sieci neuronowych oscylują w pobliżu rzeczywistej wielkości wyjściowej. Jednym z kierunków prac jest zmniejszenie tych oscylacji i uzyskanie "gładszych" przebiegów prognoz, co pozwoli łatwiej interpretować wyniki.Skonstruowanie pojedynczej sieci nie kończy jeszcze procesu budowy systemu neuronowego. Prognozy jednej sieci, choćby z uwagi na określoną tolerancję nauczania, a także na reprezentowany przez nią "punkt widzenia" rynku (warunkowany narzuconym zestawem wejść), mogą okazać się niewystarczająco precyzyjne. Pierwszy problem można częściowo rozwiązać przeprowadzając wielokrotny trening sieci, wybierając kilka najlepiej nauczonych i uśredniając ich prognozy. Często w takich przypadkach błędy sieci wzajemnie się znoszą. Z kolei stosując nie jeden, lecz kilka różnych zestawów wejść (wcześniej przetestowanych) można uzyskać więcej "punktów widzenia" rynku, które również należy uśrednić. Otrzymujemy zatem (dla każdej spółki bądź indeksu) pewną wyważoną prognozę uzyskaną z większej liczby sieci neuronowych. Widać jednak, że cały system rozrasta się do dość sporych rozmiarów. Nie należy się zrażać tego typu sytuacją, gdyż proces treningu (nauczania) sieci nie jest przeprowadzany codziennie. Jego głównym celem jest uzupełnienie wiedzy zgromadzonej przez system neuronowy i wystarczy tu odstęp 2-3 miesięcy pomiędzy poszczególnymi procesami trenowania. W przypadku wystąpienia wydarzeń nadzwyczajnych, jak np. efekty kryzysów finansowych na świecie, treningi systemu można wykonywać stosownie do okoliczności. Proces ten w naszym przypadku trwa 20 godzin (procesor 200 MHZ, MMX).Czynnością, którą trzeba wykonywać po każdej sesji jest pozyskanie bieżących prognoz. Wymaga to wykonania specjalnych plików testowych i przetestowania wytrenowanych wcześniej sieci. Czynności te trwają codziennie około 1,5 godziny.Trening sieciProces nauczania (trenowania) sieci wykonuje się w celu zaktualizowania i uporządkowania wiedzy systemu o rynku, dostępnej w bazie danych. Baza danych zawiera zestawy wejść obliczone po każdej sesji, dla każdej ze spółek lub indeksów. Pojedynczy rekord w bazie to jeden tzw. fakt uczący, podstawowa porcja danych wejściowych dla sieci. Zbiór od kilkuset do kilku tysięcy faktów uczących importowany jest do tzw. symulatora sieci neuronowych, tj. programu zawierającego algorytmy nauczania (treningu), testowania i inne.Program taki może też umożliwiać analizę danych wejściowych pod kątem ich cykliczności, korelacji z innymi danymi i z prognozowanym wyjściem itp.Bardzo istotną możliwością jest również dowolne (w szerokim zakresie) ustawianie parametrów treningu. Właściwy ich dobór ma istotny wpływ na jakość prognoz. Sam proces nauczania składa się z tzw. epok, w czasie których następuje przegląd wszystkich wag nadanych poszczególnym wejściom sieci i korekta (zmiana) tych wag w takim kierunku, by błąd nauczania ulegał zmniejszaniu.Początkowe wartości wag mogą być ustawione losowo (co ma pewne wady) lub też wcześniej wstępnie obliczone.Skonstruowany w powyższy sposób system neuronowy można stosować jako narzędzie pomocne w podejmowaniu decyzji inwestycyjnych (obok analizy fundamentalnej, technicznej czy portfelowej). Można też podjąć próbę doprowadzenia go do fazy, w której stanie się odrębnym systemem transakcyjnym.

ZBIGNIEW ŁUKOŚ, RYSZARD ŁUKOŚ

Autorzy są analitykami

w Beskidzkim Domu Maklerskim SA