Podstawy programowania strategii w języku MQL4 (część 12)

Jak wykorzystać moduł testujący do sprawdzenia skuteczności robota inwestycyjnego?

Publikacja: 30.09.2016 06:00

Podstawy programowania strategii w języku MQL4 (część 12)

Foto: Archiwum

W dzisiejszym odcinku „Profesjonalnego inwestora" zaprezentujemy moduł testujący strategie inwestycyjne wbudowany w platformę Meta Trader. Dzięki niemu można sprawdzić, jak w przeszłości radziłby sobie zaprogramowany przez nas robot. Wkraczamy tym samym w ostatni etap naszego cyklu o podstawach języka MQL, czyli w testowanie. Jest to niezbędny proces przy ocenie efektywności i prawidłowości działania naszej 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 obok.

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 naszego cyklu artykułów o automatyzacji handlu i jednocześnie dobrym sposobem na zaprezentowanie w praktyce, jak działa tester strategii będzie przetestowanie robota, którego tworzyliśmy tutaj przez ostatnie kilka miesięcy. 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. Pozycje mogą być zamykane na kilka sposóbó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 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 Meta Trader 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 poziomu 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 obok, 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. 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.

[email protected]

Materiał Partnera
Zasadność ekonomiczna i techniczna inwestycji samorządów w OZE
Inwestycje
ESRS G1 Postępowanie w biznesie
Inwestycje
Złoto już powyżej 3300 dolarów za uncję
Inwestycje
Złoto może być nawet dwa razy droższe
Inwestycje
Krajowy popyt na obligacje nie odpuszcza
Inwestycje
Trump przegrywa we własną grę. Na rynkach ogromny chaos