wtorek, 11 września 2012

Regresja liniowa może służyć jako kryterium optymalizacji systemu transakcyjnego – kolejna symulacja na EURUSD


W niedawnym tekście przedstawiłem ogólną propozycję funkcji kryterium jako ilorazu wskaźnika zysku przez wskaźnik ryzyka. Dzisiaj kolejny przykład pary tak skonstruowanych wskaźników wraz z efektem symulacji ich działania dla systemu transakcyjnego o dwóch poziomach hierarchii. Tym, co odróżnia konstrukcję tej propozycji od poprzednio przedstawianych jest jej jawna zależność od upływu czasu, mierzonego kolejnymi interwałami. Innymi słowy – wartość wskaźników jest zależna od chronologicznego układu obserwacji zawartych w badanej sekwencji.



Dla porównania: poprzednio stosowane miary zysku, zarówno średnia jak i mediana, miały tę własność, że ich wartości nie były zależne od kolejności, w jakiej występowały dane wejściowe. W języku matematycznym własność ta jest formalnie określana jako niezmienniczość na permutacje zbioru danych wejściowych. Podobnie dla miar ryzyka takich, jak odchylenie standardowe, odchylenie bezwzględne czy nawet odstęp międzykwartylowy.

Warto zauważyć, że z tego schematu wyłamuje się maksymalne obsunięcie, które z samej definicji zależy od kolejności próbek, gdyż mierzy spadki kapitału względem wcześniej osiągniętych maksimów. Natomiast innym wskaźnikiem ryzyka, na który chciałbym zwrócić uwagę jest średniokwadratowa odległość krzywej kapitału gracza od przybliżającej ją prostej regresji. Szczegółowe omówienia własności powyższego wskaźnika będą jeszcze omawiane w przyszłości, natomiast teraz chciałbym po raz pierwszy przybliżyć go i jego zastosowanie do optymalizacji parametru.

Definicja opiera się na wyznaczeniu sum kwadratów różnic pomiędzy prostą przechodzącą przez początek układu współrzędnych i o zadanym nachyleniu alfa a ciągiem skumulowanych zysków, czyli po prostu kolejnych sum częściowych badanej sekwencji:

To jest definicja ogólna, ponieważ prosta może być dowolna. Natomiast wyznaczając takie alfa, dla którego powyższe wyrażenie osiąga minimum, otrzymujemy prostą regresji liniowej. I właśnie współczynnik kierunkowy tej prostej przyjmiemy jako miarę zysku:


Słuszne jest zapewne rozumowanie, że im większe nachylenie tej prostej, tym szybszy przyrost kapitału. Zarazem rozrzut punktów na linii kapitału wokół tej prostej określa zmienność a zatem może służyć do oceny ryzyka. Z tego wynika konkretna postać formuły na optymalizację parametru, zgodnie ze schematem ogólnym


Rezultaty zastosowania powyższego kryterium do systemu hierarchicznego o dwóch poziomach przedstawia poniższy wykres. Zakres rekordów notowań tygodniowych EURUSD, jak również konwencja kolorystyczna wykresu są takie same jak dla poprzednich eksperymentów z tej serii.



Dodatkowo warto wspomnieć że wprowadzona tutaj liczbowa ocena stabilności wynosi 15 300. Oznacza to w szczególności, że dla tego akurat zbioru danych i parametrów działanie strategii jest najmniej stabilne wśród wszystkich dotychczas przebadanych wariantów. Niemniej jednak warto poznawać nowe funkcje, jako kandydatów na kryteria optymalizacji dla nowo tworzonych systemów.

Kontynuacja wątku tutaj.

6 komentarzy:

  1. Stabilność to nie wszystko, liczyłem również średni zysk (i ryzyko) po wszystkich m,
    żeby porównać to z wynikiem systemu o dwóch poziomach adaptacji.
    Wydaje się, że w tym przypadku powyższe miary mogłyby być nawet lepsze od dotychczasowego lidera (CG/MDD).

    OdpowiedzUsuń
    Odpowiedzi
    1. Dobry pomysł. Myślę, że skorzystam z Twojej uwagi i wyliczę również te wartości. Wyniki spiszę i podam, pewnie w postaci tabelki. Tym bardziej, że w zapasie mam jeszcze jedną - chyba już ostatnią w tej serii - funkcję kryterium.

      Usuń
  2. Dzisiejsze wzory są mało użyteczne z punktu widzenia implementacji, gdyż raczej nie będziemy przeszukiwać całego zbioru continuum dla optymalnego alfa :). Z medianą jeszcze można sobie poradzić stosując iteracyjnie sortowanie przez wstawianie.

    OdpowiedzUsuń
    Odpowiedzi
    1. Jasne, przeszukiwanie (nawet na skończonej siatce wartości z zadanym skokiem) byłoby zabójcze z punktu widzenia złożoności obliczeniowej. Oczywiście wykres który dzisiaj pokazałem, wyznaczyłem w symulacji z zastosowaniem jawnych wzorów na wartości tych wskaźników, które udało mi się wyprowadzić. Jest to temat na tyle ciekawy i złożony, że podam go w oddzielnym wpisie, może nawet niejednym.

      Usuń
  3. Dobry system, powinien uzależniać wielkość pozycji od posiadanego kapitału. Jeśli system utrzymuj stałą zyskowność transakcji w czasie, to krzywa kapitału będzie funkcją wykładniczą. Czy regresja liniowa będzie miała sens? Przyznaję, że we wzory się nie wgłębiałem, bo jestem zbyt leniwy i mogę się mylić.

    Nie jestem też taki pewien, czy warto poznawać kolejne funkcje optymalizacji systemów. Może lepiej poświęcić czas na jakieś bardziej konkretne zadania i użyć jednego z wielu istniejących miar, np. Ulcer Index (też zależy od kolejności obserwacji)?

    OdpowiedzUsuń
    Odpowiedzi
    1. Kwestię doboru wielkości pozycji będę traktować jako zagadnienie osobne, niejako nadbudowę na system elementarny działający stale na jednej pozycji. Nawiązuję tutaj do dyskusji, jaka wynikła po pierwszym omówieniu elementarnego systemu: http://inteligentnesystemy.blogspot.com/2012/08/1-przedmiot-zainteresowania-prosty-lecz.html?showComment=1345921567372#c8071517279031821038
      Natomiast nawet w przypadku systemów z dynamicznym doborem pozycji taką miarę można z powodzeniem stosować, wystarczy przetransformować linię kapitału za pomocą funkcji logarytmicznej. Wtedy trend wykładniczy przejdzie na liniowy i regresja ma sens.

      Co do wielości wskaźników, to faktycznie namnożyło się ich już, ale implementacyjnie nie było to problemem, bo każdy z nich to parę linijek, a w symulacjach wybór robi się przez prostego switch-a.

      Usuń