Kamil Tkacz - Projekt systemu informatycznego opartego na filtrze
Transkrypt
Kamil Tkacz - Projekt systemu informatycznego opartego na filtrze
Projekt systemu informatycznego opartego na filtrze typującym najbardziej atrakcyjne spółki do inwestowania na zbliżającej się sesji. Kamil Tkacz 1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok V [email protected] Streszczenie Zaprezentowano projekt systemu informatycznego typującego najbardziej atrakcyjne spółki do inwestowania na następnej sesji. Jest to jeden z pierwszych tego typu systemów, który będzie określał stopień przewidywanej zmienności notowania spółek w oparciu o analizę techniczną i logikę rozmytą. Złożoność zagadnienia wymogła wykorzystanie programowania rozproszonego w języku C# z wykorzystaniem najnowszych narzędzi stworzonych specjalnie dla tej platformy programistycznej. 1 Wprowadzenie Rynek papierów wartościowych bardzo dynamicznie się rozwija. Coraz więcej debiutów giełdowych oraz powstawanie nowych rynków, narzędzi pochodnych i metod inwestowania spowodowało zwiększenie możliwości inwestowania. Wielu graczy giełdowych dzięki Internetowi ma możliwość inwestowania na rynkach zagranicznych. Do dyspozycji mają notowania setek spółek, kontraktów terminowych i opcje. W tak wielkiej liczbie informacji bardzo trudno jest podjąć decyzje, w jaką spółkę zainteresować się w danym dniu, i która przyniesie największe zyski. Ludzka percepcja i ograniczony fundusz czasu nie pozwala na dogłębną analizę nawet części z tych informacji. Potrzebne jest narzędzie, które dzięki wykorzystaniu Analizy Technicznej (AT) oraz wielokryterialnej agregacji sygnałów rynkowych połączonej z logiką rozmytą wskaże dwie najbardziej atrakcyjne spółki do inwestowania. Samo pojęcie atrakcyjności nie opiera się na założeniu, że notowania tych spółek będą rosły. Wykorzystanie wielu narzędzie pochodnych na rynkach papierów wartościowych pozwala na zarabianie na spadkach, dlatego jako jedyne kryterium została wybrana zmienność tych spółek. Jednym z ograniczeń jest bardzo duża ilość danych do przeanalizowania, w skrajnych przypadkach zbiór poszukiwań może zawierać nawet setki różnych spółek. Zapis ich sesji powinien zawierać notowania z kilku ostatnich dni, będące zapisem minutowym, co daje miliony rekordów do przeanalizowania. Złożoność zagadnienia oraz wielkość danych wymaganych do uzyskania prawidłowego i jednoznacznego wyniku wymogła zastosowanie programowania rozproszonego w celu optymalnego wykorzystanie procesorów wielordzeniowych. 2 Atrakcyjność spółki Podczas inwestowania na giełdzie uczestnicy rynku często zadają sobie pytanie: „która spółka jutro będzie miała najmocniejsze trendy?”. W inwestycjach krótkoterminowych najważniejsza jest zmienność notowań, ponieważ właśnie na zmianach wartości akcji zarabia się bądź traci. W momencie gdy notowania jakiś spółek mają trend horyzontalny (płaskie notowanie) inwestowanie w nie jest startą pieniędzy. Atrakcyjność można po prostu określić jako zmienność notowań danej spółki. Prawidłowe inwestowanie powinno opierać się na spółkach, które posiadają mocne trendy, dużą zmienność. Wyliczenie zmienności odbywa się na zasadzie obliczenia „mocy” sygnału Kup lub Sprzedaj wykorzystując wskaźniki analizy technicznej. Istnieje grupa wskaźników, których wartość merytoryczna jest określana jako moc trendów. Przykładem takiego wskaźnika jest szerokość wstęgi Bollingera [1] , ponieważ powiększa się ona w momencie zwiększonej zmienności cen. Analiza techniczna opiera się na trzech przesłankach: – Rynek dyskontuje wszystko „Zwolennicy analizy technicznej (AT) twierdzą, że wszelkie czynniki, które mają wpływ na cenę są już w niej uwzględnione. Wynika to z przekonania, że zachowania cen odzwierciedlają zmiany w relacjach popytu i podaży. Mówiąc inaczej, analityk techniczny wychodzi z założenia, że nie trzeba badać czynników wpływających na cenę instrumentu lub dociekać przyczyn spadków lub wzrostów. Rynek wie wszystko i to on kształtuje cenę, dlatego też należy badać wykresy i wskaźniki AT, aby skutecznie prognozować, w którą stronę rynek podąży. Nie oznacza to, iż analitycy techniczni odrzucają twierdzenia, iż przyczyną trendów na giełdzie są uwarunkowania gospodarcze. Uważają jedynie, że rynek łatwiej można zrozumieć i przewidzieć, analizując zapis jego zachowań, czyli wykresy. ” [1] . – Ceny podlegają trendom „Rysując wykresy cen, analityk techniczny stara się odnaleźć w nich trend, czyli kierunek, w którym podążają ceny. Rozpoznanie trendu w jego wczesnej fazie pozwala dokonać transakcji, która powinna przynieść zyski (kupić, gdy tworzy się trend rosnący, sprzedać, gdy malejący). Analitycy zakładają bowiem, że istnieje większe prawdopodobieństwo tego, że trend będzie kontynuowany, niż że nastąpi jego odwrócenie. [1] - Historia się powtarza „Badanie wykresów pozwala odnaleźć powtarzające się wzory (formacje), według których poruszają się ceny. Wynika to z powtarzalności zachowań ludzkich w określonych sytuacjach. Analitycy znając najczęściej występujące wzory (formacje) starają się odnaleźć je w bieżących notowaniach i na tej podstawie prognozować przyszłość. ” [1] 3 Opis metod wykorzystywanych w obliczaniu zmienności danej spółki Określenie czy dana spółka jest obecnie w mocnym trendzie jest trudnym do zrealizowania zagadnieniem. Wymaga podjęcia decyzji na podstawie wielu informacji. Aby tego dokonać niezbędne są następujące kroki: • wybór kryteriów lokalnych, • formalizacja kryteriów lokalnych za pomocą funkcji użyteczności, • wyznaczenie współczynników względnej ważności kryteriów, • obliczenie kryterium globalnego ( agregowanie ). 3.1 Wybór oraz formalizacja matematyczna kryteriów szczegółowych Odpowiedni dobór wskaźników analizy technicznej jest kluczowy dla osiągnięcia wyniku. Wybór ten jest oczywiście subiektywny np. analizując daną sytuację rynkową dany wskaźnik prognozuje “mocny wzrost” a inny z kolei sugeruje “stagnację i brak trendów” . Do realizacji tego przedsięwzięcia wykorzystane zostaną wskaźniki określające „moc” trendów. Dokładny sposób postępowania w podejmowaniu decyzji został zobrazowany dla dwóch parametrów: − Zmiana szerokości wstęgi Bollinger'a. − Zmiana cen na kolejnych sesjach w ujęciu przedziałowym tzn. z uwzględnieniem całych zakresów wahań cen w ciągu poszczególnych sesji. W docelowym systemie ilość wskaźników użytych do określania atrakcyjności spółek do inwestycji będzie większa i możliwy będzie wybór z pośród kilku różnych wskaźników tylko tych, które najlepiej trafiają w charakterystykę danego rynku i okresu badania. Kryteria lokalne formalizują się za pomocą funkcji użyteczności. Funkcja użyteczności zmienia się od wartości 0 w zakresach niedopuszczalnych wartości parametrów jakości do 1 w zakresach najlepszych wartości tych parametrów (Rys. 1). Zmianę szerokości wstęgi Bollinger'a definiujemy jako dWB = WB0 – WB1 gdzie WBo jest szerokością wstęgi , bieżącej sesji, WB1 szerokością wstęgi sesji poprzedniej. Nieco bardziej skomplikowanie wygląda definicja zmian cen w ujęciu przedziałowym. Mowa tutaj o maksymalnych i minimalnych cenach, które zostały zanotowane w każdej z poszczególnych sesji. W terminologii finansowej nazywane jest to barem, który w ujęciu arytmetyki przedziałowej można przedstawić następująco: Bo = [ L0 , Ho ] ,gdzie L0 jest ceną minimalną bieżącej sesji, Ho ceną maksymalną bieżącej sesji. Przedziałowe różnice pomiędzy bieżącą a poprzednią sesją możemy zgodnie z podstawami arytmetyki przedziałowej [2] przedstawić następująco: [dB] =[ L0-H1 , H0-L1 ] . Bezpośrednie używanie wartości przedziałowej [dB] jako parametru jakości, zwłaszcza jako argumentu funkcji użyteczności charakteryzującej kryterium lokalne jest utrudnione. Dlatego użyto parametru pochodnego [4] , który można interpretować jako miarę nierówności przedziałów charakteryzujących poszczególne bary. ε= ( L − H )+ (H − L ). (L − H ) 0 1 0 0 1 1 Przypuśćmy, że mamy sytuację gdy H0 > H1, oraz L0 > L1. Zgodnie z definicjami podstawowymi [3] oznacza to, że przedział Bo jest większy od przedziału B1. Można zauważyć, że dla tego przypadku wartość parametru zmienia się, od 0 gdy L0 = L1 i H0 = H1 (przedziały są równe), do 1 gdy H1 = L0. Jeżeli H1 > L0 , wtedy ε > 1. Oczywiście tak zdefiniowany parametr ε ilościowo reprezentuje stopień nierówności przedziałów. μdB 1 0 0,5 1 ε Rys 1. Funkcja użyteczności kryterium lokalnego opartego na różnicy cen poszczególnych sesji w ujęciu przedziałowym. (Opracowanie własne) 3.2 Wyznaczenie współczynników względnej ważności Część wskaźników giełdowych jest używana powszechnie przez większość traderów, inne przez nielicznych analityków giełdowych. Niektóre wskaźniki nie nadają się do zastosowania na rozpatrywanym rynku. Ważność i ranga każdego wskaźnika giełdowego zależy od rynku i jego specyfiki. Dla różnych rynków rangi wskaźników są różne. Do ich wyznaczania można posłużyć się macierzą parzystych porównań lub wyznaczyć je doświadczalnie. Od wybranych wartości w sposób istotny zależy faktyczne przewidywanie zmienności. Konieczna jest więc ich optymalizacja. W tym przykładzie oznaczymy je jako αa dla kryterium opartego na dWB oraz αb dla kryterium opartego na dB . 3.3 Agregowanie kryteriów lokalnych Istnieje wiele sposobów agregowania kryteriów lokalnych z uwzględnieniem współczynników ich względnej ważności [3]. Najbardziej popularnymi są addytywne, multiplikatywne oraz min-agregacja. Jednak w trakcie podejmowania decyzji trader najczęściej w sposób jawny lub intuicyjny sumuje argumenty za i przeciw konkretnej transakcji. Dlatego ze względów merytorycznych przy wyznaczaniu zmienności użyto addytywnego sposobu agregacji. DD = 1 N N ∑ i= 1 α i ⋅ µ i ( xi ), gdzie µ 1 ( x1 ), µ 2 ( x 2 ),..., µ n ( x n ) - to funkcje użyteczności charakteryzujące poszczególne kryteria, {xi}, i=1, 2 .....N - jakościowe i ilościowe parametry jakości; α1, α2,...,αN - to współczynniki względnej ważności kryteriów Metoda obliczania kryterium globalnego dla danej spółki wygląda następująco: Dla sytuacji, gdy obydwa argumenty świadczą za powstaniem trendu: If ( dWB > 0,5 AND dB > 0,5 ) then DDTrend = µ dWB ⋅ α a + µ dB ⋅ α b . W sytuacjach niepewnych, kiedy wartości argumentów wskazują na wygasanie trendów , np. gdy dWB < 0 ,oraz dB > 0,5 nie podejmujemy żadnej decyzji a wartości kryterium globalnego jest domyślnie przypisywane zero. W końcowej wersji systemu, gdy zostaną wprowadzone dodatkowe wskaźniki sposób obliczania kryterium zmienności zostanie uzupełniony o dodatkowe reguły. W efekcie dokonanych obliczeń otrzymujemy wartość kryterium globalnego, które określa nam atrakcyjność danej spółki do inwestowania. 4 Budowa systemu informatycznego w oparciu o programowanie rozproszone Zakres poszukiwań w zależności od zainteresowania inwestora może być niewielki (do 10 spółek), średni (do 50 spółek) bądź bardzo duży (powyżej 100 spółek). Zakładając, że do prawidłowego zanalizowania notowań system potrzebuje zapisu sesji z kilku ostatnich dni w co najmniej 5 minutowym zapisie, problemem staje się szybkie obliczenie wszystkich kryteriów globalnych. W celu przyspieszenia filtracji należy tak zaprogramować aplikację, aby wykorzystywała nowe procesory składające się z dwóch i więcej rdzeni. Do tego celu wykorzystany zostanie dodatek Microsoft Parallel Extensions to the .NET Framework [5]. Zapewnia on pełną kontrolę nad procesami obliczeniowymi i optymalizację ich wykonywania na procesorach wielordzeniowych. 4.1 Schemat podziału zadań pomiędzy procesami Dane giełdow e spółek Procesy Kandydaci wstępni SP 1 SP 2 … SP n/lp SP n/lp+1 Proces eliminacji 1 K[1,1] … SP n Proces eliminacji 2 K[1,2] Wybór dwóch najlepszych spółek SP n – notowania n-tej spółki, zakres poszukiwania lp – liczba procesów K[2,1] K[2,2] … … … Wybór dwóch najlepszych kandydatów K1 i K2 K[lp,1] – pierwszy kandydat z lp procesu K1, K2 – najlepsze spółki do inwestowania Rys. 2 Schemat logicznego podziału zadań. (opracowanie własne) W początkowej fazie obliczeń należy przydzielić odpowiednim procesom notowania spółek. Podział jest zależny od ilości spółek i ilości procesów, które będą brały udział w obliczeniach. W początkowej fazie projektu podział ten nie będzie podlegał optymalizacji. Kolejność spółek oraz ich podział jest nieistotny. Procesy w wyniku dokonania podziału utworzą własne zakresy poszukiwań na którym będą wykonywał obliczenia. Oprogramowanie będzie miało na celu uporządkowanie zakresu poszukiwań, ze względu na wielkość kryterium globalnego. Sposób w jaki każdy z procesów będzie obliczał kryteria został opisany wcześniej. Wartość kryterium będzie wahać się od 0 (całkowity brak zmienności – trend horyzontalny) do 1 (bardzo duża zmienność, występowanie bardzo mocnych trendów). Procesy po wykonaniu obliczeń na własnych zakresach poszukiwania zwrócą po dwóch kandydatów z największą wartością kryterium, . Wymóg zwrócenia dwóch kandydatów wynika z możliwości znalezienia się dwóch najbardziej atrakcyjnych spółek w jednym zakresie poszukiwania. Gdy wszystkie procesy wykonają już swoje obliczenia, wyniki ich obliczeń zostaną uporządkowane ze względu na wielkość kryterium. Dwie spółki z największym współczynnikiem zmienności zostaną zwrócone jako wynik poszukiwań. 5 Przyszłe kierunki rozwoju systemu Zastosowanie platformy programistycznej Microsoft Visual Studio 2008 oraz języka C# pozwala na bardzo łatwe rozbudowanie powstającego systemu do postaci serwisu internetowego. Komercyjne zastosowanie tego typu oprogramowania może sprowadzać się do sprzedaży informacji o atrakcyjności spółek do inwestowania. Aplikacja można połączyć z serwisem internetowym za pomocą technologii .NET i uruchamiać obliczenia na wieloprocesorowym sprzęcie, wykorzystując Windows Serwer 2008 i Microsoft Parallel Extensions to the .NET Framework. Koszt stworzenia takiego serwisu oraz zakupu oprogramowania i sprzętu jest bardzo duży, niemniej jednak powinien się wrócić w krótkim czasie. Trudno jest obecnie ocenić zyski jakie można uzyskać sprzedając tego typu usługę. Popularność inwestowania oraz zwiększająca się zamożność Polaków pozytywnie rokuje wzrost zyskowności tego typu inwestycji. Rys. 3. okno obsługi aplikacji w wersji stacjonarnej. 6 Podsumowanie Obecnie na giełdzie pojawia się sporo nowych spółek. Ilość debiutantów na parkiecie z roku na rok się zwiększa. Sytuacja ta daje wiele możliwości do inwestowania, wiele spółek i instrumentów pochodnych to wiele potencjalnych możliwości do zarobienia. Jak wybrać te, które dają największą szansę na zysk? Ten problem można spróbować rozwiązać, określając stopień zmienności notowań. Odpowiedź wydaję się być prosta, jak jednak znaleźć te najbardziej atrakcyjne wśród dziesiątek czy setek spółek. W tym wypadku jedynym rozwiązaniem jest zastosowanie komputera do określenia tego stanu. Dzisiejsze komputery w większości wypadków zawierają procesory wielordzeniowe, a do ich pełnego wykorzystania potrzebne jest specjalistyczne oprogramowanie. Prezentowany system informatyczny dzięki wykorzystaniu nowoczesnych narzędzi będzie w stanie w pełni wykorzystać potencjał leżący w wielordzeniowych procesorach. Zastosowanie tego systemu informatycznego może dać inwestorowi sporą przewagę nad resztą graczy, koncentrując jego uwagę na najbardziej atrakcyjnych spółkach. Bibliografia [1] http://bossa.pl/edukacja [2] R.E., Moore (1966). Interval analysis, Englewood Cliffs. N.J., Prentice-Hall. [3] P. Sevastjanov and P. Figat Aggregation of aggregating modes in MCDM: Synthesis of Type 2 and Level 2 fuzzy sets, Omega, 35 ( 2007) 505-523. [4] P. Sevastsyanau, P. Figat, B. Wietrak, Metody logiki rozmytej oraz wielokryterialnego podejmowania decyzji w systemach traderskich na rynku kontraktów terminowych, Rynek Kapitałowy, Uniwersytet Szczeciński (2006) 209-219. [5] http://blogs.msdn.com/pfxteam