Test wszystkich testów część 4

W temacie weryfikacji mechanicznych systemów na danych nie widzianych jeszcze w procesie kodowania i optymalizacji pozostała jeszcze jedna kwestia do wyjaśnienia: jak sensownie wpływać i interpretować wyniki owych testów Walk Forward? Kilka sugestii i obserwacji poniżej.

 

Przypomnę jedno stwierdzenie z poprzedniego wpisu – komputerowe strategie są tylko (aż?) tak dobre jak człowiek, który je projektuje. Wprawdzie kwestie obliczeniowe maszyna wykona perfekcyjnie ale oceny tych wyników mimo wszystko musi dokonać najsłabsze ogniwo w tym łańcuchu czyli człowiek. Rozpoznanie czyhających pułapek prowadzi do nagrody. Nie jest nią kategoryczna pewność, że strategia zadziała w przyszłości, ale po pierwsze – uzyskujemy większe prawdopodobieństwo że tak się stanie, po drugie – otrzymujemy tzw. weryfikację negatywną. Ta ostatnia przybliża inwestowanie w kierunku dyscypliny naukowej ponieważ jest to obiektywna procedura, która daje możliwość przyjęcia lub odrzucenia hipotezy o efektywności koncepcji inwestycyjnych, których tysiące błąka się po internecie i literaturze, często błędnie i bezwiednie a do tego nieskutecznie powielanych.

Pierwszym kryterium prawidłowości doboru każdej wielkości próby out-of-sample (kroku) w teście Walk Forward powinna być ilość transakcji uzyskana w jego wyniku. Jeśli krok został ustawiony każdorazowo na wielkość 12 miesięcy (jeden rok niekoniecznie kalendarzowy) i w każdym teście otrzymamy średnio tylko kilka transakcji, to sygnał, że zakres danych (krok) trzeba powiększyć. W statystyce mówi się o minimum 30 zdarzeniach, jako próbie potwierdzającej istotność. Sztywne trzymanie się tej zasady w tradingu rzadko przynosi efekt. Z doświadczenia wiem, że czasem 100 wyników może okazać się nieistotne a 300 dopiero zbliżyć do istotności dla strategii krótkoterminowych. Im więcej tym lepiej ale ze świadomością , że 30 to absolutne minimum. O ile nie da się wyprowadzić tylu transakcji na danych tylko dla jednego instrumentu, nieodzowne będzie sprawdzenie systemu na cenach innych papierów.

Sugerowałbym testowanie z użyciem dwóch ustawień wielkości pozycji. Surowe czyli bez żadnych algorytmów regulujących jednorazowe użycie kapitału w transakcji – po to by sprawdzić ile przewagi przynosi system sam w sobie, oraz w kolejnym teście- ile z tego zabiera lub ile dodaje bardziej złożona metoda użycia kapitału. To pozwala łatwiej identyfikować słabe punkty strategii. Efektywny system może ucierpieć w teście weryfikacyjnym w wyniku przeszarżowania z wielkością użytego kapitału albo wręcz przeciwnie – marny przeżyć tylko dzięki dobremu zarządzaniu pozycjami. Natomiast  wstępny test stale tylko na jednostce danego instrumentu jest łatwiejszy w ocenie podstaw systemu.

Nie ma natomiast potrzeby robić osobnych fizycznie testów (w sensie dosłownym) czyli najpierw na zbiorze służącym do optymalizacji i ponownie, z ustawieniami początkowymi, na tym drugim, służącym do weryfikacji. Z wielu powodów, a ten najważniejszy nazywa się ?stopnie swobody”. Najprościej rzecz ujmując chodzi o to by nie tracić danych na tzw. jałowy bieg. Jeśli na przykład system używa średniej 100 okresowej a zbiór out-of-sample ma wielkość roku (250 dni) to gdyby zaczynać test sprawdzający od pierwszego dnia wówczas 100 dni z 250 -ciu zostaje zmarnowanych na wyliczenie pierwszego sygnału. Akurat w tych dniach mogą zdarzyć się najistotniejsze transakcje. Dlatego procedura testowa powinna zachować ciągłość – najpierw optymalizujemy parametry na próbie in-sample po czym weryfikujemy jakość parametrów na próbie składającej się łącznie z obu zbiorów, choć oczywiście oceniamy przebiegi tylko na owej dodanej.

Ocenie powinny podlegać nie tylko same matematyczne mierniki wyplute w teście ale koniecznie przebieg krzywej kapitału oraz rozkład poszczególnych transakcji i dotyczy to przede wszystkim wersji podstawowej WFT (1 zbiór in-sample i 1 out-of-sample), prezentowane tu testy kilkupoziomowe same się obronią. Chodzi oczywiście o ustalenie czy wynik nie był czasem spowodowany jednym nadzwyczajnym wydarzeniem i gdzie jest umieszczone maksymalne obsunięcie. Najprawdopodobniej dyskwalifikujący strategię będzie wynik symulacji WFT, w której krzywa najpierw ostro rośnie by później stopniowo opadać. 

