Test wszystkich testów część 2

Obok podstawowej wersji Walk Forward Test (patrz poprzedni wpis), gdzie całość danych dzieli się po prostu na 2 zbiory i na jednym z nich przygotowuje a na drugim sprawdza strategię, istnieją bardziej złożone metody, które pozwalają dzielić dane in-sample i out-of-sample na wiele sposobów i robić testy dużo szczegółowsze. Tu jedynie logika a nie wyobraźnia stawia granice.

Ku mojej radości Amibroker ma wbudowane opcje automatycznego testu złożonych procedur WFT, co znacznie ułatwia cały proces i oszczędza czas. Poniżej prezentowane schematy pochodzą właśnie z bazy wiedzy do Amibrokera (amibroker.org) i obrazują modyfikacje WFT.

Modyfikacja dotyczy innego podziału zasobu danych cenowych ale idea pozostaje bez zmian- weryfikacja tego na ile system dopasował się do kursów historycznych w procesie optymalizacji i jak, teoretycznie, poradzi sobie w realnym środowisku.

W swoich wpisach używam zamiennie nazw ?system‘ oraz ?strategia‘ ale winien jestem pewne wyjaśnienie i okazja właśnie się do tego nadarza. W moim rozumieniu nie do końca oznaczają one to samo i owa różnica może mieć dla niektórych istotne znaczenie. Otóż ?system’ (z przymiotnikami mechaniczny, komputerowy, transakcyjny) to miano nadawane metodzie inwestycyjnej stworzonej przy użyciu kodów/algorytmów, najczęściej w programie specjalnie do tego przeznaczonym, co w rezultacie pozwala na automatyczne generowanie wskazań zajęcia i zamknięcia pozycji bez konieczności ingerencji człowieka. Natomiast bardziej wrażliwym i niechętnym komputerowym metodom proponuję cokolwiek oględniejszą i elegantszą nazwę: ?strategia’. Jej rozumienie jest nieco szersze ponieważ obejmuje wspomniane systemy oraz również wszystkie inne metody stworzone bez użycia algorytmów, czy w ogóle bez udziału komputera, a które wymagają ingerencji homo sapiens. Mam na myśli tzw. discretionary trading a więc mówiąc po polsku – intuicyjny czy dyskrecjonalny.

Przy czym podział na strategia/system jest dość płynny. A to dlatego, że choć nie zawsze i nie wszystko, to część z owych metod teoretycznie wymagających udziału człowieka da się w całości zakodować i przetestować, co oznacza ich zobiektywizowanie. I nie chodzi już o same metody z zakresu analizy technicznej bo w tej chwili koduje się już na przykład formacje na wykresach czy fale Elliota a więc sposoby wydawałoby się bardzo trudne do przerobienia na zera i jedynki. Świat poszedł dużo dalej i w tej chwili na kody przerabia się nie tylko analizę fundamentalną czy astrologię ale powstają już programy bardzo mocno zaawansowane jak ten, który sam czyta newsy okołogiełdowe i podejmuje na ich podstawie decyzje transakcyjne. Tak więc to co jeden uznaje za metodę dyskrecjonalną czyli ?nie-systemową”, w rzeczywistości często można zakodować i przetestować. Ów czynnik subiektywny czyli intuicja powoduje właśnie, że daną metodę nazywamy ?strategią’ inwestycyjną a eliminacja tego czynnika oznacza że strategię można nazwać bardziej precyzyjnie czyli ?systemem’. Trochę to może wygląda skomplikowane ale piszę o tym nie bez powodu. Otóż zapisanie strategii językiem komputerowym, czyli jej zobiektywizowanie, pomaga odkryć nie tylko jej wady i zalety ale w ogóle wartość użytkową (działa/nie działa). W ten właśnie sposób książkę Johna Murphy’ego ?Analiza techniczna rynków finansowych” da się w rezultacie odchudzić o kilkadziesiąt stron, pozbywając się wszystkiego tego co wartości nie ma wcale albo ma ale tylko w określonych warunkach. Często złudzenia inwestora polegają na tym, że wydaje mu się iż daną technikę doprowadzi do zyskowności właśnie dzięki użyciu własnej intuicji. Niestety intuicja to narzędzie o dwóch ostrzach i wiem, że to raniące jest doskonale znane wszystkim, którzy na giełdzie samodzielnie próbowali zarabiać.   

Wróćmy jednak do mutacji WFT. Amibroker proponuje 2 procesy, przedstawione dla ułatwienia na diagramach poniżej.

1/ Rolling test

