Wrocław, 2007.06.22

Mateusz Wysłucha





Raport do projektu zrealizowanego na przedmiocie Sztuczna inteligencja prowadzonym przez dr inż. Witolda Paluszyńskiego na Uniwersytecie wrocławskim w roku akademickim 2006/2007.



Opis zagadnienia

Celem zadania jest stworzenie narzędzia umożliwiającego prognozowanie zachowań kursów spółek notowanych na warszawskiej GPW. W zadaniu zawęziłem badania do 20 największych spółek, które wpływają na wartość indeksu WIG20.

Pattern recognition

Rozwiązanie stworzyłem w opraciu o metodę rozpoznawania wzorców (ang. pattern recognition). Polega ona na klasyfikacji danych (wzorców) w oparciu o wiedzę aprioryczną lub o informacje uzyskane na drodze statystycznej analizy danych służącej wydobywaniu cech obiektów. Klasyfikowane wzorce to zazwyczaj grupy wyników pomiaru lub obserwacji definiujące położenie odpowiadających im punktów w wielowymiarowej przestrzeni cech.

W opisywanym systemie doradczym wzroce to ciągi zachowań elementarnych wartości akcji spółki na Giełdzie Papierów Wartościowych w Warszawie. Jako zachowanie elementarne rozumiemy: mały spadek, duży spadek, mały wzrost, duży wzrost. Wzorce są ciągami zachowań elementarnych o dowolnej długości z określonego przedziału. Wartości progowe waloru klasyfikujące zachowania elementarne zostaną wyznaczone eksperymentalnie.

Dodatkowym elementem systemu będzie prognoza zachowania całego rynku określona przez indeks WIG oraz korelacja pomiędzy zachowaniem badanego waloru i szerokiego rynku.

Sposób wyszukiwania wzorców i wyniki

Cały projekt wykonałem za pomocą skryptów pisanych w języku PHP. Po sciągnięciu danych o zachowaniach kursów akcji od początku roku 2006 w postaci Metastock umieściłem je w bazie danych a następnie eksperymentowałem nad różnymi sposobami wyszukiwania wzorców. Eksperymenty te dotyczyły:

Podczas badań przyjąłem, że system będzie się uczył na pierwszych 5/6 posiadanych sesji giełdy a na reszcie będzie weryfikował swoje prognozy. Poniżej znajdują się dwie tabele pokazujące wyniki dla dwóch przykładowych spółek (załączam także pliki z informacjami jakie dokładnie schematy zostały znalezione).


Badnia progów dla spółki AGORA
Wartość progu # dobrze przewidzianych schematów Całkowita # schematów Skuteczność
1% 77 179 0.4301
2% 83 179 0.4636
3% 76 179 0.4245
4% 77 179 0.4301
5% 84 179 0.4692
6% 94 179 0.5251
7% 94 179 0.5251
8% 91 179 0.5083
9% 91 179 0.5083
10% 91 179 0.5083


Badnia progów dla spółki BRE
Wartość progu # dobrze przewidzianych schematów Całkowita # schematów Skuteczność
1% 73 179 0.4078
2% 73 179 0.4078
3% 74 179 0.4134
4% 88 179 0.4916
5% 85 179 0.4748
6% 85 179 0.4748
7% 87 179 0.4860
8% 92 179 0.5139
9% 92 179 0.5139
10% 92 179 0.5139

Analizując dane zamieszczone w powyższych tabelach oraz plikach wynikowych łatwo dostrzec następującą zależność: skuteczność przewidywania kursów rośnie wraz ze zwiększanie się progu, według którego ustalane są progi i stabilizuje się na poziomie około 50% dla najwyższych wartośći progu. Mogłoby to sugerować, że najwyższe wartości progów dają najlepsze wyniki przewidywania zmian cen akcji, lecz interpretacja powinna być inna. Analizując jakie dokładnie schematy zostały znalezione przez system, można zauważyć, że wraz ze wzrostem progu maleje liczba schematów zawierających duże zmiany. Jest to poparte faktem, że rzadko na giełdzie zachodzą wzrosty lub spadki o ponad 5% spółek z indeksu WIG20. W wyniku tego badania postanowiłem w dalszych eksperymentach zawęzić się do zachowań: wzrost, spadek. Eksperymenty były dokonane dla łańcuchów różnej długości aby wyeliminować wpływ tego czynnika.

