piątek, 31 sierpnia 2012

Wyniki empiryczne dla hierarchicznego systemu transakcyjnego na EURUSD – wersja antytrendowa

Przedstawione ostatnio wyniki symulacji działania systemu podążającego za trendem z dynamiczną adaptacją parametrów pozwoliły na wstępną wzrokową analizę jego własności. Najważniejsze wnioski z tej analizy są chyba dość oczywiste – skuteczność systemu, mierzona łącznym skumulowanym zyskiem gracza na końcu okresu symulacji, jest istotnie zależna od parametru m, który obecnie determinuje rozmiar historii rekordów uwzględnianej przy optymalizacji parametru p. Ponadto, nawiązując do przemyśleń na temat zdolności uogólniania, warto zwracać uwagę na charakter tej zależności, szczególnie pod kątem stabilności. Ujmując rzecz obrazowo, dobrze jest jeśli można wyróżnić zakresy parametru, dla których wyniki systemu pozostają względnie stabilne i nie wykazuję gwałtownych zmian. Gorzej natomiast, jeśli dla pewnej wartości parametru system osiąga rewelacyjną skuteczność, a po jego (parametru) niewielkiej zmianie system zachowuje się fatalnie. Intuicyjnie wtedy podejrzewamy, że trudno będzie liczyć na powtarzalność dobrych wyników w przyszłości.

Póki co, dla przedstawionego wcześniej przebiegu można wyróżnić zakres argumentów m w przybliżeniu pomiędzy 30 a 60, dla którego to zakresu system wykazuje dobre zyski przy jednoczesnej korzystnej relacji względem maksymalnego obsunięcia. Drugi taki obszar to liczby powyżej 170, które dają wartości stabilizujące się na liczbach dodatnich.

A jak to się przedstawia dla hierarchicznego systemu o strategii kontrariańskiej? Spójrzmy na wykres sporządzony na podstawie symulacji o takich samych zakresach historycznych kursów, parametrach i warunkach jak poprzednio. Oczywiście na pierwszym poziomie hierarchii funkcjonuje prosty system antytrendowy.


Jak widać charakterystyka zależności zysku od parametru m przybiera zdecydowanie inny kształt niż dla systemu podążającego. Co więcej, nie można tutaj dostrzec jakichś prostych relacji geometrycznych pomiędzy obydwoma systemami. Należy przy tym zauważyć, że zupełnie inaczej byłoby, gdybyśmy narysowali i porównali wizualnie charakterystyki zależności od parametru p dla systemów elementarnych obu rodzajów. Wówczas dla wartości tego parametru ustawionych „na sztywno” poziomy odwróceń obu systemów są takie same, a pozycje przeciwne. W związku z tym mają one kształt symetryczny względem pewnej prostej poziomej. Na marginesie wspomnieć warto, że prosta ta leży nieco poniżej osi odciętych, ponieważ zyski osiągane w tych samych interwałach dla systemów przeciwnych typów nie są dokładnie liczbami przeciwnymi – ze względu na spread i poślizgi.

Natomiast kluczowym wnioskiem z analizy obu wykresów jest fakt, że dla systemów w realizacji hierarchicznej dwupoziomowej można wyróżnić zakresy parametrów, przy których dwa systemy bazujące na przeciwnych postulatach okazują się zyskowne dla rozpatrywanego zbioru danych. Ten wniosek warto potraktować jako punkt odniesienia do dalszej analizy wyników przeprowadzonego eksperymentu symulacyjnego.

Kontynuacja wątku tutaj.