Test kroczący. I w tej i w kolejnej modyfikacji używa się krótszych zbiorów (okienek) danych niż w metodzie podstawowej, tak by uzyskać kilka chronologicznych, postępujących w czasie weryfikacji. Tutaj okna danych in-sample (żółte strzałki na wykresie poniżej) mają jednakowe rozmiary przy każdym teście ale przesuwają się w czasie o zadany krok (tutaj o rok). Krok i moment startowy oraz końcowy można w Amibrokerze ustawiać dowolnie. I tak po kolei dochodzi do 4 kolejnych testów: najpierw system buduje się (optymalizuje) na danych z lat 1998-2001 i testuje jego wiarygodność na danych out-of-sample z kolejnego roku czyli 2002 (to ta zielona strzałka). W kolejnych testach oba okresy budowy i weryfikacji przesuwają się o rok aż do osiągnięcia teraźniejszości:

rolling.png 

2/ Anchored test

To po polsku test z zakotwiczeniem. W każdym kolejnym kroku dane służące do budowy (in-sample, żółta strzałka) zaczynają się w tym samym miejscu czyli od samego początku (kotwica) ale w kolejnym teście wydłużają o rok. Dane weryfikacyjne (zielona strzałka) mają długość roku ale przesuwają się w czasie coraz dalej. I tu krok, moment startowy i końcowy można swobodnie ustawiać:

anchored1.png 

W opcji zaawansowanej można zmieniać wszystkie ustawienia wielkości i położenia obu okresów. Można robić to w trybie intraday, generować raporty wg wybranej miary, wyświetlać wykresy equity z podziałem na poszczególne kroki i zapisywać do plików. Przyznam, że WFT brakowało mi w takiej automatycznej wersji we wszystkich programach, które wcześniej używałem. 

Obie opisane metody mają swoje wady i zalety ale system przepuszczony przez takie procedurę bez istotnego pogorszenia wyników ma naprawdę szansę  przez jakiś czas dobrze nam służyć. O owych wadach i zaletach w kolejnym wpisie.

–*Kathay*–

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

5 Komentarzy

  1. DAPI

    "…W ten właśnie sposób książkę Johna Murphy?ego ?Analiza techniczna rynków finansowych? da się w rezultacie odchudzić o kilkadziesiąt stron, pozbywając się wszystkiego tego co wartości nie ma wcale albo ma ale tylko w określonych warunkach…"

    i nie tylko Murphy?ego niestety/stety 🙁

  2. GiełduGiełdu

    Drobna uwaga w nawiązaniu do możliwości AmiBrokera i innych softów do BackTestingu. żaden z tych softów nie posiada narzędzi do "Trading equity curve", czyli badania podejmowania decyzji na podstawie wyników uzyskiwanych przez system (oczywiście można ją zaimplementować w językach programowania, ale jest to dosyć uciążliwe)

    Ja rozwiązuję ten problem w nieco inny sposób:
    1) Z poziomu oprogramowania tworzę plik tekstowy ze spisem transakcji (lub korzystam z zetawienia generowanego przez system)
    2) Kopiuję zestawienie transakcji do Excela
    3) Dodaję kolumny liczące np. średnią ruchomą
    4) Jeżeli spełnione są określone warunki (np. wynik poprzednich transakcji nad średnią ruchomą), uwzględniam transakację w końcowym wyniku, a jeżeli nie to ją odrzucam.

    Zastosowanie Excela, chociaż wcale nie odkrywcze:-(, pozwala na sprawdzenie jak krzywa kapitału przydaje się w czasie podejmowania decyzji przy tradingu.

    Swoją drogą, prosiłby się o taką funkcję np. w AmiBrokerze.

    Pozdrowienia,
    GiełduGiełdu

  3. HDK

    @GiełduGiełdu – w ami przecież equity jest zapisana jako osobny symbol. Najprościej zrób test w ami, następnie w group 253 masz symbol ~~~Equity. Możesz zmienić jego nazwę przez Symbol/information na dowolną inną następnie można odpalić na nim nowy system. Jedyne utrudnienie to brak możliwości grania na świeczkach equity, bo wartości inne niż close są wykorzystane do zapisu innych informacji. Mam nadzieję, że się nie mylę co do prawidłowego działania tej metody 😉

  4. AB Tech Support

    @GiełduGiełdu

    AmiBroker pozwala na taką modyfikację działania systemu (tzn. w oparciu o dowolne miary liczone na poziomie całego portfela) choć faktycznie potrzebny będzie dodatkowy kod AFL. Służy do tego "Custom Backtest Procedure" czyli własna, inna niż domyślna, procedura sterująca działaniem testera historycznego w drugiej, portfelowej części testu – i możliwe są tu dowolne modyfikacje sygnałów / transakcji / wielkości pozycji (np. w oparciu o wartości Equity, czy inne liczone na poziomie portfela miary). Szczegółowe informacje i przykłady dostępne są w instrukcji i bazie wiedzy.

    Pozdrowienia
    Marcin Górzyński
    amibroker.com

  5. GiełduGiełdu

    @HDK, AB_Tech_Support,

    Dzięki, poeksperymentuję.

    Pozdrowienia,
    GiełduGiełdu

Dodaj komentarz

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

Proszę podać wartość CAPTCHA: *