10 –
Kamila i Krzysztof Najman
Sieci neuronowe wyrosły z badań prowadzonych nad sztuczną inteligencją.Próbują naśladować wysoką tolerancję na uszkodzenia i zdolność samouczenia biologicznego systemu neuronowego. W wielu przypadkach stały się one podstawą zastosowania w tak nietypowych (z biologicznego punktu widzenia) dziedzinach, jak finanse, inżynieria, geologia czy fizyka. Gdziekolwiek pojawia się problem predykcji, klasyfikacji lub kontroli, sieci neuronowe są brane pod uwagę jako alternatywne względem innych metod analitycznych. Rezultaty są często znakomite.
Ten sukces może być przypisany pewnym kluczowym czynnikom, jak odporność i zdolność uczenia. Sieci neuronowe są skomplikowaną techniką, zdolną do modelowania niezmiernie złożonych systemów. Można je traktować jako nowoczesne systemy obliczeniowe, które przetwarzają informacje, wzorując się na zjawiskach zachodzących w mózgu człowieka. Informacje mają tu jednak charakter danych numerycznych.Zalety sieci neuronowych.Sieć neuronowa działa na matematycznych zbiorach danych (wektorach, macierzach), które przybierają postać określonych porcji informacji. W odróżnieniu od mózgu, gdzie dane wejściowe są odbierane za pośrednictwem pięciu zmysłów, sztuczne sieci neuronowe odbierają te dane za pomocą liczb. W wielu zastosowaniach sztucznych sieci neuronowych operują one jedynie zerami i jedynkami, które oznaczają, że dana zmienna jest obecna lub nie.W praktyce sztuczna sieć neuronowa (SN) to program komputerowy, który naśladuje zdolność ludzkiego mózgu do klasyfikacji, rozpoznawania wzorców, analizy i kompresji obrazów, sporządzania prognoz lub podejmowania decyzji na bazie przeszłych doświadczeń. SN to uproszczony model mózgu, składający się z dużej liczby elementów przetwarzających informacje. Elementy nazywane są neuronami, choć w stosunku do rzeczywistych komórek nerwowych ich funkcje są bardzo ograniczone. Topologia połączeń oraz ich parametry stanowią program działania sieci, a sygnały pojawiające się na jej wyjściach, w odpowiedzi na określone sygnały wejściowe, są rozwiązaniami stawianych jej zadań.Rozmaitość badanych sztucznych sieci neuronowych jest obecnie ogromna. Poszczególne neurony można modelować jako proste sumatory ważone, złożone układy równań różniczkowych lub dowolne modele pośrednie. Połączenia między neuronami mogą być zorganizowane w warstwy tak, aby informacje przepływały tylko w jednym kierunku albo aby mogły krążyć po całej sieci w sposób cykliczny. Wszystkie neurony mogą zmieniać stan jednocześnie albo można wprowadzić opóźnienia. Wszystkie odpowiedzi mogą być ściśle deterministyczne albo dopuszcza się zachowanie przypadkowe. Warianty można mnożyć...SN bywają na ogół lepsze od innych metod analitycznych przy spełnieniu następujących warunków:1. Dane, z których trzeba wyciągnąć wnioski, są „rozmyte”. W przypadku kiedy danymi wejściowymi są ludzkie opinie, źle określone kategorie lub dane są obarczone dość dużymi błędami, odporne zachowanie sieci neuronowych jest ich ważną zaletą.2. Jedną z głównych zalet sieci neuronowej jest jej zdolność do odkrywania w zbiorze danych wzorców, które są tak niejasne, że nie wykrywają ich zmysły badaczy i tradycyjne metody statystyczne (np. przy przewidywaniu wypłacalności pożyczkobiorców na podstawie historii ich wydatków i wpływów wykazano, że SN lepiej „podejmują decyzje” niż doświadczony personel).3. Dane wykazują znaczną, nieoczekiwaną nieliniowość. Sieci neuronowe mają bardzo duże zdolności adaptacyjne.4. Dane są chaotyczne. Chaos można wykryć w wahaniach cen na giełdzie. Takie zachowanie nie daje szans większości innych metod, ale SN są na ogół odporne na tego rodzaju sygnały wejściowe.Nie ma sensu stosowanie sieci, gdy są znane dokładne, klasyczne (deterministyczne) rozwiązania badanych problemów. Wówczas włożony w ich budowę trud się nie opłaci. Otrzymamy bowiem, co najwyżej, rezultaty identyczne z uzyskanymi w metodach klasycznych. Wiele sieci neuronowych charakteryzuje się zarówno mocnymi podstawami teoretycznymi, jak i użytecznością w praktyce. Ich wadą jest natomiast to, że w porównaniu z ludzkim mózgiem, który składa się z miliardów neuronów, sieć ma ich zaledwie kilkaset. Sieć mechanicznie rozwiązuje tylko zadane problemy, i to tylko jedno zadanie w danym czasie. Można więc raczej mówić o specjalizacji sieci neuronowych.Budowa sieci neuronowych.Dodatkowym atutem SN jest wygoda ich programowania przez uczenie. Zamiast projektować algorytm wymaganego przetwarzania informacji i dzielić go na moduły, nadające się do współbieżnego wykonywania – stawia się sieci przykładowe zadania i automatycznie, zgodnie z założoną strategią uczenia, modyfikuje się połączenia elementów sieci w ich współczynniki wagowe.W ten sposób sieć programuje się sama, co czasem prowadzi do rozwiązań w bardzo krótkim czasie, a innym razem może wymagać tysięcy iteracji. Zawsze jednak przebiega w sposób samoczynny, a więc nie absorbujący dla człowieka, poszukującego określonych rozwiązań1. Większość współcześnie tworzonych sieci neuronowych ma budowę warstwową, przy czym ze względu na dostępność w trakcie procesu uczenia wyróżnia się warstwy: wejściową, wyjściową oraz tzw. warstwy ukryte2.Na rys. 1. przedstawiona jest przykładowa struktura sieci neuronowej, budowana dla potrzeb prognozowania WIG na podstawie przeszłych notowań. 80% wszystkich zastosowań sieci neuronowych dotyczy tzw. sieci wielowarstwowych, które charakteryzują się brakiem sprzężeń zwrotnych. Przesyłają one sygnały od warstwy wejściowej, przez warstwy ukryte (jeśli występują), do warstwy wyjściowej. Składają się one z trzech bądź większej liczby warstw neuronów.Pierwsza warstwa, określana mianem wejściowej, zawiera tyle neuronów, ile jest zmiennych wejściowych. Warstwa ta otrzymuje dane z zewnątrz sieci. Każdy jej neuron łączy się ze wszystkimi neuronami z obszaru ukrytego. Obszar ukryty składa się niekiedy z więcej niż jednej warstwy; każdy neuron z pierwszej warstwy ukrytej powiązany jest wówczas ze wszystkimi neuronami warstwy drugiej. Jeżeli tworzą go więcej niż dwie warstwy, neurony z drugiej łączą się ze wszystkimi neuronami z warstwy trzeciej. Najkrócej można powiedzieć, że warstwy te stanowią narzędzie służące do takiego przetwarzania sygnałów wejściowych, by warstwa wyjściowa mogła łatwiej znaleźć potrzebną odpowiedź.Działanie neuronów warstw pośrednich nie jest bezpośrednio widoczne dla użytkownika sieci – w tym właśnie sensie można mówić, że są one ukryte. Neurony warstwy ukrytej pełnią rolę pośredników (pośredniczą między wejściem i wyjściem oraz wypracowują zestawy wstępnie przetworzonych danych wejściowych, z których będą korzystać neurony dalszych warstw przy określeniu końcowego wyniku). Ostatnia warstwa wchodząca w skład obszaru ukrytego połączona jest z warstwą wyjściową.Istnieje także jeden lub więcej neuronów wyjściowych. Dzięki nim otrzymujemy wynik działania sieci. Każdy neuron wyjściowy przyjmuje sygnały wejściowe, przetwarza je i opracowuje sygnał wyjściowy. Sygnały te stanowią rozwiązania zadań stawianych sieci.Jak to się dzieje, że sieć zdobywa i gromadzi wiedzę? To siła powiązań między różnymi neuronami sprawia, że na pozór identyczne sieci różnią się od siebie. Siła powiązań między dwoma neuronami to waga. Mocne powiązanie ma większą wagę niż słabe. Ważne zmienne wejściowe otrzymują duże wartości wag. Wyrażają one stopień ważności informacji docierających wejściem. Gdy waga jest większa od 1, to sygnał wchodzący określonym wejściem jest wzmocniony, gdy ma wartość mniejszą od 1 – jest stłumiony bądź też można mówić o wejściu hamującym (gdy waga ma wartość ujemną).Neurony są powiązane w sieć za pomocą połączeń (wag) modyfikowanych w trakcie uczenia. Każdy neuron ma wiele wejść, za pomocą których odbiera sygnały od innych neuronów oraz sygnały wejściowe podawane do sieci jako dane do obliczeń. Sztuka polega na tym, aby tak dobrać wagi, by wszystkie neurony wykonywały dokładnie takie czynności, jakich się od nich wymaga. W sieci jest jednak tyle neuronów, że nie jesteśmy w stanie zdefiniować wag potrzebnych dla wszystkich wejść.Możemy jednak rozpocząć działanie sieci z przypadkowym zestawem wag i stopniowo je poprawiać. Neuron sam potrafi określić, które ze swoich wag ma zmienić, w którą stronę i o ile. Proces zmiany wag przebiega w każdym neuronie sieci w sposób spontaniczny i niezależny. Proces uczenia może być prowadzony równocześnie we wszystkich neuronach sieci.Pewne elementy w sieci neuronowej są zdeterminowane, m.in. liczba elementów wejściowych i wyjściowych oraz zasada połączeń między kolejnymi warstwami. Są jednak również elementy zmienne, które trzeba określić samemu: liczba warstw ukrytych (jedna czy kilka) oraz liczba elementów w warstwach (warstwie) ukrytych. Elementy te ustala się zwykle arbitralnie.Nie można jednak zaprojektować sieci o zbyt małej liczbie elementów. Jeżeli występuje za mało neuronów, proces uczenia może się definitywnie nie udać, gdyż sieć nie ma szans odwzorować w swojej strukturze wszystkich niuansów rozwiązywanego zadania. Nie można także „przedobrzyć”. Zastosowanie zbyt wielu warstw ukrytych prowadzi do znacznego pogorszenia sprawności procesu uczenia, dlatego często lepsze wyniki daje sieć o mniejszej liczbie warstw ukrytych niż sieć z większą ich liczbą. Również ustalenie nadmiernej liczby neuronów w warstwie ukrytej prowadzi do niekorzystnego efektu nazywanego „uczeniem się na pamięć”. Sieć w ten sposób, zamiast uogólniania nabywanych wiadomości, zapamiętuje reguły.Cykl działania sieci neuronowej można podzielić na:l etap nauki, kiedy sieć gromadzi informacje potrzebne jej do określenia, co i jak ma robić,l etap normalnego działania (nazywany czasem egzaminem), kiedy na podstawie zdobytej wiedzy sieć musi rozwiązywać konkretne nowe zadania.Sieć neuronowa uczy się na dwa sposoby. Najczęstsze jest uczenie pod nadzorem. Polega ono na tym, że sieci podaje się przykłady poprawnego postępowania, które powinna potem naśladować w swoim bieżącym działaniu. Zbieramy wiele próbek odgrywających rolę przykładów. Każda próbka zbioru uczącego całkowicie określa zarówno wszystkie wejścia, jak i wyjścia wymagane przy prezentacji tych danych wejściowych. Następnie wybieramy podzbiór zbioru uczącego i podajemy próbki z tego podzbioru na wejście sieci. Dla każdej próbki porównujemy aktualny sygnał wejściowy sieci z sygnałem wyjściowym, który chcielibyśmy otrzymać. Po przetworzeniu całego podzbioru próbek uczących korygujemy wagi łączące neurony w sieci, w celu zmniejszenia miary błędu jej działania.Jedna prezentacja podzbioru próbek uczących wraz z odpowiednią korekcją wag jest nazywana EPOKĄ. Liczba próbek podzbioru jest nazywana rozmiarem epoki. Epoki uczenia powtarzamy aż do osiągnięcia zadowalającej jakości przetwarzania sieci.Inną podstawową metodą uczenia jest uczenie bez nadzoru. W tym przypadku proces uczenia sieci polega na wykryciu istotnych cech zbioru uczącego i wykorzystaniu ich do grupowania sygnałów wejściowych na klasy, które sieć potrafi rozróżniać. Sieć potrafi wykorzystać same obserwacje wejściowe i zbudować na ich podstawie algorytm działania automatycznie wykrywający klasy powtarzających się sygnałów wejściowych i rozpoznawać te typowe wzorce sygnałów.Proces sprawdzania użyteczności sieci nazywamy weryfikacją. Polega on na rozdzieleniu zbioru znanych przypadków na dwa zbiory rozłączne. Jeden to zbiór uczący, wykorzystywany do uczenia sieci, drugi – to zbiór testowy, używany do egzaminowania sieci po zakończeniu uczenia.Uczenie i stosowanie sieci wymaga postępowania według etapów:1) określenie prognozowanej zmiennej,2) gromadzenie zbiorów danych lub szeregów czasowych związanych z prognozowanym zjawiskiem,3) wstępne przetwarzanie danych tak, aby łączyły informacje lub przedstawiały je w bardziej użyteczny sposób (skalowanie, normalizacja, standaryzacja, zmniejszanie wymiarowości problemu),4) wyodrębnienie uczącego i testowego zbioru danych, czyli danych do jej uczenia i do przyszłego testowania,5) wybór odpowiedniej architektury sieci: ustalenie liczby warstw, liczby neuronów w warstwach ukrytych,6) wybór odpowiedniego algorytmu uczenia (treningowego) i ustalenie jego parametrów,7) uczenie sieci,8) weryfikacja jakości nauczonej sieci,9) zastosowanie sieci. Do nauczonej sieci wczytujemy nowe zbiory danych lub dane bieżące w celu otrzymania prognozy czy dokonania klasyfikacji3.Jeżeli przestrzegamy tych zasad i mamy trochę szczęścia, uda nam się zbudować poprawnie działającą sieć.Prognozowanie kierunku zmian WIGBadania empiryczne zastosowań sieci neuronowych na rynkach kapitałowych są prowadzone od bardzo dawna. Zwykle, budując model do celów prognostycznych, możemy zastosować dwa podejścia. Pierwsze to podejście autoregresyjne, które oznacza, że badany proces będziemy modelowali jedynie na podstawie jego własnych opóźnień. A więc prognozujemy WIG jedynie na podstawie przeszłych jego notowań. Drugie podejście to wprowadzenie do modelowania dodatkowych zmiennych objaśniających, np. wartości wskaźników technicznych. W dalszej części artykułu rozpatrzymy oba przypadki.Dobrym wstępem do badań nad możliwościami zastosowania sztucznych sieci neuronowych na GPW jest próba prognozowania kierunku zmian WIG. Jest to z pewnością informacja wielce pożądana. Spróbujmy więc zbudować prognozę kierunku zmian na następną sesję. Danymi wejściowymi będą notowania WIG z poprzednich sesji. Liczba notowań, które trzeba uwzględnić, jest osobnym problemem i powinna być optymalizowana.Dane należy przygotować tak, aby były one dogodne dla wybranego typu sieci. W przeciwieństwie do Gately’ego uważamy, że nie należy stosować wartości –1 i 1 czy 0 i 1 dla oznaczania wzrostu i spadku w sieciach warstwowych uczonych algorytmem propagacji wstecznej. Funkcje aktywacji (logistyczna czy tangens hiperboliczny) nie mogą bowiem osiągnąć takich skrajnych wartości. Skutkuje to zwykle tym, że sieć nie nauczy się badanego problemu.Dla problemu klasyfikacyjnego, za jaki można uznać tego typu prognozę, proponujemy wykorzystać sieć probabilistyczną. Dane przygotowujemy więc następująco: sesja wzrostowa: klasa 1, sesja spadkowa: klasa 2. Sesji o identycznych kolejnych wartościach WIG można nie uwzględniać. W całej historii warszawskiej GPW było ich bardzo mało.Analizie poddajemy 1000 próbek począwszy od 3514 sesji. Ponieważ nie wiadomo z góry, ile opóźnień uwzględnić w próbce uczącej, znajdziemy ją doświadczalnie. Rozpoczniemy od uwzględnienia jedynie notowań „wczorajszych”, a zakończymy biorąc pod uwagę 200 poprzednich sesji. Prognozujemy zmiany kierunku WIG dla kolejnych 20 sesji. Sieć neuronowa na wyjściu poda nam, czy „jej zdaniem” następna sesja będzie wzrostowa czy spadkowa. Nie powinno się ustalać poziomów braku wyraźnego sygnału. Jest to bowiem trzeci wariant odpowiedzi, którego sieć się nie uczyła. Takie poziomy są zresztą zawsze subiektywne5 i bardzo ryzykowne.Widać, że najlepsze prognozy popełniały 25% błędów (rys. 2). Takie wyniki uzyskiwały sieci o 100, 108 i 172 uwzględnionych opóźnieniach WIG. Zdając się na ślepy los, mielibyśmy 50% szans na wskazanie prawidłowego kierunku zmian. Sieć pozwoliła nam zyskać dodatkowe 25%.Tu ważna uwaga. Należy pamiętać, że sieć uczy się na przykładach. Jeżeli obserwujemy istotne zmiany jakościowe w kształtowaniu się prognozowanego szeregu w stosunku do przeszłości, to nie wymagajmy od SN, aby umiała je trafnie klasyfikować. W takiej sytuacji należy sieć wytrenować na nowym, poszerzonym zbiorze danych. W praktyce warto to zrobić raz na miesiąc (czyli po ok. 20 sesjach).Nie ma więc sensu badanie zdolności sieci w dłuższym horyzoncie czasowym – daleko wybiegającym poza okres uwzględniony w zbiorze danych uczących. Jest to jedna z przyczyn, dla której gotowe oprogramowanie, budujące strategie inwestycyjne na bazie SN, najpierw sprawdza się, później nie, następnie znowu działa dobrze itd...Bardzo przydatna dla inwestora może być informacja o spodziewanym kierunku zmian na rynku w najbliższym tygodniu. Spróbujemy więc zrobić prognozę na najbliższy tydzień. Jest to miara bardzo ogólna, wyrażająca jedynie „skłonności” rynku.Poszukiwania optymalnej sieci rozpoczniemy od przygotowania danych. W tym celu możliwe są dwa podejścia. Po pierwsze, możemy robić prognozy średniej wartości WIG na następny tydzień lub na następnych 5 sesji. Różnica jest istotna. W pierwszym przypadku wyznaczamy średnie wartości WIG dla każdego tygodnia. W drugim – wyznaczamy średnie 5-sesyjne.Należy zwrócić uwagę, że posługując się średnimi możemy znacznie skrócić liczbę dostępnych próbek uczących i testowych. Gdybyśmy szacowali średnie tygodniowe, próbek będzie tyle, ile tygodni, a więc liczba danych zmniejszy się pięciokrotnie! Przy średnich 5-sesyjnych strata będzie równa 4 sesje, a więc nieistotnie mało.Skupimy się na tym pierwszym podejściu. Postaramy się zrobić prognozy średniego poziomu WIG na kolejny tydzień. Optymalizację przeprowadzamy podobnie jak poprzednio. Ze względu na znacznie mniejszy zbiór danych uczących udało się uwzględnić maksymalnie 120 opóźnień. Próba ucząca liczyła 200 tygodni. Prognozy były szacowane na kolejnych 10 tygodni.Na rys. 3 widzimy procent błędów, jaki popełniały budowane sieci przy prognozach kierunku zmian przeciętnego tygodniowego poziomu WIG. Udało się zbudować kilkanaście sieci popełniających jedynie 10% błędów. Jedna sieć (o 14 opóźnieniach) nie popełniła ani jednego błędu na przestrzeni 10 tygodni! Analogicznie jak poprzednio, należy co ok. 10 tygodni wytrenować sieć ponownie.Prognozowaniewartości WIGDrugi – obok prognoz kierunku zmian – problem to prognozowanie wartości badanego waloru. Jest to uzupełnienie wcześniejszych analiz o wskaźnik skali zmian. Staramy się nie tylko ustalić kierunek zmian, ale i ich wielkość. Jest to zadanie dużo trudniejsze, ze względu na wymaganą wysoką precyzję.Przeciętne zmiany WIG w badanym okresie wynosiły średnio 190 pkt. z sesji na sesję (co do wartości bezwzględnej). Rozproszenie tych zmian wyniosło 287 pkt. Gdyby wyrazić te wartości w procentach, byłoby to odpowiednio 1,28% i 2,01%. Aby prognozy miały istotną wartość, błędy w dłuższych okresach powinny być mniejsze niż 1%, z mniejszym niż 2-proc. rozproszeniem! Jak widać, już z tego powodu jest to zadanie bardzo trudne.Analizy poprowadzimy w następujący sposób. Budujemy sieć (rys. 5) na podstawie wartości WIG z poprzednich sesji. Optymalna liczba uwzględnionych opóźnień będzie wyznaczona eksperymentalnie. Będziemy jej poszukiwać uwzględniając kolejno od 1 do 50 opóźnień. Tym razem zastosujemy sieć jednokierunkową, bez sprzężeń zwrotnych z jedną warstwą ukrytą. Jako algorytm uczący zastosujemy propagację wsteczną w szybko zbieżnej wersji Lavenberga-Marquardta. Ponieważ WIG przyjmuje jedynie wartości dodatnie, dane przeskalujemy do przedziału (0, 1). Jako że wszystkie wartości są dodatnie, wybierzemy funkcję aktywacji logistyczną.Liczbę neuronów ustalamy jako pierwiastek kwadratowy z liczby danych wejściowych. Liczbę tę możemy zwiększyć, gdyby nie udało się uzyskać zadowalających wyników. Krok uczenia ustalamy na 0,02, maksymalny czas uczenia pojedynczej sieci na 15 minut, maksymalną liczbę epok na 507. Sieć uczymy na 1000 próbkach. Prognozy wykonujemy na 50 kolejnych sesji. Każdą próbę uczenia i prognoz powtarzamy 10 razy. Jest to niezbędne, ponieważ sieć rozpoczyna naukę od losowych wartości wag. Jedne kombinacje będą „szczęśliwsze”, inne – mniej. Kolejne rysunki wyjaśnią to dokładnie.Rys. 4 ukazuje zależności między liczbą danych wejściowych a MAPE8. Niebieskie słupki prezentują strukturę statystyczną prognoz uzyskiwanych dla 10 sieci zbudowanych przy identycznych parametrach. Zaznaczone są (licząc od dołu): minimum, kwartyl pierwszy, mediana, kwartyl trzeci i maksimum uzyskanych błędów. Słupek niski oznacza, że w 10 próbach uzyskiwano podobne prognozy. Słupek wysoki oznacza, że wyniki te różniły się znacznie. Ponieważ wiele z nich wskazuje na istotną asymetrię prognoz, dodatkowo linią czerwoną oznaczono mediany prognoz.Minimalny błąd równy 0,81% uzyskano dla 26 opóźnień. Wynik jest znacznie lepszy niż założone minimum – 1,28%. Należy zauważyć, że prognozy dla 26 opóźnień są bardzo zróżnicowane (wysoki słupek), a mediana jest „nisko”. Oznacza to, że zdarzały się nieliczne prognozy znacznie gorsze.Sieci z jedną warstwą ukrytą są dość szybkie, jednak mogą być stosunkowo mało czułe. Aby zwiększyć czułość sieci (czyli jej zdolność do uchwycenia delikatnych zmian), można zwiększyć liczbę warstw ukrytych. Niekorzystną konsekwencją takiego zabiegu jest gwałtowne zwiększenie czasu uczenia sieci i jej wymagania co do ilości pamięci w komputerze. Sieć może się zacząć uczyć „szumu”, a więc losowych i nieistotnych zmian w danych uczących.Sprawdźmy więc, czy dodanie drugiej warstwy ukrytej nie pozwoli opracować lepszych prognoz. Wszystkie parametry uczenia sieci pozostają bez zmian. Dodajemy drugą warstwę ukrytą z liczbą neuronów równą liczbie w pierwszej warstwie ukrytej.Jak widzimy na wykresie 6, nie udało się uzyskać istotnej poprawy prognoz. Minimalny błąd 0,79% uzyskano dla 37 opóźnień. Również i tym razem rozproszenie prognoz jest spore. Czas analizy zwiększył się jednak trzykrotnie.Prognozy wartości WIG na podstawie wskaźników technicznych.Nawet podstawowe badania byłyby niepełne, gdybyśmy nie spróbowali przetestować użyteczności danych technicznych w prognozowaniu wartości WIG. Podstawową trudnością jest tutaj dobór wskaźników i ich parametrów. Uznaliśmy, że w prezentowanych badaniach zastosujemy jedynie najpopularniejsze wskaźniki z klasycznymi parametrami podawanymi przez Murphy’ego w jego „Analizie technicznej”9. Zbiór wskaźników jest następujący: 1) wstęga Bollingera (9, 2, –2), 2) CCI (20, 10, 100, –100), 3) MACD (12, 26, 9), 4) momentum (10), 5) średnie kroczące (4, 8, 9, 12, 18, 24) okresowe, 6) ważona średnia krocząca (9), 7) przesunięta średnia krocząca (9, 5), 8) wykładnicza średnia krocząca (9), 9) OBV,10) ROC (10),11) RSI (14, 20, 80),12) Ultimate Osc. (7, 14, 28),13) Volume Osc. (14, 34).Z szeregów wyeliminowano stałe (np. progi RSI 20 i 80, które stanowią dwa szeregi o powtarzających się wartościach, odpowiednio 20 i 80). W ten sposób pozostało 20 zmiennych objaśniających. Dodatkowo wprowadzono opóźnienia o 2 i 3 okresy wszystkich szeregów. W sumie poddano analizie 60 zmiennych oraz sesje od 400 do 1650.Zbiór danych podzielono na trzy części. Sesje 402, 406, 410, 414... potraktowano jako zbiór testowy (25% obserwacji), a sesje 404, 408, 412, 416... jako zbiór próbek korygujących uczenie sieci (25% obserwacji). Pozostałe sesje posłużyły jako zbiór uczący (50% obserwacji).Zbudowano sieć o jednej warstwie ukrytej, gdzie na wejściu było 60 neuronów. Liczbę neuronów warstwy ukrytej optymalizowano w przedziale (1, 50). Sieć o bieżącej liczbie neuronów uczono 10-krotnie. Na wyjściu jest jeden neuron. Wszystkie dane przeskalowano na przedział (0, 1). Jako funkcję aktywacji zastosowano funkcję logistyczną. Krok uczenia ustalono na 0,02.Proces uczenia był przerywany jeżeli:1) przekroczony został limit 50 epok (nie zdarzyło się to ani razu),2) przekroczony został czas 10 minut uczenia sieci (nie zdarzyło się to ani razu),3) został osiągnięty maksymalny dopuszczalny błąd sieci ustalony na poziomie 0,0001.4) po kolejnych pięciu epokach, mimo dalszego uczenia sieci, nie uzyskiwano poprawy generalizacji sieci (jakości prognoz).Przy tak dużej sieci gwałtownie wzrosły wymagania co do mocy i pamięci komputera. Pełna analiza zajęła 51 minut. Jednak maksymalny czas, jaki mogła ona zająć, wynosił 50 × 10 × 10/60 = 83,33 godziny10. Należy pamiętać, że tak krótki czas uczenia pojedynczej sieci można ustalić na komputerze wyposażonym w olbrzymią pamięć. Przy zastosowaniu 64MB, gdy większość operacji jest buforowanych na dysku, czas ten należy wydłużyć przynajmniej 4-krotnie. W przeciwnym wypadku SN nie będzie miała szans na nauczenie się czegokolwiek.Wyniki osiągnięte przez najlepszą uzyskaną sieć są jednak gorsze niż poprzednio (rys. 7). Zwiększanie liczby neuronów nie dawało żadnej systematycznej poprawy. Sieć o 27 neuronach uzyskała błąd na poziomie 1,4%. Jak widać, był to raczej „dobry traf”. Średnia z 10 prób jest tu jedną z najgorszych ze wszystkich uzyskanych. Mimo to zgodność przebiegów WIG i jego prognoz była bardzo dobra. Na rys. 8 widzimy WIG i uzyskane tu prognozy. Prognozowana jest co czwarta sesja od 401. począwszy.Widzimy tu typowy fragment prognoz. Wiele z nich jest niemal idealnych (punkty 27, 34, 40, 47, 49, 50). Jednak znajdują się także serie prognoz zupełnie nieudanych (28–35).Na rys. 9 zaprezentowano rozkład procentowych błędów prognoz dla najlepszej uzyskanej w optymalizacji sieci. Widać, że zdecydowana większość błędów zawiera się w przedziale (–1,5, 1,5)%. Jest poniżej 10% błędów przewyższających ±3%. Linia czerwona pokazuje, jak powinny się kształtować liczebności błędów, gdyby miały one rozkład Gaussa.Wyniki próby poprawienia wyników przez dodanie drugiej warstwy ukrytej przedstawione są na rys. 10. W drugiej warstwie ukrytej zastosowano tę samą liczbę neuronów, co w warstwie pierwszej.Jak widzimy, nie udało się uzyskać żadnej poprawy. Minimalny błąd wyniósł 1,43% przy 9 neuronach. Gwałtowny wzrost błędów powyżej 36 neuronów jest spowodowany brakiem pamięci komputera. Gdy sieć zajęła całą dostępną pamięć, czas uczenia pojedynczej epoki wzrasta wielokrotnie. Z łatwością przekracza całkowity czas uczenia sieci. W związku z tym sieć nie uczy się „prawie nic” i takie też generuje prognozy. Dane te nie mogą być interpretowane.Podsumowując, możemy powiedzieć, że sieć oparta na wskaźnikach technicznych11 nie dała znaczącej poprawy w prognozowaniu WIG w stosunku do sieci uwzględniającej jedynie własne opóźnienia WIG.System inwestycyjnyPrezentowane powyżej zestawy prognoz krótko- i średnioterminowych pozwalają zbudować wiele mechanicznych systemów inwestycyjnych. Najprostszym rozwiązaniem byłoby potraktowanie tych prognoz jako oscylatorów (prognozy krótkoterminowe jako oscylator wolny, a średnioterminowe – szybki). Ta nie intuicyjna kolejność spowodowana jest tym, że przeciwnie niż przy innych wskaźnikach oba te oscylatory są równie wrażliwe. Prognoza na 5 sesji naprzód będzie zawsze „szybsza” niż na jedną sesję. Tak więc jeżeli linia prognoz średnioterminowych przetnie z dołu krótkoterminową o zadaną liczbę punktów, będzie to sygnał kupna. Jeżeli przecięcie nastąpi z góry, będzie to sygnał sprzedaży.Aby wykluczyć przypadkowe słabe sygnały, należy ustalić wartość progową, kiedy sygnał uważamy za ważny. Wysokość progu jest sprawą indywidualną i będzie ustalana arbitralnie. Np. inwestując w WIG na przestrzeni roku, począwszy od sesji 1301, ustalając wartości prognoz optymalnymi sieciami uzyskanymi w powyższej analizie, przyjmując wartość progową mocy sygnału na 150 pkt., uzyskano sygnały pokazne w tabeli 1.W analizowanym okresie przy powyższych założeniach uzyskaliśmy 23 sygnały. Można było uzyskać 32,57% zysku. Zdecydowana większość transakcji dawała małe zyski, a czasem straty. Trzy transakcje były wysokie, w tym dwie „udane”. Wyliczenia te nie uwzględniają prowizji maklerskich. Kilka „małych udanych” transakcji w rzeczywistości byłoby „nieudanych”. Rzeczywista efektywność brutto byłaby oczywiście nieco niższa niż 30%.Ocena tego rezultatu to już indywidualna sprawa każdego inwestora. Niewątpliwie jest to znacznie lepszy wynik niż obligacje państwowe czy lokaty bankowe. Z pewnością da się jednak znaleźć bardziej efektywne strategie.WnioskiPrzedstawiliśmy wyniki prostych badań nad zdolnościami sieci neuronowych w prognozowaniu WIG. Dostarczają one dość obiecujących informacji. Udało się zbudować prognozy kierunku zmian indeksu o ponad 80-proc. skuteczności w krótkim i średnim horyzoncie. Prognozy wartości WIG również są zadowalające. Oczywiście, należy zdawać sobie sprawę, że pokazane tu ujęcie jest tylko jednym z bardzo wielu możliwych. Wyniki te nie są ostateczne, a mają jedynie zachęcić do samodzielnych badań.Istnieje wiele innych typów sieci, które należałoby przetestować. Powinno się optymalizować również inne parametry, a nie tylko liczbę neuronów w warstwach ukrytych. Należałoby zoptymalizować wartości współczynników technicznych analizowanych w ostatnim przykładzie, sprawdzić wpływ informacji fundamentalnych na możliwości prognostyczne. Można by zbudować sieć „rozpoznającą” formacje techniczne – do wspomagania prognoz długoterminowych. Dróg poprawy prezentowan
19 – TECHNIKI INWESTYCYJNE
Cykle na rynku złotego i akcji
Grzegorz Zalewski
Narzędzia i techniki inwestycyjne podlegają przeróżnym modom.W pewnych okresach inwestorzy skłaniają się do analizy technicznej, w innych – do fundamentalnej.Z kolei ci, którzy już zdecydowali się na któryś z wymienionych sposobów oceny rynku,flirtują z różnymi technikami w ramach danej dziedziny.
W przypadku analityków technicznych raz będzie to teoria Carolana, innym razem elliottowskie fale, jeszcze innym – korelacja z rynkami zagranicznymi, kiedy indziej znów cykle. Właściwie można powiedzieć, że popularność danej metody zależy od tego, czy w danym momencie sprawdza się ona dostatecznie dobrze (lub przynajmniej jej użytkownicy tak uważają).Być może niektórzy obserwatorzy rynku pamiętają, że jeszcze przed dwoma laty większość analityków próbowała znaleźć odpowiedź na pytanie, jaki rodzaj cyklu rządzi rynkiem akcji. Jedni wskazywali na 9-miesięczny, inni na kilkunastotygodniowe, jeszcze inni poszukiwali cykli opartych na ciągu liczb Fibonacciego. Krótko mówiąc, jeśli w cyklu pojawiała się któraś z ciągu liczb: 1, 2, 3, 5, 8, 13, 21, 34...., tym bardziej cykl uznawany był za wiarygodny.Obecnie popularność cykli wśród rodzimych analityków znacznie zmalała. Prawdopodobnie niektórzy z nich w zaciszu swoich biur nadal stosują tę metodę, jednak przeciętny inwestor nie zwraca na to tak wielkiej uwagi, tak samo jak na fakt, czy Nasdaq spadł w czasie ostatniej sesji, czy też wzrósł.Cyklicznośćprawdopodobnienie jest związanaz racjonalnymi czynnikami decyzyjnymi.(J.M. Hurst)1Zwolennicy teorii cykliczności rynków podkreślają, że tak jak zjawiska naturalne charakteryzuje pewien powtarzalny porządek, tak samo ruchy cen poddane są pewnym sekwencjom. Zasada ta działa na każdym poziomie – od dziennych fluktuacji, dotyczących poszczególnych akcji, aż po wieloletnie globalne cykle gospodarcze.Oczywiście, dla inwestorów najważniejsze są cykle kilkunastotygodniowe lub kilkunastomiesięczne – tylko na takich można przyzwoicie zarobić. Ci, którzy skłaniają się do tej teorii, chcieliby umieć poznać, kiedy na rynku nastąpi ważny szczyt lub ważny dołek, żeby jak najlepiej to wykorzystać. Metoda ta jest prawdopodobnie równie skuteczna, jak inne metody analizy technicznej – czyli w pewnych okresach działa lepiej, w innych – gorzej. Niemniej przyjemnie jest raz na jakiś czas pokazać, że rynki poruszają się według jakiegoś porządku.Inwestowanie w waluty nie jest jeszcze popularne na polskim rynku. Po pierwsze, jest to związane z niewielką liczbą atrakcyjnych instrumentów (np. opcji, kontraktów terminowych), po drugie zaś – z zadziwiającym mitem rozpowszechnionym wśród osób związanych z rynkiem akcji, że waluty nie bardzo poddają się metodom analizy technicznej (co stoi w ewidentnej sprzeczności z założeniami tego rodzaju analizy). Miejmy jednak nadzieję, że w pewnym momencie rodzimi inwestorzy będą mogli równie aktywnie, jak na kontraktach na indeks WIG20, grać na kontraktach na euro, dolara, a może nawet na jena. Na razie, pewne kwestie muszą być rozważane teoretycznie, bez możliwości wykorzystania ich w praktyce.Wszystkie fluktuacje cenw ramachtrendów długoterminowychsą przejawami cykliczności.(J.M. Hurst)Spójrzmy na tygodniowy wykres złoty/dolar (skala odwrócona)2 w okresie od stycznia 1998 r. Co na nim zauważy analityk techniczny? Z całą pewnością szeroki trend spadkowy (złotego), przerywany silnymi wzrostowymi korektami. Dalszą konsekwencją rozpoczętej analizy może być wyznaczenie dość regularnego kanału trendowego, dzięki któremu (gdyby istniały takie możliwości) można by próbować określić momenty zajmowania długich i krótkich pozycji. Dla praktyków, stosujących metodę „podążania za trendem”, istotna byłaby również relatywnie niska zmienność rynku – pojawiające się korekty rzadko są słabe i krótkotrwałe; mało jest również ruchów, które można by uznać za pułapki.W dalszej kolejności można rozpoznać pewną regularność w formowaniu się dołków – cykliczność rynku. Na wykresie pionowymi liniami zaznaczono punkty zwrotne, rozpoczynające wzrostowe fale rynku – umacnianie się złotego (wykres 1). Do końca października można zaobserwować pięć takich wyraźnych fal: I połowa 1998 r., wrzesień–grudzień 1998 r., kwiecień–sierpień 1999 r., listopad 1999–marzec 2000 r., maj–sierpień 2000 r. Kolejne dołki dzieli od siebie ok. 33 tygodni. Podobna regularność występuje w przypadku szczytów (wykres 2) – odległość między kolejnymi istotnymi szczytami wynosi ok. 35 tygodni.Do konsekwencji cyklicznościnależy możliwy równoczesny wpływna procesy decyzyjne rzeszy inwestorów.Jeśli tak jest, należy wystrzegać siępodlegania tym samym wpływom.(J.M. Hurst)Jeśli sekwencja miałaby się utrzymać, to na przełomie grudnia 2000 r. i stycznia 2001 r. powinno nastąpić kolejne ważne dno rynku. Czy tak się rzeczywiście stanie – dowiemy się wkrótce. Na razie spróbujmy odpowiedzieć sobie na jedno pytanie: czy tego rodzaju sekwencje mogą być w praktyce wykorzystane przez inwestorów giełdowych?Napisaliśmy wcześniej, że z uwagi na brak odpowiednich instrumentów rozważania na temat rynku walutowego mają dla praktyków w Polsce znikomą wartość. Czy jednak rzeczywiście inwestor działający na rynku akcji nie może skorzystać z sygnałów płynących z rynku walutowego?Klasyczne porównanie rynku walutowego i rynku akcji pokazuje, że słabnięcie waluty zwykle poprzedza spadek cen akcji (w danym kraju). Oczywiście, między punktami zwrotnymi na tych dwóch rynkach istnieją znaczne przesunięcia. Nierzadko jest to kilkanaście, a nawet kilkadziesiąt tygodni.Oddajmy na chwilę głos J.J. Murphy'emu, który w swojej „Międzyrynkowej analizie technicznej” szeroko zajmował się związkami między różnymi segmentami rynków finansowych: „Ze względu na wpływ stóp procentowych na dolara... (w oryginale mowa o dolarze, gdyż omawiany jest rynek amerykański; w naszym przypadku będzie chodziło o złotego) ...i rynek akcji, istnieje również bezpośredni związek między poziomem dolara a cenami akcji. Zależność ta rzeczywiście występuje, często jednak zmiany trendów na jednym i drugim rynku oddzielone są długą przerwą. Wzrost dolara jest korzystny dla akcji, gdyż stanowi czynnik deflacyjny i powoduje spadek stóp procentowych. Z kolei zniżkujący dolar pobudza inflację, przyczyniając się do wzrostu stóp procentowych, i tym samym pociąga za sobą w dół rynki akcji. Jednak stwierdzenie, że wzrost dolara zawsze prowadzi do hossy akcji, jego spadek zaś kończy się zawsze bessą na tym rynku, jest zbyt daleko idącym uproszczeniem”. Musimy pamiętać, że Murphy omawia wielki, płynny rynek, na którym ruchy nie zależą od jednego lub grupy inwestorów. Nieco inna sytuacja jest na rodzimym rynku – zarówno akcji, jak i walutowym, który jest stosunkowo mały.Spójrzmy więc na diagram, pokazujący wykres kursu złotego do dolara oraz kontraktów terminowych na WIG20 (wykres 3). Dodatkowo zaznaczono na nim pionowymi liniami wspomniany wcześniej cykl (od dołka do dołka) na walucie. Pewna zbieżność, zachodząca między tymi wykresami, jest ewidentna.Choć trendy na obu rynkach różnią się kierunkiem, łatwo zauważyć, że okresom umacniania się złotego towarzyszą zwyżki cen akcji, słabnącemu złotemu zaś – spadek cen akcji. Co ciekawe, szczyty na obu rynkach występują niemal jednocześnie (zaznaczono je strzałkami w dół) – raczej nie można powiedzieć, że rynek walutowy poprzedza zachowanie się cen akcji. W przypadku dołków jest podobnie (strzałki w górę). Taka sytuacja jest prawdopodobnie konsekwencją płytkości naszego rynku walutowego.Co więcej, podczas gdy autorzy zachodni sugerują, aby istotne zmiany trendu waluty traktować jako sygnał długoterminowy, w naszym przypadku jest to często wiarygodny sygnał krótkoterminowy. Wielu inwestorów zauważyło prawdopodobnie, że często, gdy następuje wyjątkowo silny ruch złotego w czasie jednej sesji, bardzo szybko (nierzadko już dzień później) gwałtowne zmiany cen dotykają akcje.W chwili, gdy będą Państwo czytali te rozważania, będzie już wiadomo, czy po raz kolejny (piąty przez dwa lata) cykl, którego działaniu poddane jest zachowanie się naszej waluty, sprawdzi się. Jeśli rzeczywiście taka sytuacja nastąpi, a dodatkowo fali wzrostowej waluty będzie towarzyszyła zwyżka cen akcji, możemy mieć do czynienia z wyjątkowo ładnym „efektem stycznia”. nBibliografia:J.J. Murphy, Analiza techniczna rynków finansowych,Wyd. WIG-Press, Warszawa 1995J.J. Murphy, Międzyrynkowa analiza techniczna,Wyd. WIG-Press, Warszawa 1998J. Bernstein, Cykle giełdowe,W...
futures77