Warsztat inwestora
W poprzednim odcinku (PARKIET z 19 stycznia 2001 r.) zostały omówione niektóre z uwarunkowańzwiązanych z optymalizacją i testowaniem systemów transakcyjnych. Dzisiaj kolej na prezentacjępodstawowych metod weryfikacji ich skuteczności. Niezależnie od przyjętego rozwiązaniakluczową zasadą jest zawsze rozdzielenie okresów, z których pobierane są dane do optymalizacji i testowania systemu.
Istnieje wiele różnych metod optymalizacji i testowania systemów transakcyjnych. W najprostszej postaci inwestor poprzestaje na optymalizacji prostej, polegającej na tzw. dopasowaniu krzywej do danych. Po stworzeniu systemu, metodą dużej liczby przeliczeń poszukiwany jest najlepszy z możliwych zestaw parametrów spełniający określone przez inwestora kryterium. Najczęściej jest nim najwyższa historycznie stopa zwrotu. Mimo że metoda ta jest mało skuteczna, to jednak ze względu na swoją prostotę korzysta z niej wielu inwestorów. Należą do nich zwłaszcza technicy wierzący w powtarzalność zachowań giełdowych. Ze względu na brak jakiegokolwiek sprawdzenia systemu na rozłącznym (w stosunku do optymalizacji) zbiorze notowań, stosowanie takiego systemu w praktyce obarczone jest bardzo wysokim ryzykiem. Z tego powodu większość inwestorów przeznacza na optymalizację parametrów tylko część notowań, pozostałą wykorzystując do sprawdzenia efektywności systemu. Do najpopularniejszej tego typu metody należy tzw. testowanie z próby.Testowanie?przyszłości?W podręcznikach do analizy technicznej metody zbliżone do testowania z próby można spotkać pod różnymi nazwami: ślepej symulacji (blind simulation), testów projekcyjnych, symulacji krokowej (simulation stepping) lub testowania w czasie rzeczywistym (real-time testing). Niezależnie od drobnych różnic pomiędzy poszczególnymi metodami ich wspólną cechą jest przeprowadzanie optymalizacji na jednym (lub kilku) zakresie danych i testowania na innym (innych) późniejszym. W ten sposób uzyskujemy możliwość sprawdzenia działania systemu w warunkach zbliżonych do rzeczywistych. Kończąc optymalizację parametrów systemu w oznaczonym punkcie w przeszłości możemy potraktować przeznaczony do testowania okres jako ?pseudoprzyszłość? (stąd nazwa akapitu). Teoretycznym założeniem tej metody jest teza, iż efektywny system przyniesie odpowiednio dobre wyniki na ?nowych? danych, podczas gdy wyniki nieefektywnego systemu będą miały charakter losowy.Testowanie z próby wymaga dużego zakresu danych. Amerykański analityk Steve Killer uważa, że takiemu badaniu można poddawać akcje spółek o co najmniej 5?10-letniej historii notowań. Im dłuższa historia notowań, tym większa pewność uzyskanych wyników.Mechanizm testowania z próby jest następujący. W budowie systemu do optymalizacji wykorzystywana jest część notowań z zakresu objętego badaniem (np. połowa), po czym testujemy ?najlepszą? kombinację parametrów (tzn. otrzymaną w wyniku optymalizacji) na danych późniejszych. W przypadku gdy wyniki testowania nie są zadowalające, cofamy się i modyfikujemy budowę systemu. Jeżeli dysponujemy odpowiednio dużym zestawem danych, operację optymalizacji i testowania można przeprowadzić wielokrotnie, za każdym razem zmieniając (przesuwając w przód) zakres notowań. Sposób takiego postępowania przedstawia rysunek 1.Załóżmy, że dysponujemy 23-letnią historią notowań danej spółki (pamiętając o dacie powstania WGPW nadmieniam, że to tylko przykład). Optymalizujemy system na pierwszym okresie danych (np. 8 lat) i następnie testujemy jego działanie na kolejnym roku notowań. Następnie bierzemy pod uwagę następny 8-letni okres przesunięty o 12 miesięcy w przód i ponownie testujemy system na pierwszym ?wolnym? roku. Powtarzając wielokrotnie tę operację końcowa optymalizacja przypada na lata 15?22, a końcowe sprawdzenie systemu na dane z ostatniego, 23 roku.Ponieważ, jak łatwo zauważyć, w każdym etapie optymalizacja i testowanie parametrów systemu dokonywane są na innych zbiorach notowań, weryfikacja skuteczności systemu jest wold ingerencji inwestora. Decyduje on natomiast o długości okresów, z jakich pobierane są dane do obliczeń oraz ustala kryteria oceny systemu. Można np. zmieniać proporcje pomiędzy etapami testowania systemu w stosunku do zakresu danych wykorzystywanych w optymalizacji.Zdaniem wielu analityków, testowanie z próby jest jedną ze skutecznych metod testowania jakości systemu. Jeśli opracowany przez nas system nie przejdzie pomyślnie tej symulacji, lepiej nie ryzykować własnego kapitału.Jeszcze stosunkowo niedawno, bo do przełomu lat 80. i 90., wśród istotnych wad testowania z próby wskazywano na konieczność dysponowania dużą liczbą notowań oraz pracochłonność obliczeń. Dzisiaj w czasach superszybkich pecetów (w stosunku do lat 90.) i nieograniczonego wręcz sieciowego dostępu do danych wymienione wady wydają się mało istotne.Wersja skumulowanaTestowanie z próby w postaci przedstawionej w poprzednim akapicie to tylko przykład jednego z wielu wariantów możliwych do zastosowania. Inne rozwiązanie polega na optymalizacji systemu na rosnących zbiorach notowań. W takim przypadku w pierwszym etapie dokonywana jest optymalizacja systemu na danych pochodzących z pierwszej części badanego okresu, a następnie przetestowanie jego wyników na stosunkowo niedługim okresie późniejszym. W kolejnym kroku wyznacza się optymalny zestaw parametrów na zbiorze notowań obejmujących oba odcinki czasowe i testuje system na następnym odcinku.Zaletą krokowego zwiększania zakresu notowań przeznaczonych do optymalizacji jest możliwość sprawdzania, jak wydarzenia na rynku wpływają na wyniki systemu. Jeżeli są one zadowalające, przeprowadzamy obliczenia do końca, jeśli nie ? przerywamy testowanie i poprawiamy konstrukcję systemu. Przykład kumulatywnego testowania z próby przedstawia rysunek 2.Wracając do poprzedniego przykładu, a więc dysponując notowaniami wybranej spółki za okres 23 lat, schemat postępowania może wyglądać następująco. W pierwszym etapie optymalizujemy system na danych z okresu 8 lat i testujemy go na notowaniach z dziewiątego roku, następnie obejmujemy optymalizacją dane z 9 lat i testujemy na 10 roku notowań itd., aż do końcowej optymalizacji przeprowadzanej na 22-letnim okresie notowań.Metody optymalizacjiDo tej pory skupiłem się na prezentacji różnych metod sprawdzania zależności pomiędzy historyczną optymalnością parametrów systemu, a jego przyszłą efektywnością. Odrębną i pomijaną jak dotąd kwestią jest sposób przeprowadzenia optymalizacji.Istnieje wiele algorytmów obliczeniowych, które mogą być stosowane do wyznaczania parametrów historycznie optymalnych. Ze względu na nasycenie ich opisu dużą ilością pojęć matematycznych, ograniczę się jedynie do ich krótkiej charakterystyki (patrz tabela). Należy w tym miejscu dodać, że współczesne komputerowe programy giełdowe stosują najczęściej zespolone metody hybrydowe będące połączeniem kilku prostych metod, nierzadko z użyciem niepublikowanych nigdzie elementów autorskich.W systemie transakcyjnym o dużej liczbie zmiennych (optymalizowanych) parametrów znalezienie efektywnego zestawu jest niezwykle trudne. Sprawdzenie skuteczności systemu dla wszystkich wartości parametrów jest wręcz niemożliwe ze względu na potrzebny czas obliczeń. Z tego powodu stosuje się metody poszukiwań wartości niemal optymalnych, które w dostateczny sposób przybliżają optimum.Należy zwrócić także uwagę na fakt, że algorytmy optymalizacyjne ukryte pod postaciami czarnych skrzynek mogą się nieznacznie różnić w swoim działaniu. Tak więc taki sam system optymalizowany jednym programem może dać trochę inne (najlepsze) wyniki niż optymalizowany przy użyciu innego. Może się okazać, że quasi-optymalne zestawy parametrów wyznaczone za pomocą jednej ?czarnej skrzynki? będą w przyszłości lepsze niż wyznaczone z użyciem innej czarnej skrzynki. Dla inwestora jest to o tyle niebezpieczne, że zostaje on prowokowany do wgłębiania się w techniczne strony zagadnień optymalizacji zamiast koncentrować się wyłącznie na merytorycznej ocenie zachowań rynku.PodsumowanieZaprezentowane dzisiaj metody optymalizacji i testowania systemów transakcyjnych pozwalają na mechaniczną weryfikację ich skuteczności. Niestety, wyniki testów nie są najczęściej pomyślne dla inwestora. W ogromnej większości przypadków jakakolwiek metoda optymalizacji nie pozwala na uzyskanie zestawu parametrów, przy których efektywność systemu byłaby wyższa niż dla doboru losowego. Nie oznacza to bynajmniej, że nie warto poszukiwać skutecznych systemów transakcyjnych. Warto, tym bardziej że współczesne programy komputerowe w zakresie optymalizacji i testowania systemów oferują wiele interesujących rozwiązań. Do tematu tego powrócę w następnym odcinku.
PODSTAWOWE WERSJEALGORYTMÓW OBLICZENIOWYCH,KTÓRE MOGĄ BYĆ STOSOWANEDO OPTYMALIZACJI SYSTEMUMetoda stochastyczna ? bazuje na losowym poszukiwaniu najlepszego rozwiązania. Może oznaczać zmianę parametrów optymalizowanego systemu w losowym kierunku bądź losowanie całkowicie nowego zestawu parametrów.Metoda gradientowa ? poszukiwanie parametrów optymalnych na podstawie oszacowania kierunku zmian parametrów, który przyniesie największy wzrost wartości funkcji celu (np. rocznego zysku lub liczby trafnych transakcji). Posuwamy się w kierunku spodziewanych najkorzystniejszych zmian. Do wyznaczenia kierunku stosuje się pochodne cząstkowe funkcji celu względem parametrów.Metoda bezgradientowa (np. Powella bądź Hooke'a-Jeevesa) ? po wyborze kierunku sprawdzamy, czy nowy zestaw parametrów jest lepszy czy gorszy. Różnica w stosunku do metody stochastycznej polega na tym, że kierunek kolejnego kroku jest określony na podstawie poprzedniego kierunku, tak aby nie powtarzać zbyt często niewłaściwych kroków. Poszczególne metody różnią się sposobem ustalenia nowych kierunków.Metoda genetyczna ? bazuje na mieszaniu (krzyżowaniu) wcześniejszych wyników optymalizacji. Przechowuje się w pamięci kilkadziesiąt najlepszych zestawów parametrów i wyników skojarzonych z nimi. Krzyżujemy je ze sobą (np. biorąc połowę z jednego wyniku i połowę z drugiego), badając, czy efekt jest lepszy od obu przykładów służących za wzorzec. Jeśli wynik jest lepszy, z bazy usuwamy wynik najgorszy, a wprowadzamy nowo otrzymany lepszy wynik. Najczęściej początkowe wypełnienie pamięci odbywa się w sposób losowy oraz od czasu do czasu istniejące wyniki krzyżuje się z losowym wzorcem.
nKarol Jarzyński