Część 12: Ostatni etap tworzenia robota inwestycyjnego, czyli testy na danych historycznych. Jak posługiwać się testerem?

W tym materiale zaprezentujemy moduł testujący strategie inwestycyjne wbudowany w platformę MetaTrader.

Aktualizacja: 06.02.2017 14:31 Publikacja: 31.10.2016 14:10

Część 12: Ostatni etap tworzenia robota inwestycyjnego, czyli testy na danych historycznych. Jak posługiwać się testerem?

Foto: Archiwum

Dzięki niemu można sprawdzić, jak w przeszłości radziłby sobie zaprogramowany przez nas robot. Wkraczamy tym samym w ostatni etap jego tworzenia. Jest to niezbędny proces przy ocenie efektywności i prawidłowości działania strategii. Bez pomyślnego przejścia testów nie powinno się stosować robota na rzeczywistym rachunku.

Moduł testujący

Na wstępie przypomnijmy, że pomyślna kompilacja naszego kodu MQL w Meta Editorze nie daje gwarancji, że robot będzie działał prawidłowo. Kompilator sprawdza bowiem poprawność składni, a nie logikę działania robota. Dlatego tak istotne jest, by w module testującym sprawdzić, czy strategia działa zgodnie z naszymi założeniami. Jak przeprowadzić takie sprawdzenie?

Zacznijmy od początku. Moduł testujący w Meta Traderze można otworzyć na trzy sposoby: wybierając w górnym Menu „Widok", a następnie „Tester Strategii", skrótem klawiszowym Ctrl+R, albo poprzez naciśnięcie klawisza F6. Po skorzystaniu z jednej z metod w dole okna, pod wykresem, otworzy się okno o nazwie „Tester". Przykład zaprezentowany jest na obrazku powyżej.