Innym bardzo korzystnym wnioskiem jest fakt, że skuteczność przewidywań dla tak zmienionego modelu (spadek-wzrost) jest powyżej 50%, co oznacza, że faktycznie zwiększa się prawdopodobieństwo podjęcia dobrej decyzji inwestycyjnej w oparciu o wyszukiwanie wzorców i zachęca do dalszych badań.

W dalszym przebiegu badań określiłem zależności pomiędzy długością łańcucha a skutecznością w przewidywaniu zachowań. Jako minimalną długość określiłem 3, gdyż poniżej tej wartośći trudno mówić o charakterystycznym zachowaniu. W poniżych tabelach znajdują się wyniki badan dla wybranych spółek.

Badnia długości wzorca dla spółki BIOTON
Długość wzorca # dobrze przewidzianych schematów Całkowita # schematów Skuteczność
3 117 181 0.6464
4 100 180 0.5555
5 102 179 0.5698
6 104 178 0.5842
7 87 177 0.4915
8 74 176 0.4204



Badnia długości wzorca dla spółki PKNORLEN
Długość wzorca # dobrze przewidzianych schematów Całkowita # schematów Skuteczność
3 105 181 0.5801
4 106 180 0.5888
5 67 179 0.5418
6 95 178 0.5337
7 99 177 0.5593
8 81 176 0.4602


Powyższe wyniki (oraz te w załączonych plikach dla wszystkich 20 spółek) pokazują, że dla każdej spółki należy indywidualnie wyznaczyć długość wzorca. Inną obserwacją jest fakt, że bardzo długie (np. 8) wzorce nie działają zbyt dobrze, co sądzę jest dość zgodne z oczekiwaniami. Warto także zauważyć, że maksymalna skuteczność pokazana na tym przykładzie przekracza 64%.

Teraz chciałbym określić zgodność zachowań poszczególnych walorów i indeksu WIG20. Oczywiście wyliczenie tego indeksu bazuje na zachowaniu każdej z tych spółek z wagą od kilku do kilkunastu procent. Z drugiej jednak strony badanie to oddaje zgodność wszystkich tych wszystkich spółek w jednym trendzie. W poniższej tabeli można odczytać z jakim prawdopodobienstwem spółka będzie zachowywała się zgodnie z indeksem WIG20. Wartość ta zawiera się w przedziale 0.5890 dla PBG i 0.7726 dla PEKAO. Czyli w przypadku tej ostatniej spółki, obserwując indeks największych spólek w trzech przypadkach na cztery możemy prognozować jej zachowanie. Można by tutaj powiedzieć, że zachowanie WIG20 także trudno prognozować, lecz zmienność tego indeksu jest mniejsza niż zmienność poszczególnych spółek oraz istnieją odpowiednie pochodne instrumenty na giełdzie (kontrakty terminowe), za pomocą których możemy minimalizować ryzyko niekorzystnych zmian.

Badnia zgnodności zachowań spółek i indeksu WIG20
Spółka Zgodnie z WiG20 Przeciwnie do WIG20 Zgodnie / Przeciwnie
AGORA2261390.6191
BANKBPH2061580.5659
BIOTON2291360.6273
BRE2501150.6849
BZWBK2641010.7232
CERSANIT2181470.5972
CEZ91680.5723
GTC2431220.6657
KGHM268970.7342
LOTOS2581070.7068
MOL2261390.6191
PBG2151500.5890
PEKAO282830.7726
PGNIG2541110.6958
PKNORLEN2561090.7013
PKOBP273920.7479
POLIMEXMS2191460.6000
PROKOM2331320.6383
TPSA2651000.7260
TVN2381270.6520

Podsumowanie

Reasumując, notowania giełdowe mogą być prognozowane za pomocą systemów wyszukujących wzorce zachowań. Jako podstawowy wniosek uważam, że dla każdej spółki można stworzyć model charakterystycznych zachowań, jak długość łańcucha, konkretny schemat i otrzymać skuteczność nawet 0.6. Zwiększenie prawdopodobieństwa dobrej inwestycji nawet o tylko kilka procent, przy wielu transakcjach daje możliwość realnych zysków. Należy pamiętać, że metoda ta jest tylko jedną z wielu służących do prognozowania cen akcji. Warto zatem uzywać wielu narzędzi a następnie podejmować na ich podstawie decyzję.


Literatura

  1. http://en.wikipedia.org/wiki/Pattern_recognition
  2. Chris Satchwell, Pattern Recognition and Trading Decisions
  3. P. Blakey, Pattern Recognition Techniques. IEEE Microwave Magazine. 3: 28-33

Valid HTML 4.01 Transitional