Projekt sytemu informatycznego dla realizacji optymalizacji strategii tradingowej na Giełdzie Papierów Wartościowych Kamil Tkacz 1 1 Wydział Inżynierii Mechanicznej i Informatyki Kierunek informatyka, Rok IV Streszczenie Praca omawia proces tworzenia systemu informatycznego wspierającego podejmowanie decyzji tradera. Obecnie istniejące systemy giełdowe posiadają wiele ograniczeń, wynikających z ich konstrukcji. Omówione zostaną sposoby eliminacji tych ograniczeń na poziomie projektowania platformy oraz jej główne elementy. Przy okazji omawiania kolejnych celów platformy przedstawione zostaną sposoby ich realizacji w konkretnych modułach systemu giełdowego 1 Wstęp Wzrost gospodarczy w Polsce spowodował zwiększone zainteresowanie inwestowaniem na giełdzie. Ostatnie debiuty i hossa panująca na GPW jeszcze bardziej zachęcają do inwestowania. Sytuacja ta spowodowała powstanie niszy na rynku informatycznym, która szybko powinna być wypełniona. Zapotrzebowanie na oprogramowanie pomagające w analizie rynku oraz w podejmowaniu decyzji jest coraz większe. System informatyczny, który razem z firmą SwiftTrade buduję, ma zapełnić tę niszę i pomóc przyszłym uczestnikom giełdy w podejmowaniu decyzji, wykorzystując do tego wiedzę ekspercką profesora Sewastianowa i profesor Dymowej. 2 Budowa systemu informatycznego dla traderów. System informatyczny wspomagania decyzji tradera, dalej nazywany platformą, jest skomplikowanym narzędziem łączącym wiele dziedzin informatyki i ekonomi. Ze względu na stopień skomplikowania wynikający z wielorakich zadań, system musi być podzielony na moduły. 1
Dzięki takiej budowie i podziałowi zadań można go dowolnie rozbudowywać wykorzystując model spiralny. W kolejnych etapach życia oprogramowania można rozbudowywać dowolny z modułów, nie będąc ograniczonym niczym. W platformie wyróżniłem następujące moduły: moduł dostępu do danych giełdowych moduł reprezentacji danych na wykresie moduł wyboru i obliczania wskaźników analizy technicznej moduł optymalizacji moduł obliczania agregowanych wskaźników i ich wag moduł reprezentacji sygnałów na wykresie moduł sprawozdawczo-finansowy Zarys opisanych modułów jest czysto teoretyczny ze względu na nakładanie się niektórych zadań i funkcji. Realizacja tak skomplikowanego systemu wymaga tego typu podejścia. 3 Po co nowy system? Ilość aplikacji dostępnych na rynku, które spełniają chociaż część naszych wymagań jest niewielka. Każda, nawet komercyjna, aplikacja posiada jakieś błędy lub ograniczenia. Jednym z najdotkliwszych ograniczeń jest niewielka ilość optymalizowanych parametrów. 3.1 Przybliżenie istniejących systemów. 3.1.1 Wealth Lab Developer Najbardziej rozbudowany obecnie system. Wiele rozwiązań w nim zastosowanych służy jako wzorzec dla tworzonej platformy. Ma jednak wiele ograniczeń. Potężna liczba wskaźników do wyboru przy realizacji strategii jest niewątpliwie imponująca, lecz 90% z nich jako gracze nigdy nie skorzystamy. Nadmiar w tym akurat systemie odbił sie na jego wydajności. System jest powolny i na słabszych platformach bywa to uciążliwe. Innym ograniczeniem jest możliwość optymalizacji tylko 10 parametrów. 3.1.2 MetaStock QuoteCenter Kolejny gigant komercyjny po Wealth Lab Developer. Zawiera wiele funkcji, pozwala na wybranie nawet do 80 wskaźników analizy technicznej i nie posiada możliwości generowania sygnałów w sposób nas zadowalający. Jest to tylko platforma do generowania wykresów. Konstrukcja przestarzała i powolna. 3.1.3 Omega Super Charts Najstarszy opisywany system. Generował większość popularnych wskaźników, bez możliwości ich optymalizacji. Firma zakończyła ten projekt i obecnie nie posiada on wsparcia technicznego. 2
4 Krótki opis modułów i ich zadań. 4.1Moduł dostępu do danych giełdowych: Aby system mógł funkcjonować potrzebuje danych giełdowych do analizy. Informacje pochodzące z giełdy są dosyć specyficzne i opisują konkretne sesje(odcinki czasu). Jedna sesje jest opisana za pomocą następujących wartości: data, czas, cena otwarcia, maksymalna cena w sesji, minimalna cena w sesji, cena zamknięcia oraz ilość transakcji (wolumen). Wszystkie te informacje znajdują się w plikach tekstowych ogólnodostępnych dostarczanych przez wiele serwisów finansowych oraz na stronach giełdy papierów wartościowych. Przykładowa linijka danych z pliku tekstowego: (data), (godzina), (otwarcie), (maksimum), (minimum), (zamknięcie), (wolumen) 20050103, 090100, 1982.00, 1983.00, 1982.00, 1983.00, 147 W następnym kroku mam zamiar połączy platformę z systemami bezpośredniego dostępu do notowań, które charakteryzują się automatycznym pobieraniem danych bezpośrednio z giełdy. Na rynku polskim taki system jest oferowany przez firmę Statica pod nazwą Notowania 2. 4.2 Moduł reprezentacji danych na wykresie. Głównym założeniem analizy technicznej jest znajdowanie trendów w notowaniach giełdowych. Aby zaobserwować zaistnienie trendu potrzebna jest graficzna reprezentacja danych giełdowych. Dzięki zastosowaniu standardowych wykresów giełdowych uznawanych na całym świecie za obowiązujące i zrozumiałe, możemy dokonywać wizualnej analizy sytuacji na rynku. Do realizacji wykresów wykorzystałem bibliotekę Zed-Graph, która została stworzona do kreowania wykresów w środowisku języka C#. W pierwszej wersji oprogramowania wykorzystamy tylko jeden styl reprezentacji wykresów wykorzystywany od kilku stuleci, a mianowicie Japońskie świece. W następnym kroku mam zamiar wprowadzić standard wyświetlania barów giełdowych. Rysunek 1. Wykres typu japońskie świece. 3
Rysunek 2. Wykres ilości transakcji (wolumen). Rysunek 3. Analogiczny model wykresu w oprogramowaniu Wealth-Lab Developer 3.0 4.3 Moduł wyboru i obliczania wskaźników analizy technicznej. Analiza techniczna ma długą historie i była rozwijana w różnych środowiskach dlatego powstało wiele różnych wskaźników służących pomocą przy podejmowaniu decyzji. Jedną z głównych zalet stosowania analizy technicznej jest jej duża popularność. Powoduje to mniej więcej taką sytuacje, że to właśnie sama analiza techniczna steruje zachowaniem rynku. Ludzie grający na giełdzie najczęściej obok analizy fundamentalnej obserwują zachowanie pewnych wskaźników. Jeśli jakaś grupa popularnych wskaźników zaczyna sygnalizować nagły wzrost ceny jakiś akcji, to osoby które obserwują te wskaźniki najczęściej zdecydują sie na zakup tych akcji. W następstwie tego działania cena tych akcji faktycznie pójdzie w górę ponieważ duża liczba uczestników złoży zlecenia na ich zakup. Przypomina to samospełniającą się przepowiednie. Dzięki obserwacji tego zjawiska, zdecydowałem się na zastosowanie najbardziej popularnych wskaźników analizy technicznej. Rysunek 4. Przykładowa reprezentacja graficzna wskaźnika Bollinger Bands. 4
4.4 Moduł optymalizacji. Wskaźniki wykorzystywane przy obserwacji rynku podlegają pewnym modyfikacją. Przyjmują one różne parametry i pokazują wartości obliczane dla różnych okresów czasu. Specyfikacja rynku oraz jego losowość wymaga od nas optymalizacji tych wartości. Odpowiedni ich dobór może zdecydować o dużych zyskach bądź szybkim bankructwie. Proces optymalizacji można w najprostszy sposób opisać tak : program podzieli sobie dane historyczne na dwa okresy. Jeden będzie okresem uczącym, a drugi sprawdzającym. System tak postara się dobrać wartości wskaźników w okresie uczącym, aby w okresie testowym otrzymać jak największy zysk. W planach mam zamiar wprowadzić kilka metod optymalizacji, w przyszłości wykorzystując do tego zadania równoległość procesorów dwu-rdzeniowych. 4.5 Moduł obliczania agregowanych wskaźników i ich wag. Wskaźniki analizy technicznej dostarczają bardzo wielu informacji na raz. Ogarniecie ich przez użytkownika jest niewygodne, męczące a często niemożliwe. Pomocna w tej sytuacji okazała sie umiejętność agregowania wielu wskaźników w jeden. Dzięki zastosowaniu różnych rang i sposobów agregacji istnieje możliwość doboru odpowiednich wartości do specyfikacji rynku i możliwości decyzyjnych różnych wskaźników. Do celów analizy informacji pochodzących z giełdy, których nie da się w prosty sposób przedstawić liczbowo wykorzystać można logikę rozmytą. Jej zastosowanie jest bardzo pomocne przy analizie informacji pochodzących ze wskaźników opisujących nastroje na giełdzie i zaangażowanie graczy. 4.6 Moduł reprezentacji sygnałów na wykresie. Głównym założeniem systemu jest generowanie sygnału. Informacja, którą niesie on ze sobą powinna być jak najszybciej w przystępny sposób przedstawiona graczowi. Najlepszym sposobem informowania jest graficzne przedstawienie na wykresie. Mam w planach zastosować standardową metodę sygnalizowania, więc dla sygnału kupna pojawi się na 5
wykresie zielona strzałka w górę, dla sygnału sprzedaży pojawi się czerwona strzałka w dół a dla sygnału trzymaj żółta strzałka w prawo. Zastosowanie standardowych sygnałów zapobiegnie złej interpretacji i pomyłkom przy odczytywaniu. 4.7 Moduł sprawozdawczo-finansowy. Każdy uczestnik rynku papierów wartościowych chce mieć pełny wgląd w swoje finanse i możliwość oceny efektywności zastosowanych strategi. Do tego celu będzie służył specjalny pakiet obliczający na bieżąco wartość portfela, procentowy przyrost zysków oraz porównanie efektywności względem innych metod inwestowania. 5 Opis teorii wykorzystywanych w podejmowaniu decyzji. System informatyczny wspomagający prace tradera musi pomagać w podejmowaniu decyzji. Śledzenie wielu wskaźników na wykresie może być uciążliwe i niejednoznaczne. Do tego celu zastosowana zostanie agregacja wielokryterialna. 5.1 Wybór kryteriów szczegółowych. Odpowiedni dobór wskaźników analizy technicznej jest kluczowy dla działanie systemu. Dzięki zastosowaniu grypy najpopularniejszych wskaźników w systemie wybór ten jest uproszczony i użytkownik nie musi się tym zajmować. 5.2 Formalizacja kryteriów lokalnych za pomocą funkcji użyteczności. Kolejnym krokiem jest wybór punktów kluczowych funkcji użyteczności oraz określenie jej kształtu. Według teorii zbiorów rozmytych funkcja przyporządkowuje każdemu elementowi zbioru wartość z przedziału [0,1] 5.3 Wyznaczenie współczynników względnej ważności. Waga informacji niesionych przez dany wskaźnik jest różna dla różnych rynków. Z tego powodu dla różnych rynków współczynniki względnej ważności rang są indywidualne i powinny podlegać optymalizacji. Do ich wyznaczania posłuży macierz parzystych porównań. 5.4 Agregowanie kryteriów lokalnych. 6
Doświadczenie wielu graczy oraz merytoryczna wartość podejmowanych decyzji skłania do zastosowania addytywnego sposobu agregacji. Pozostałe popularne sposoby czyli metody multiplikatywne oraz min-agregacja te ż zostan ą zaimplementowane w systemie. Wynika to z różnych specyfikacji rynku i może si ę okazać, ż e która ś z pozostałym metod w danej sytuacji bę dzie generowała sygnały o dużej trafności. 6 Podsumowanie Główne założenie tworzenia tego typu systemu jest generowanie zysku. Jeśli platforma po zoptymalizowaniu pozwoli na zarobek rzędu 60% po 3 miesiącach, to można z powodzeniem uznać ją za działającą. Oprogramowanie tego typu jest w stanie obsługiwać początkowy gracz jak i doświadczony makler. Ze względu na rosnące zainteresowanie ludzi inwestowaniem na giełdzie, można z powodzeniem prognozować, że tego typu aplikacja znajdzie wielu użytkowników. Sektor finansowy wydaję się być przyszłością informatyki, ponieważ rośnie on w obecnej chwili najszybciej. Coraz większa liczba informacji potrzebna bo trafnego podejmowania decyzji wymaga od człowieka coraz trudniejszych wyborów. Informatyka jest w stanie pomóc ludziom w podejmowaniu trafnych decyzji, dzięki możliwościom systemów eksperckich. 7