Menu modułu testującego jest dość intuicyjne. Zaczynając od góry, mamy tam: możliwość wyboru strategii, którą chcemy testować; instrument, na którym test zostanie przeprowadzony; model testowania (do wyboru są trzy opcje „Każdy tick", „Kontrola punktów", „Tylko ceny otwarcia"); zakres czasowy testu oraz interwał, a także możliwość przeprowadzenia testu w trybie wizualnym. Po prawej stronie okna mamy bardziej szczegółowe ustawienia dotyczące m.in. wielkości depozytu i jego waluty, a także parametrów optymalizacji. Szczegółowy opis każdej dostępnej opcji zająłby nam kilka artykułów, dlatego odsyłamy czytelników do polskiej instrukcji dostępnej m.in. na stronie bossa.pl (link: http://bossa.pl/_gAllery/27/38/27380/Instrukcja_BOSSAFX.pdf). Fragmenty dotyczące modułu testującego znajdują się na stronach 24–28 oraz 62–75.

Wizualizacja i raport

Dobrym dopełnieniem serii artykułów dotyczących automatyzacji handlu i jednocześnie dobrym sposobem na zaprezentowanie w praktyce, jak działa tester strategii będzie przetestowanie robota, którego stworzyliśmy na łamach tego dodatku. Przypomnijmy więc na wstępie zasady jego działania. Nasz robot działa na parze walutowej EUR/USD w interwale 1H (1 godzina). Pozycja długa otwierana jest w momencie, gdy na wykresie pojawi się seria trzech wzrostowych świec z rzędu, a krótka, gdy pojawi się sekwencja przeciwna. Stop loss ustawiany jest zawsze w odległości 15 pipsów, a take profit w odległości 30 pipsów. Wielkość pozycji dobierana jest tak, by w pojedynczej transakcji ryzykować maksymalnie 0,1 proc. wolnych na koncie środków (modyfikacja pierwotnych założeń, które mówiły o 1 proc.). Pozycje mogą być zamykane na kilka sposobów. Po pierwsze – gdy osiągnięty zostanie pułap stop loss lub take profit. Po drugie, gdy po otwarciu pozycji długiej pojawi się świeca spadkowa, a po otwarciu krótkiej – wzrostowa. Po trzecie – opcjonalnie, przez mechanizm breakeven (przesunięcie stopa do punktu wejścia, gdy cena zmienia się na naszą korzyść o 15 pipsów) lub trailing stop (uruchamiany po korzystnej zmianie notowań o 25 pipsów i utrzymujący stopa w odległości 15 pipsów).

Naszego robota testowaliśmy na parze EUR/USD, w okresie 1.07.2016–28.09.2016 r. (łącznie 191 transakcji, a więc wystarczająca próba, by wyniki testu uznać za statystycznie istotne), a model testowania to „Każdy tick" (wyjaśnienie modeli w podlinkowanej instrukcji). Depozyt wstępny wynosił 10 000 USD.

W tym miejscu warto wspomnieć o ważnej sprawie – na potrzeby testu wybraliśmy tryb wizualny. Dzięki temu MetaTrader pokazuje nam symulację działania robota w wybranym przez nas zakresie czasowym. Możemy więc oglądać, jak zawierane były transakcje, a po zakończeniu testu wrócić do nich i sprawdzić, czy robot działa zgodnie z naszym planem. W tym celu warto porównać strzałki i symbole rysowane na wykresie z zestawieniem transakcji, znajdującym się w zakładce rezultaty (klikając dwa razy na daną transakcję wykres od razu ustawi się w miejscu, gdzie dana transakcja była zawierana). Porównując konkretne poziomy cenowe z grafikami na wykresie można zobaczyć, czy poziomy stop loss i take profit były prawidłowo ustawiane, czy zlecenia były przesuwane do poziomu breakevean i czy prawidłowo zamykane były pozycje po wystąpieniu świecy przeciwnej do zajmowanej pozycji. Na obrazku powyżej, na czarnym tle, widoczny jest fragment wykresu po przeprowadzonej symulacji.

O ile graficzne wyniki symulacji pozwolą nam ocenić to, czy robot działa zgodnie z naszymi wytycznymi, to do oceny jego efektywności finansowej potrzebujemy już szczegółowych danych liczbowych. Na początek warto przejść do zakładki „Wykres", znajdującej się na dole okna „Testera". Niebieską linią narysowana jest linia kapitału, której kształt oraz nachylenie powiedzą nam wstępnie, czy robot dobrze radzi sobie na danym rynku i czy warto w ogóle dalej „zawracać sobie nim głowę".

Szczegółowe dane finansowe dotyczące efektywności naszego robota znajdują się w zakładce „Raport". Robot zawarł w ciągu niecałych trzech miesięcy 191 transakcji i przyniósł stratę netto 3007,6 USD. Tylko 29,3 proc. wszystkich transakcji było zyskownych, co przy relacji średniego zysku do średniej straty rzędu: 1,4 nie daje dodatniej wartości oczekiwanej. Maksymalna strata względna, czyli obsunięcie kapitału, to tylko 3,05 proc., ale trzeba zwrócić uwagę, że krzywa kapitału ma wyraźnie spadkowe nachylenie, więc ten parametr prawdopodobnie powiększałby się, gdybyśmy wydłużyli okres testu.

Sprawdzenie robota w modelu testującym Meta Tradera pokazało, że przy nominalnych ustawieniach ma on marne szanse na pokonanie rynku. Możemy jednak zdradzić, że drobne modyfikacje przy poziomie stop lossa oraz rezygnacja z zamykania pozycji po wystąpieniu przeciwnej świecy pozwoliły zmniejszyć straty o połowę. Zachęcamy więc czytelników do pisania, testowania i modyfikowania swoich robotów inwestycyjnych. Uważamy, że jest to bardzo dobry sposób na naukę inwestowania, nawet jeśli ktoś nie chce w przyszłości całkowicie automatyzować swojego podejścia do rynku.

Inwestycje
Piotr Kaźmierkiewicz, BM Pekao: Na Wall Street może się jeszcze trochę złego wydarzyć. Za to na GPW...
Materiał Promocyjny
Tech trendy to zmiana rynku pracy
Inwestycje
100 tys. pkt to mało. 200 tys. pkt by się chciało. Tylko kiedy?
Inwestycje
Wiceprezes OPTI TFI: WIG sięgnie 200 tys. pkt. Prognoza dla GPW
Inwestycje
WIG zdobył 100 tys. pkt. Co dalej? Analityk: przestrzeń do wzrostów się zawęża
Materiał Promocyjny
Lenovo i Motorola dalej rosną na polskim rynku
Inwestycje
ESRS G1 Postępowanie w biznesie