Początkujący
Teraz czytasz
Jak poprawnie testować automaty
0

Jak poprawnie testować automaty

utworzył Paweł Mosionek21 sierpnia 2013

Handel za pomocą automatycznych strategii to ciężki kawałek chleba jednak czasem opłaca się podjąć to wyzwanie. Sam pomysł na automat lub znalezienie gotowego robota z potencjałem to dopiero początek pracy jaką należy wykonać. Kiedy uważamy, że na tym etapie wszystko jest gotowe, przychodzi czas na testy automatu w warunkach laboratoryjnych. W tym celu wykonuje się tzw. backtesty na danych historycznych. Jak to zrobić i jak do tego podejść? Do tego celu posłuży nam Tester Strategii na platformie MetaTrader 4.

Dane historyczne

Aby wykonać test na danych historycznych trzeba mieć bazę tych danych. Zazwyczaj na platformie mamy dostęp do pewnej ilości historii. Jej zakres może się różnić w zależności od instrumentu oraz interwału czasowego (zazwyczaj im mniejszy interwał, tym krótszy zakres). Problem w tym, że zazwyczaj nie jest tego zbyt dużo. Mamy więc dwa wyjścia:

  1. Pobrać dane z Centrum Historii MetaQuotes (zakładka Narzędzia w MT4),
  2. Poszukać innych źródeł danych w sieci.

Pierwsze wyjście wydaje się najłatwiejsze. Parę kliknięć i załatwione. Niestety trzeba być bardzo ostrożnym i to rozwiązanie posiada dwie istotne wady – dane bywają słabej jakości, czyli wyświetlają różne dziwne ceny, które niekoniecznie wystąpiły na rynku oraz sporadycznie posiadają luki w historii. Zdarza się, że brakuje w nich kilka dni czy nawet tygodni. Jeśli decydujemy się na to rozwiązanie warto prześledzić wykres na różnych interwałach i zobaczyć czy nie ma na nim tego typu defektów.

bt3

Drugie wyjście jest docelowo lepsze, szczególnie jeśli planujemy dłuższe testowanie wielu robotów jednak wymaga większego nakładu pracy. W tym celu należy poszukać danych dostępnych w internecie. Swego czasu wiele osób korzystało z danych tickowych Dukascopy, które wymagały konwersji do odpowiedniego formatu jednak na ten moment (sierpień 2013 r.) pojawił się problem z ich łatwym przerobieniem więc przestało to być takie proste. Istnieją inne strony, które oferują takie dane np. HistData.com. Dane historyczne do backtestów należy umieścić w odpowiednim katalogu, domyślnie jest to: Terminal\tester\history.

Jak wykonać backtest

Zazwyczaj każda strategia jest przygotowywana pod konkretny rynek i interwał (lub ich rodzaje np. główne pary walutowe, niskie interwały itp.). Wynika to z różnej charakterystyki instrumentów finansowych oraz perspektywy czasowej trzymania transakcji (scalping, day-trading, long term). Mało jest strategii uniwersalnych, które mogą być wykorzystywane na wielu zróżnicowanych rynkach i z reguły pierwotny zamysł precyzuje te wytyczne. Dzięki temu wiemy, że nie trzeba maglować wszystkich par walutowych po kolei na każdym interwale.

Konfiguracja rachunku i strategii

Najpierw dobieramy parametry wg naszego uznania i założenia (optymalizacji zostanie poświęcony osobny artykuł). W tym samym czasie należy ustalić wielkość kapitału i waluty rachunku na którym ma się odbyć test oraz tego czy strategia ma zawierać transakcje długie i krótkie czy też tylko jeden rodzaj (dla bardziej nietypowych automatów ta opcja będzie przydatna).

bt1

Konfiguracja środowiska

Kolejnym krokiem jest dobranie instrumentu na którym automat będzie testowany wraz z interwałem czasowym i przedziałem dat. Ważne jest, aby wybrać taki przedział do którego posiadamy dane. Im dłuższy okres, tym dłużej będzie przebiegał test. Z racji, że każdy rynek zmienia swoją charakterystykę lepiej jest przetestować automat w różny sposób, czyli wybierając długi okres czasu oraz krótsze po kolei.

bt2

Zazwyczaj w zakładce Model wybiera się najdokładniejszą metodę choć w celu przeprowadzenia szybkiego, poglądowego testu można zdecydować się na bardziej ogólną.

Po skonfigurowaniu powyższych parametrów można przejść do rozpoczęcia testowania (przycisk Start). Kiedy zielony pasek dojedzie do prawej strony oznacza to, że test został zakończony. Zawsze warto jeszcze ponowić test z użyciem Trybu wizualnego, dzięki czemu będziemy na żywo widzieli modelowanie kursu oraz momenty zawierania transakcji. To da nam dodatkowe potwierdzenie czy faktycznie założenia naszej strategii były realizowane poprawnie. Szybkość przebiegu całej akcji można regulować za pomocą suwaka.

Analiza wyników

Po wykonaniu backtestu, obserwacji zachowania automatu i stwierdzenia, że wszystko jest w porządku można przejść do analizy wyników jakie zostały wygenerowane w Raporcie.

  1. Najpierw należy sprawdzić czy od strony technicznej test przebiegł poprawnie i nie było w nim żadnych błędów. Pojedyncze błędy na wykresie są dopuszczalne i nie powinny mieć większego wpływu na wynik.
  2. Jakość modelowania – niska wartość świadczy o zastosowaniu danych wątpliwej jakości. Wartość od 90% w górę uznawana jest za właściwą i wiarygodną.
  3. Na końcu można zabrać się za to co najbardziej nas interesuje, czyli wyniki systemu. Całkowity zysk, strata, obsunięcie kapitału i inne parametry każdy już analizuje i ocenia na swój własny sposób. Warto jednak zwrócić szczególną uwagę na ilość zawartych transakcji. Trudno stwierdzić, że test systemu, który wygenerował zaledwie 5 transakcji w skali roku pokazuje potencjalne możliwości i zagrożenia wynikające z jego działania. Im więcej transakcji, tym bardziej wiarygodny wynik.

Można jeszcze ocenie poddać krzywą kapitału, która pokaże nam jak zmieniał się bilans rachunku (zamkniętych transakcji) w testowanym okresie. Gwałtowne spadki i niepokojąco wyglądające załamania powinny zwiększyć naszą czujność i należałoby dokładniej sprawdzić te transakcje.

bt4

O ewentualnym błędnym działaniu automatu będziemy poinformowani w zakładce Dziennik, gdzie widnieją wszystkie akcje, które były podejmowane przez EA. Wszystkie nieprawidłowości są zaznaczane odpowiednikiem znaku drogowego “zakaz wjazdu“.

bt5

Co o tym sądzisz?
Lubię
67%
Interesujące
0%
Heh...
0%
Co?
0%
Nie lubię
0%
Tragedia
33%
O Autorze
Avatar
Paweł Mosionek
Aktywny trader na rynku Forex od 2006 roku. Redaktor portalu Forex Nawigator oraz redaktor naczelny i współtwórca serwisu ForexClub.pl. Prelegent konferencji "Focus on Forex" na SGH w Warszawie, "NetVision" na Politechnice Gdańskiej oraz "Inteligencja finansowa" na Uniwersytecie Gdańskim. Dwukrotny zwycięzca "Junior Trader" - gry inwestycyjnej dla studentów organizowanego przez DM XTB. Uzależniony od podróży, motocykli i skoków spadochronowych.