Wojciech NOWICKI, Aneta BERA Organizacja zespołowego procesu

Transkrypt

Wojciech NOWICKI, Aneta BERA Organizacja zespołowego procesu
WOJCIECH NOWICKI
ANETA BERA
E-mail: [email protected], [email protected]
Wydział Informatyki, Zachodniopomorski Uniwersytet Technologiczny
ul. Żołnierska 49, 71-210 Szczecin
ORGANIZACJA ZESPOŁOWEGO PROCESU
OPTYMALIZACJI PARAMETRÓW STRATEGII
RYNKOWYCH
1. Wstęp
Wraz z rozwojem zagadnień związanych z algotradingiem pojawia się potrzeba
przetwarzania dużych ilości danych oraz prowadzenia na wielką skalę optymalizacji parametrów strategii giełdowych.
Algotrading staje się coraz bardziej popularny. Nowi entuzjaści przyciągani
są do niego wizją szybkiego i łatwego zysku. Niestety nie wystarczy skopiować
jakiejkolwiek strategii i ją uruchomić. Ważne jest, żeby wybrać lub stworzyć
dobrą strategię, a następnie najczęściej dobrać do niej wszystkie potrzebne parametry. Automatyczną strategią rynkową nazywamy program (algorytm), który
na podstawie jakiegoś logicznego, statystycznie uzasadnionego schematu podejmuje decyzję o zakupie lub sprzedaży jakiegoś waloru. Strategie te są raz
lepsze, raz gorsze, niektóre są po prostu bezużyteczne, do niektórych wystarczy
tylko znaleźć właściwe parametry. Zakłada się pewną powtarzalność rynku,
w związku z tym dokonując złożonych obliczeń jesteśmy w stanie z pewną dozą
prawdopodobieństwa wywnioskować co będzie w niedalekiej przyszłości. Ze
względu na zmienność rynku nie istnieją takie parametry, które nie zmieniałyby
się w czasie, w związku z tym potrzeba jest ciągłej (częstej) ich optymalizacji.
W przypadku strategii posiadającej np. 6 parametrów do optymalizacji zadanie przeprowadzenia badań na 20 rynkach może okazać się zadaniem zbyt
czasochłonnym dla jednej osoby. Kolejnym aspektem są wymogi jakie to zadanie stawia przed wykonawcą, nie wystarczy być tylko ekspertem rynkowym,
należy również być dobrym programistą (pisać optymalny kod) jak również
200
Wojciech Nowicki, Aneta Bera
posiadać wiedzę dotyczącą metod optymalizacji parametrów, jak również przygotowania publikacji. Pojawia się potrzeba stworzenia zespołu i zorganizowania
w nim pracy.
2. Organizacja procesu
Poniżej kolejno zaprezentowane są wszystkie zagadnienia dotyczące organizacji
procesu i testowania. Zostały one zdefiniowane na potrzeby realizowanego
przez autorów projektu oparte na wiedzy i doświadczeniu zdobytym we wcześniejszych tego typu projektach.
2.1. Organizacja zespołu
Zespół składa się z kilku członków z przydzielonymi konkretnymi zadaniami.
Poniżej wymienione są funkcje, jakie pełnią członkowie zespołu wraz z ich
liczbą, proporcjonalną do wielkości zadania.
• Ekspert strategii – kierownik projektu. Osoba posiadająca największą
wiedzę z zakresu strategii rynkowych jak i samych rynków. Jest pomysłodawcą strategii oraz głównym pomysłodawcą przeprowadzanych badań. Czuwa również nad jakością efektu końcowego.
• Inżynier publikacji – zastępca kierownika projektu. Osoba ta również
powinna posiadać wiedzę ekspercką z zakresu badanej dziedziny. Ma
ona duży wpływ na ustalenia zagadnień merytorycznych projektu. Jej
głównym zadaniem jest zbieranie i obróbka wyników badań, przygotowywanie ich do publikacji. Czuwa nad prawidłowością wyników i dobieranych parametrów.
• Inżynier optymalizacji – programista (MATLAB) zajmujący się zaimplementowaniem (wstępnej implementacji dokonują eksperci) oraz optymalizacją kodu strategii, a także przygotowaniem całego zagadnienia
testowania, czyli przede wszystkim implementacją skryptów optymalizujących i testujących. Powinien posiadać przeciętną wiedzę z zakresu realizowanego zagadnienia. Bierze udział w uzgodnieniach merytorycznych,
ale przede wszystkim dotyczących prowadzonych badań.
• Inżynier strategii – programista platformy brokerskiej. Osoba przenosząca strategię na język stosowany na platformie brokerskiej do testowania
strategii ze zoptymalizowanymi parametrami na prawdziwym rynku.
Organizacja zespołowego procesu optymalizacji…
201
Technik optymalizacji – osoba odpowiedzialna za przeprowadzanie optymalizacji i testów. Na podstawie otrzymanych skryptów oraz danych
rynków przeprowadza proces optymalizacji i testowania. Zbiera otrzymane wyniki i zgodnie z szablonem przygotowuje raporty dla inżyniera
publikacji. W miarę wykonywania optymalizacji na danych rynkach zaczyna poznawać ich charakterystykę, dzięki czemu w miarę rozwoju potrafi lepiej dobierać zakresy testowanych parametrów co przyczynia się
do przyspieszenia obliczeń.
Poniższy rysunek prezentuje hierarchię członków zespołu, ich zadania oraz
wykonywane przez nich zadania i wyniki ich pracy.
•
Rys. 1. Organizacja pracy zespołu
2.2. Organizacja czasu
Ze względu na przyjęty podział pracy zadania mogą być wykonywane kaskadowo.
Jedynym wspólnym punktem są okresowe spotkania całego zespołu, na których
omawiane są postępy pracy oraz wyniki, dyskutowane są dalsze zadania, ich przebieg oraz treść. Jest to czas na wymianę spostrzeżeń pomiędzy poszczególnymi
grupami, np. przekazanie sugestii przez testerów inżynierom optymalizacji odnośnie sposobu obsługi skryptów czy przekazanie przez inżyniera publikacji technikom optymalizacji uwag dotyczących przesyłanych sprawozdań. Poza tymi spotkaniami członkowie pracują w swoich grupach nad zadaniami.
202
Wojciech Nowicki, Aneta Bera
Kaskadowy przebieg dzięki podzieleniu pracy na nienakładające się etapy
z których każdy wynika z poprzedniego. Eksperci ustalają treść zadania przed spotkaniem. Następnie inżynierowie optymalizacji pracują nad kodem zadania, zaś pozostali członkowie zespołu mogą kończyć poprzednie zadania. Po osiągnięciu
przez kod postaci finalnej technicy optymalizacji przystępują do wykonywania badań. Inżynier strategii ma czas do końca wykonywanych badań na przygotowanie
kodu strategii na platformie brokerskiej. W tym samym czasie możliwe jest już
organizowanie kolejnego spotkania omawiającego kolejne zadanie. Cały proces
został pokazany na rysunku 2.
Rys. 2. Cykl pracy zespołu
Oczywiście takie rozwiązanie organizacji czasu niesie za sobą pewne wady,
jeśli na którymś etapie prace utkną z jakiegoś powodu nie będzie możliwe ich
przeprowadzenie na kolejnych etapach. Jednak takiej zależności pomiędzy członkami zespołu nie da się usunąć.
Organizacja zespołowego procesu optymalizacji…
203
Rys. 3. Organizacja zadań zespołu w czasie
2.3. Struktura skryptów
Ze względu na charakterystykę zagadnienia oraz przyjętą organizację pracy,
przygotowywane skrypty optymalizujące parametry muszą mieć specjalną konstrukcję. Jak już wcześniej wspomniano wykorzystywane jest środowisko
MATLAB.
Zaczynając od podstaw dane przyjęte do badań zostały ujednolicone dla wszystkich rynków, przyjęte zostały daty graniczne, ilość próbek pomiarów (świec) oraz
format zapisu. Każdy rynek posiada swoją unikalną charakterystykę jest to przede
wszystkim podstawowa jednostka ceny zwana pipsem oraz spread czyli wartość pobierana przez brokera od każdej transakcji w ramach jego wynagrodzenia. Te wartości są zdefiniowane jako zmienne we wszystkich skryptach i należy przed uruchomieniem skryptu na danym rynku wprowadzić ich wartości. Dzięki takiemu
rozwiązaniu strategie są w pełni przenośne pomiędzy rynkami.
Logika strategii jest zamknięta w funkcji i ta funkcja jest wykorzystywana
we wszystkich badaniach oraz testach, co zapewnia ujednolicenie działania. Kod
każdego zadania optymalizacji jest w osobnym pliku, i jest również zamknięty w
funkcji. W nim znajdują się wszystkie mechanizmy obliczania najlepszych wartości parametrów, testowania tych parametrów w przeszłości. Wiele zależy od
optymalizacji kodu zadania.
Ostatnim rodzajem skryptu jest skrypt rozruchowy, w którym technicy definiują przestrzenie parametrów do zbadania, podają zmienne charakterystyczne
204
Wojciech Nowicki, Aneta Bera
dla rynku, czy wykonują pozostałą wymaganą konfigurację. Jest to jedyny plik,
w którym technik dokonuje jakichkolwiek zmian, taki podział plików jest również spowodowany odcięciem grup od zadań spoza ich zakresu kompetencji.
Technik dostaje gotowy kod, i wie że nie musi nic modyfikować w pliku zadania
czy strategii, a wszystko co musi zrobić ma w pliku rozruchowym. W praktyce
wygląda to tak, że technik przewidując ile konkretne badanie może potrwać, jest
w stanie uruchomić ich kilka pod rząd w jednym pliku rozruchowym.
2.4. Zdalny robot
Ze względu na swoją złożoność i ilość danych badania nawet po prawidłowej
optymalizacji działania kodu potrafią trwać również ponad 24 godziny. Ze
względu na to większość badań jest przeprowadzana przez techników na wydzielonym do projektu serwerze z zainstalowanym środowiskiem MATLAB.
Jako że serwer pracuje pod systemem Linux dostęp zdalny odbywa się za
pomocą SSH, wykorzystywany jest również wirtualny terminal czyli komenda
screen. Screen jest niezależną instancją sesji użytkownika. Można zatem uruchomić w niej program i odłączyć się od niej w odpowiedni sposób, pozostawić program dalej działającym. Możliwe jest uruchomienie kilku screenów naraz,
i każdy z nich może obciążać inny rdzeń procesora programem który sam w sobie
nie obsługuje wielu procesorów.
Stworzenie nowego screena wykonuje się poprzez wpisanie polecenia:
screen -S nazwa_screena
Odłącznie od screena realizuje się poprzez kombinacje klawiszy [Ctrl] + [A] a następnie [Ctrl] + [D]. Powrót do screena możliwy jest po wpisaniu komendy:
screen -r nazwa_screena
Dzięki zastosowaniu takiego rozwiązania oraz specyficznej budowie skryptów,
możliwe jest równoczesne uruchomienie badania na kilku rynkach i odebranie
wyników po skończonej pracy. Oczywiście z uwzględnieniem okresowych kontroli czy skrypty dalej prawidłowo pracują.
3. Otrzymane wyniki
Wszystkie wyniki zwracane przez skrypty są zapisywane do plików - jest to wymóg podyktowany zdalnym realizowaniem badań. W workspace MATLABa wyświetlana jest tylko informacja o postępach pracy i prawidłowym działaniu
Organizacja zespołowego procesu optymalizacji…
205
skryptu. Dzięki zapisywaniu wszystkich istotnych informacji w plikach możliwe jest ich łatwe pobranie na swój komputer w celu dalszej obróbki.
Rodzaje zapisywanych plików:
• główny plik wyniku – plik tekstowy (.txt) w którym zapisane są
wszystkie informacje które należy zawrzeć w sprawozdaniu z wykonanego badania, oraz dodatkowe informacje o przebiegu optymalizacji
z których można ewentualnie wyciągnąć dodatkowe wnioski,
• csv – w plikach CSV zapisywane są przede wszystkim macierze i wektory z wynikami badań, dzięki czemu łatwo tego typu dane obrobić
i dołączyć do wynikowego sprawozdania,
• .png – w plikach PNG zapisywane są wykresy zmiennych będących
wynikiem zadania. Jest to również format ułatwiający dalszą pracę.
Dodatkowo pliki są tak nazywane, że w łatwy sposób można je powiązać
z rynkiem i przeprowadzanym badaniem. Przykładowy, główny plik z wynikami wygląda następująco:
==============
| Badanie 3a
| Autor
Jan Nowak
| Rynek
EURJPY
| Pip
0.01
| Spread
5 * pip
==============
+ Przebieg zadania:
- Wczytanie danych:
OK
- Optymalizacja:
OK
- Test:
OK
- Zapis wykresu:
OK
- Zapis wyników:
OK
- Zapis *.csv:
OK
+ Wyniki:
- Ma:
10
- VolLength:
20
- SL:
0.95
**************************************
+ Wynik końcowy:
420.64
==============
206
Wojciech Nowicki, Aneta Bera
4. Podsumowanie
W przypadku średnich tego typu projektów badawczych, niezmiernie ważną
rzeczą jest prawidłowe zorganizowanie całego procesu. Są to projekty w których pojawia się już pojęcie zarządzania nimi, nie są jednak tak duże aby opłacalne było uruchamianie profesjonalnych mechanizmów do ich prowadzenia.
Zaproponowane przez autorów ogólne zasady prowadzenia tego typu projektów
należy traktować jako sugestie. Powstanie tej publikacji jest dowodem na to, że
w projekcie ważna jest nie tylko sama merytoryka ale również umiejętności
zorganizowania przetwarzania tych zagadnień merytorycznych. Autorzy zauważają znaczne polepszenie wydajności projektu po wprowadzeniu zaprezentowanych rozwiązań.
Bibliografia
1.
2.
3.
4.
5.
6.
7.
Brock W., Lakonishok J., LeBaron B. Simple technical trading rules and
stochastic properties of stock returns. Journal of Finance 47(1992),
1731-1764
Piper J. The Way to Trade, Harriman Modern Classic, 2006
Krutsinger J. Systemy transakcyjne. Sekrety mistrzów. WIG-Press, Warszawa 1999
Schwager, J., Analiza techniczna rynków terminowych., WIG-Press, Warszawa, 2002
Stabryła A. Analiza i projektowanie systemów zarządzania przedsiębiorstwem, Mfiles.pl, Encyklopedia Zarządzania, 2010
The MathWorks, Inc., Matlab Documentation, version R2012B, 1984-2012
Screen Manpage, on-line: http://man.cx/screen(1)/pl