I wreszcie co i jak zmieniać jeśli system nie zda egzaminu z WFT. Najgorszym pomysłem, szczególnie w wersji podstawowej, byłoby zmienianie do upadłego jedynie samych wartości  parametrów tak by uzyskać w końcu pozytywną i gładką equity zarówno na danych służących optymalizacji jak i po symulacji WFT. Po wielu próbach uda się taki efekt zwykle uzyskać ale trzeba zdać sobie sprawę, że to nic innego jak kolejna wersja optymalizacji. Rezultat nie do uzyskania w realnym tradingu. Miejmy w pamięci, że podczas testu Walk Forward symulujemy rzeczywistość, którą wprawdzie znamy ale dopasowywanie się do niej jest oszukiwaniem samego siebie. To tak jakbyśmy chcieli cofnąć żywe transakcje, które zrobiliśmy na prawdziwym rachunku i próbowali dokonać ich jeszcze raz z nowym parametrem. Nieprawdą jest, że komputerowe systemy to tylko wynik mechanicznego mielenia procesora. Potrzeba do nich odrobinę wyrafinowania, świadomości, że rynek jest żywą tkanką i wielu doświadczeń. Mały przykład:

  • jeśli zakładamy ewolucję rynku to nawet parametry stabilnego systemu mogą naturalnie poruszać się w coraz szerszym lub węższym albo w ogóle przesuniętym zakresie
  • jednym z objawów ewolucji może być na przykład coraz szerszy stop podążający za ceną
  • jeśli w procesie optymalizacji wychodzi nam w miarę sensownie szeroki przedział wartości dla owego stopa, to do pierwszego testu WFT wziąłbym najpierw parametr bliski optymalnemu, w kolejnych wersjach ten, który sprawdzał się do tej pory (o ile nadal wypada w zakresie optymalizacyjnym) a dodatkowo kolejny, np. z obszaru powyżej, tak by sprawdzić czy nie czas by odpowiedzieć na ewolucyjne zmiany
  • jeśli oba parametry wypadają stabilnie – mamy 2 systemy :-), wprawdzie skorelowane ale nie przesądzone, że tylko jeden przeżyje.

Sama mechanika to jedno, ale niezbędny jest element ludzkiej wyobraźni, bo chodzi o porównywanie i wyciąganie prawidłowych wniosków zamiast brutalnego walenia w klawiaturę ciągu wartości poszczególnych parametrów dla uzyskania chwilowego (najczęściej) efektu. Nieostrożne obchodzenie się z klawiaturą sprawia, że nawet symulacja WFT przepuści zły produkt. 

Czasem zaleca się dodanie 3 zbioru do całej procedury weryfikacji strategii. To tzw. test-sample. I jest to już test przeprowadzany w realu ale jedynie w wersji papierowej. Stabilny system powinien wytrzymać i tę próbę czasu.

–*Kathay*–

[Głosów:0    Średnia:0/5]

8 Komentarzy

  1. tomfid

    Rzadko zdarza się, by twoje wpisy Kathay pozostawały bez komentarzy – chyba wszyscy śledzą Olimpiadę, gdzie nasi sportowcy wstrzelili się w końcu w hossę 😉
    Co do negatywnej weryfikacji gotowego systemu z wybranymi wartościami parametrów na danych out-of-sample: nie uważasz, że można już przy optymalizacji w fazie in-sample wychwycić 3,4, może nawet więcej wartości parametrów (wzajemnie od siebie odległych) i testować in-sample te 3 czy 4 systemy? Wybierając te, które w out-of-sample wypadły najlepiej, ew. zgodnie z jakimiś z góry ustalonymi kryteriami?
    Np mamy "Żółwia" i wybieramy przykładowo wejścia/wyjścia 20/10, 40/10, 60/10, 40/20, 60/20, 60/30 (przy założeniu, że wszystkie dają zbliżone – dobre – rezultaty) do weryfikacji na out-of-sample. To chyba nie będzie oszukiwanie samego siebie?

  2. kathay

    Nie będzie to oszustwo 🙂 Turtles również grali na dwóch wielkościach kanału.
    Mi się to również zdarza choć nigdy jeszcze więcej niż w 3 zakresach. Jednak męczę je wówczas do upadłego in-sample żeby wykluczyć najmniej stabilny. Jeśli pracują 2 zakresy po WFT – gram 2 systemami.

  3. kathay

    a komentarzy nie ma bo chyba za bardzo pokręciłem śmigłem 😉

  4. hg

    I wystarczy taka sesja jak dzis i systemy DT bezradne są.. I wystarczy spoznic sie z wykonaniem sygnalu i juz wszelkie backtesty mozna spakowac do kategorii – jak wyhodowac spekulatnów- dawcow kapitalu i generatorów PROWIZJI dla biura maklerskiego..

  5. gmyra

    KatHay – na początek trochę wazeliny – uważam Twoje wpisy za bardzo cenne, odwalasz kawał dobrej roboty. Pisałeś, że nie zajmujesz się akcjami, ale jako praktyk na pewno masz swoje zdanie na następujący temat. Testując różne systemy zastanawiam się na jak dużym przedziale czasu działać – chodzi mi konkretnie o to, czy uwzględniać początkowy okres funkcjonowania WGPW – lata 91-97 powiedzmy. Mam wątpliwości z dwóch powodów:
    – rynek był wtedy niedojrzały i raczkujący, a więc inny niż teraz
    – zdecydowana większość spółek notowana była w systemie z jednym fixingiem dziennie, czyli O=L=H=C, a to może mieć znaczący wpływ na skuteczność niektórych wskaźników
    Jakie jest Twoje zdanie?

  6. kathay

    Uznaje że wazeliny nie widziałem 🙂
    Odpuściłbym sobie te stare dane z jednym fiksem. To zupełnie inna jakość, tym bardziej że większość była nietransakcyjna (oferty kupna lub sprzedaży i brak obrotu)

  7. gmyra

    Dzięki za odpowiedź i pozdrawiam.

  8. JB

    Mam pytanie do autora wpisu.

    Co zrobić jeśli test na 10 latach danych pokazuje najskuteczniejsze wybicie z progu zmienności jako połowa dziennego ATR-a a test za okres ostatnie dwa lata jako 1.5 do 2 ATR, gdzie poprzednie wartości są poniżej średniej?

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Proszę podać wartość CAPTCHA: *