7 komentarzy:

  1. Różne wykresy sugerują, że adaptayjne algorytmy będą mniej skorelowane niż ze stałym p.
    Czy zgodnie z prferencją minimalizacji liczby parametrów pozbędziemy się m kosztem drugiego poziomu adaptacji, czy już złożoność obliczeniowa okaże się zabójcza?

    OdpowiedzUsuń
    Odpowiedzi
    1. Co do złożoności obliczeniowej to przy okazji ujawniam, że opisany powyżej eksperyment obliczeniowy dla obu wersji strategii zajął łącznie niecałą godzinę na komputerze klasy i5 - implementacja w C++ z wykorzystaniem wyłącznie STL i kompilowana na GCC. Jest to czas całkiem niezły dla przekrojowego badania na i tak dużym zakresie danych - 2.5 roku. Ale raczej już nie do dynamicznej adaptacji. Zatem ewentualna optymalizacja parametru m na kolejnym poziomie hierarchii wymagałaby jakichś bardziej zaawansowanych technologii - np. przerzucenia części obliczeń na GPU.
      Natomiast w najbliższej przyszłości postaram się podjąć kwestię doskonalenia zaproponowanych koncepcji bez wprowadzania kolejnego poziomu w hierarchii - rozbudowa nie wzwyż a raczej poziomo :)

      Usuń
    2. Symulacja z jeszcze jednym poziomem zajęła by mniej więcej tyle samo, bo tam nie byłoby parametru do optymalizacji. Czas nie jest zły, a dla real time zawsze można zaprząc klaster...

      Usuń
    3. No właśnie wydaje mi się, że dużo więcej. Moja pierwsza myśl to uruchomić symulację taką, jak opisałem, wyznaczyć optymalne m, a w kolejnym interwale przesunąć się ze zbiorem danych - wyrzucić najstarszy interwał, dołożyć nowy i powtórzyć symulację aby uzyskać nową wartość m. Oznacza to, że dla rocznego okresu musielibyśmy wykonać 52 * 1 godzinnych symulacji - a to już dużo. Chyba że jest jakiś trick aby to obejść, tylko na razie go nie widzę.

      Usuń
    4. Wciąż nie jestem przekonany do pozycji 0, gdyż uważam że seria rozpędowa może trochę sprawę uprościć.
      Korzystając z nierówności Czebyszewa można wyznaczyć potrzebną długość serii rozpędowej,
      żeby mieć 95% pewności że nastąpi wychylenie o średnią i pięć sigm potrzeba około 75 intrwałów.
      Na poziomie t liczymy tylko raz zyski cząstkowe dla najdłuższego m (plus średnia rozpędowa dla pozycji początkowej)
      i na tym liczymy optymalną sumę_zysku/ryzyko dla poszczególnych m w danym kroku, możemy zapamiętać od razu dla jakiego t jest optimum. Teraz liniowo przelatujemy po wszystkich m, wybieramy najlepsze i podsyłamy jego t do grania.

      Usuń
    5. Wybór pozycji neutralnej w moim podejściu był podyktowany tym, że w takim przypadku dla t przekraczającego maksymalne wahania po wszystkich interwałach pozostajemy do końca na 0. A to zapewnia, że supremum badanej funkcji celu jest zawsze co najmniej nieujemne. Trzymając się tego postulatu projektowałem cały algorytm.
      Natomiast to co zaproponowałeś jest interesujące. Spróbuję ująć to jakoś formalnie, wtedy też zobaczę czy dobrze zrozumiałem ideę. I zrobimy trochę testów, bo jestem niezmiernie ciekaw wyników...

      Usuń
  2. Matematyk, fizyk i inżynier dostali po kawałku siatki ogrodzeniowej i zadanie, by ogrodzić jak największy teren. Inżynier szybko ogrodził elegancki kwadrat. Fizyk obliczył że najlepszy stosunek powierzchni do obwodu ma koło i pracowicie cały dzień rozstawiał siatkę w idealny okrąg. Natomiast matematyk rozstawił siatkę byle jak w krzywa zamkniętą, wszedł do środka i powiedział, że jest na zewnątrz.

    Ja jestem inżynierem i uważam, że zasady są po to by je łamać :), wysokie p są i tak bezużyteczne a poświęcając jedno założenie można zyskać kolejny poziom adaptacji.

    OdpowiedzUsuń