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

Podobne dokumenty