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