Tester МТ4 to klasyczny symulator dla wskaźników oraz automatycznych systemów handlowych na rynku walutowym Forex i nie tylko. Mogą tu zostać zintegrowane i inne testery – dodatki, uzupełniające funkcjonowanie. Statystyka testowania ląduje w dziennikach tradera i redaktorach w celu późniejszej analizy. Z tego przeglądu dowiecie się, jak testować wskaźniki i doradców na okresach historycznych, jakie są zalety i wady testera strategii MT4, w jaki sposób analizować backtest oraz jakie są problemy optymalizacji i testowania doradców.

Przegląd testera МТ4: testowanie, optymalizacja wskaźników i systemów handlowych

Analiza efektywności systemów handlowych, ręcznych strategii, wskaźników to konieczny warunek, który powinien zostać spełniony przed ich uruchomieniem na rzeczywistym koncie z prawdziwymi pieniędzmi (w tym i na koncie demo). Testery strategii Forex mogą być oddzielnymi programami lub aplikacją do konkretnych platform. Można je również podzielić na te, które przeznaczone są wyłącznie do ręcznych strategii (Forex Simulator, FX Blue Trading Simulator) lub łączone, z możliwością testowania doradców.

Artykuł obejmuje następujące tematy:


Starałem się napisać przegląd jak tylko można najpełniej, prostym językiem. Jeśli zauważycie w nim jakieś nieścisłości, śmiało piszcie o tym w komentarzach.

Tester МТ4 – uniwersalny symulator dla doradców i wskaźników

Wg metody testowania testery dzielą się na dwa typy:

  1. Testery cykliczne. Przeglądają one kolejno jedną świecę po drugiej. Otrzymując nowe znaczenie ostatniej świecy, zgodnie z formułą przeprowadzają obliczenia, biorąc pod uwagę dane poprzednich świec. Przy zbiegu okoliczności, wskazanych w kodzie/parametrach, otwierają i zamykają stopy. W efekcie testowania powstaje statystyka transakcji. wada testerów: w rezultatach nie uwzględnia się rzeczywistego spreadu, poślizgi cenowe, z powodu czego efekt testowania bywa daleki od tego, co będzie na rzeczywistym koncie.
  2. Testery zdarzeniowo-łączone. Maksymalnie zbliżone do wydarzeń realnych. Architektura testera „wyostrzona” jest na to, aby wraz z nastąpieniem konkretnego wydarzenia generować nowe przypadkowe, sytuacyjne zdarzenia, mające wpływ na rezultat. Wada takich testerów to skomplikowany kod i w skutek tego duże prawdopodobieństwo błędów. Aby opracować system handlowy pod taki tester, potrzebny jest kod.

Tester МТ4 odnosi się do pierwszej grupy.

Metatrader 4 stale jest dopracowywany, a razem z nim udoskonalana jest funkcjonalność testowania. Na przykład w starych wersjach (dostępnych kilka lat temu) nie przewidziano testowania poszczególnych wskaźników. Traderzy studiowali abc programowania, brali „pustego” doradcę (szablon z założonymi parametrami risk management, obluźnieniami lota i t. d.) i dodawali do niego kod wskaźnika, nieco go adaptując. Teraz tester MT4 to wielofunkcjonalny program do bazowego testowania, który pozwala „puścić” wskaźniki oraz doradców na każdym interwale czasowym z późniejszym wyładowaniem statementu do redaktorów.

1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

Funkcja testowania wskaźników w testerze MT4 oznacza, że teraz trader może obserwować działanie wskaźnika na okresie historycznym w „czasie rzeczywistym”. To znaczy, wystawiając na wykresie początek okresu i uruchamiając testowanie z wizualizacją obserwować, jak odrysowują się linie wskaźnika.

Pozwala to:

  • Abstrahować od prawej części wykresu. W trybie wizualizacji prawa częś wykresu nie została jeszcze narysowana, trader nie wie, jak zachowa się cena i podejmuje decyzję, kierując się informacją, którą ma na daną chwilę, „nie zaglądając w przyszłość”.
  • Zobaczyć, czy jest przerysowanie wskaźnika.

Właściwości działania МТ4 na okresie historycznym:

  • Testowanie możliwe jest tylko na jednym instrumencie, nie ma testowania portfelowego.
  • Wymiarowość i podzielność lotów, swapów, prowizji bierze się z ustawień bieżącego konta.
  • Modelowanie odbywa się maksymalnie w bliskich do rynkowych warunkach, ale na kursach krosowych możliwe są znaczne rozbieżności z powodu braku dokładnych kursów w chwili konwersji na każdym przedziale czasu.
  • Tryb otwarcia transakcji na okresie testowym – Instant Execution.
  • Na niestandardowych interwałach czasowych testowania się nie przeprowadza, nawet jeśli dodamy je przy pomocy skryptu.

Dowolne testowanie niezależnie od tego, czy mowa jest o testerze MT4, czy innym symulatorze, zaczyna się od załadowania notowań. W MT4 robi się to w następujący sposób:

  • Wchodzimy w „Serwis/Archiwum notowań”.
  • Zaznaczamy potrzebną parę walutową, wybieramy wykresy M1 (na nich będzie najdokładniejsza historia).
  • Instalujemy notowania.

LiteForex: 1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

Instalacja odbywa się z serwera MetaQuotes. Notowania autora MT4 mogą różnić się od notowań brokera, przed czym i uprzedza LiteForex. Z powodu różnicy w notowaniach pojawiają się rozbieżności w statystyce testowania i charakter notowań to pierwsze, na co należy zwrócić uwagę przed testowaniem.

Uruchamiamy sam tester: w panelu narzędzi jest odpowiedni znaczek. Lub wchodzimy w menu „Rodzaj/Tester strategii”. Otwieramy w wykresie parę walutową, której były zainstalowane notowania, nanosimy wskaźnik. W testerze, który otwiera się w dolnej połowie platformy, wybieramy w okienku „Wskaźnik” i znajdujemy ten, który zamierzamy testować. W danym przypadku Alligator.

LiteForex: 1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

Z prawej strony platformy znajduje się menu zarządzania ustawieniami wskaźnika (zakreślono zielonym prostokątem).

1. Właściwości wskaźnika. Można tu zmienić ustawienia wskaźnika, które zostaną uruchomione w celu testowania. Zaznaczę, że mowa jest właśnie o wskaźniku do testowania.

LiteForex: 1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

Jest to okno ustawień Alligatora przed testowaniem.

LiteForex: 1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

Jest to okno ustawień Alligatora na standardowym roboczym wykresie. Jak widzicie, są różne. Czy jest to wada, proponuję przedyskutować w komentarzach.

2. Właściwości symbolu. Informacyjne okno, nic tu zmienić nie można. Tu wskazuje się depozyt startowy, poziomy stopów, spread i t. d.

3. Otwórz wykres. Dana funkcja nie działa. Nic się nie dzieje, gdy w nią klikamy i jest to ewidentne niedopracowanie МТ4. O tym problemie na forach pisano już wcześniej, ale nic się nie zmieniło.

4. Zmień wskaźnik. Tu znajduje się pole do popisu dla tych, którzy posiadają kod i chcą wprowadzić zmiany do samej istoty testowanego wskaźnika przy pomocy MetaEditor.

Teraz przejrzę podstawowe menu testera.

LiteForex: 1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

W wierszu „Symbol” wybieramy instrument, na którym odbywa się testowanie. W danym przypadku jest to para walutowa USD/JPY, wg której kończyły się notowania. W wykresie „Wykorzystaj datę” wskazujemy przedział czasu, na którym zostanie uruchomiony tester. Okienko „Optymalizacja” jest aktywne tylko dla doradców. W wykresie „Wizualizacja” jest pasek przesuwania, którym można regulować prędkość poruszania się wykresu (linie testera). Linia ma baga: podczas przesuwania prędkości z 31 do maksymalnej 32 linia wykresu gwałtownie rośnie kilka razy.

W prawej części okna można ustawić interwał czasowy, wystawić bieżący lub zanotowany spread. Zrobiono to dla wygody. Na przykład nocą spread jest zazwyczaj zawyżony, jeśli strategia zakłada wykorzystanie wskaźnika nocą, to jest sens ustawić bieżący spread.

  • Rada. Jeden z wariantów testu warunków skrajnych przewiduje zainstalowanie jawnie gorszych parametrów, niż warunki realnego rynku. Odporność systemu handlowego na force majeure to warunek sukcesu w zwykłych warunkach, dlatego test warunków skrajnych przewiduje analizę zdolności do pracy systemu handlowego (szczególnie aktualne jest to dla doradców) przy różnych kosztach (spreadzie, swapie i t. d.). MT4 nie pozwala na wystawianie jakiego się chce spreadu i tu z pomocą przychodzi skrypt Spread Changer. Jeśli nie znajdziecie uaktualnionej (bezpłatnej) wersji w Internecie, napiszcie w komentarzu adres poczty elektronicznej, wyślę od razu skrypt.

I teraz najciekawsze okienko, „Model” testowania. Tu proponuje się kilku trybów:

  • Wszystkie ticki. Najdokładniejsza i najdłuższa metoda. Generacja ticków wewnątrz świecy. Świece są tworzone zgodnie z najmniejszym interwałem czasowym M1. Istota metody: bar tworzy się wg schematu OHLCV (Open – High – Low – Close, Volume). Wewnątrz samego bara cena może wahać się w tę, czy inną stronę kilka razy, co wpływa na dokładność obliczeń i obciąża tester.

LiteForex: 1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

Schematycznie można to pokazać tak:

Cyframi oznaczono punkty wsparcia (w szczegóły obliczeń wdawać się nie ma potrzeby). Sprawdzenie „Wszystkich ticków” zmusza do użycia testera w przypadku każdej zmiany ceny wewnątrz bara. Jest to najdokładniejsza metoda testowania, zajmująca dużo czasu.

  • Punkty kontrolne. Najszybsza metoda, zgodnie z którą tester bierze dane z najbliższego najmniejszego interwału czasowego, dzięki czemu testowanie staje się szybsze, ale mniej dokładne. Na przykład dla interwału czasowego M5 bierze się dane interwału M1. Wykorzystuje się w celu stworzenia ogólnego wyobrażenia o działaniu wskaźnika, nic poza tym.
  • Po cenach otwarcia. Najszybsza metoda. Doradca analizuje rynek i otwiera transakcje na początku tworzenia nowej świecy (cena otwarcia). Pierwszy krok to utworzenie bara (Open = High = Low = Close, Volume = 1), kolejny krok to wydanie całkowicie utworzonego bara. Na wykresie bary idą jeden za drugim bez wewnętrznych wahań, w formule wskaźnika uwzględnia się tylko jedna cena, cena otwarcia bara. Trailing wewnątrz bara nie porusza się. Jeśli take profit i stop loss znajdą się wewnątrz świecy, to tester najpierw uruchomi stop, choć mogłoby być odwrotnie. Dlatego wg tego modelu testuje się doradców, gdzie nie przewiduje się stop lossów i take profit.

Aby zbytnio nie zagłębiać się w szczegóły metod budowania wykresów, rekomenduję trzymać się następującej zasady: uruchomcie testowanie przy jednakowych parametrach we wszystkich trzech metodach. Jeśli wykres i statystyka są prawie takie same, doradca został zoptymalizowany. Jeśli różnica jest znaczna, to proste sprawdzenie należy przeprowadzać wg szybkiej metody i optymalizować strategię wszystkich ticków. Ta sama zasada dotyczy również testowania doradców.

Wszystko ustawione, można zaczynać testowanie strategii, klikając „Start”. Pragnę zauważyć, że każde kliknięcie otwiera nowy wykres i testowanie zaczyna się na nowo. Aby spauzować tester w celu otwarcia transakcji, trzeba nacisnąć klawisz obok paska linii prędkości. Wrócić i otworzyć transakcję „z datą wsteczną” nie wolno. Przycisk „Stop” całkowicie zatrzymuje testowanie i uruchomienie będzie możliwe tylko od początku.

Jeśli z jakiegoś powodu uruchomienie testowania nie powiodło się (problem z notowaniami i t. d.), zrestartujcie MT4.

Zalety testera МТ4:

  • Uniwersalność. Tester pozwala na testowanie dowolnych oddzielnie wybranych wskaźników i pełnowartościowych systemów handlowych (strategie ręczne i doradcy handlowi). Każdy unikalny wskaźnik, którego kod jest zgodny z MT4 może być nałożony na wykres i przetestowany.
  • Program pozwala na kompatybilne korzystanie z innymi symulatorami. Tester МТ4 można uruchamiać zarówno oddzielnie, jak i w połączeniu z innymi analogicznymi programami. Na przykład po zainstalowaniu FX Blue Trading Simulator ustawienia nawigacyjne pojawiają się w oknie testeraMT4. Innymi słowy FX Blue integruje się w bazowy symulator platformy.

Wady testera МТ4:

  • Nie wszystkie funkcje w testowaniu wskaźników działają prawidłowo. Są problemy z przenoszeniem wskaźników (je dodajemy) w czasie przerwy, wskaźniki nie otrzymują odnowionej informacji z innych interwałów czasowych, z powodu czego wypacza się rezultat.
  • W procesie testowania nie ma możliwości zmiany okresów.
  • Nie można otwierać transakcji. Można dodawać w czasie pauzy inne wskaźniki, zmieniać odbicie „świecy/bara”, usuwać siatkę, zmieniać kolory, ale nie otwierać zlecenia. Zatem nie można ocenić dochodowości Waszej strategii i innej statystyki.

Ostatnia wada przesłania wszystkie zalety testowania wskaźników. Trader może jedynie śledzić, jak rysuje się grafik i działa wskaźnik, ale nie może wystawiać zleceń.

Są trzy wyjścia:

  1. Instalowanie dodatkowego testera ręcznych strategii, uzupełniającego funkcjonalność testera МТ4.
  2. Opracowanie na podstawie wskaźnika doradcy, dodając do kodu wskaźnika warunku otwierania/zamykania transakcji.
  3. Wizualnie ocenić efektywność wskaźnika. W chwili, kiedy wydaje się pomyślny, testowanie się pauzuje, w potencjalnym punkcie wejścia ustawia się strzałkę lub jakiś inny symbol (Wstawianie/Znaczki). Trader może tylko wizualnie ocenić słuszność decyzji, gdyż nie ma otwarcia transakcji, a to oznacza, że nie ma i statystyki.

LiteForex: 1. Testowanie wskaźników i ręcznych strategii w testerze Metatrader 4

Ważne! Z testowaniem wbudowanych wskaźników nie ma problemów, z dodanymi – czasami ta. Funkcja testowania wskaźników dodana została do MT4 kilka lat temu. Jeśli wskaźnik został napisany do tego czasu, jak ta funkcja została dodana, to może on nie uruchamiać się w testerze.

2. Testowanie automatycznych systemów handlowych w testerze Metatrader 4

Istota testowania doradcy jest praktycznie analogiczna. MT4 ma wbudowany redaktor MetaEditor, gdzie można napisać kod robota, który będzie dokładnie zsynchronizowany z platformą. Testowanie tu również zaczyna się od załadowania notowań.

To mogą być:

  • Notowania MetaQuotes: jak je wrzucić, opisane zostało w poprzednim dziale. Często słyszy się negatywne opinie dotyczące ich jakości, ale dla trenowania będą dobre.
  • Notowania brokera, które powinny by na platformie, ściągniętej bezpośrednio z jego strony.

Wchodzimy w „Serwis/Ustawienia”, otwieramy menu „Wykresy” i z okna „Maks. Barów historii” kopiujemy cyfrę do okna „Maks. Barów w oknie” (domyślnie jest 65 000).

Otwieramy tester i w jego oknie w miejscu, gdzie wcześniej ukazano „Wskaźnik”, wstawiamy „Doradca”. Wszystkie pozostałe ustawienia są analogiczne do testowania wskaźnika, oprócz „Ustawienia eksperta”.

LiteForex: 2. Testowanie automatycznych systemów handlowych w testerze Metatrader 4

W menu „Ustawienia eksperta” dostępne są trzy zakładki:

  1. Testowanie. Tu wyznacza się depozyt początkowy, jest możliwość wyboru kierunku transakcji (na przykład otwarcie tylko długich lub tylko krótkich pozycji).
  2. Parametry wejściowe. Tu można wystawić zakres lota, maksymalne ryzyko na transakcję, parametry doradcy. Kolumny „Start”, „Krok” i „Stop” potrzebne są dla optymalizacji doradcy. Znaków wyboru w oknie zmiennych nie stawia się.
  3. Optymalizacja. Ta zakładka potrzebna jest już po tym, jak doradca zostanie przetestowany i przyda się jego optymalizacja. Jej poświęcę więcej uwagi niżej w oddzielnej części.

W „Parametrach wejściowych” jest przycisk „Załadować”, potrzebny jest on do uproszczenia zadania instalacji parametrów. Kiedy testowany jest tylko jeden doradca na jednej parze i ma on 4 – 5 podstawowych ustawień, można je ustawić ręcznie. Ale kiedy mowa jest o pracy z 10-oma i więcej ustawieniami (tym bardziej o wielowalutowych doradcach) oraz o testowaniu na dziesięciu aktywach, można z łatwością się pogubić. Dlatego z robotami zazwyczaj idą pliki z rozszerzeniem .set, w których już zainstalowane zostały ustawienia dla każdej pary walutowej. Te ustawienia trzeba tylko wgrać.

Opcja „Optymalizacja” w chwili pierwszego uruchomienia testera doradcy jest odłączona.

Naciskamy „Start” i obserwujemy wykres. Uściślę: jeśli podczas testowania wskaźnika zlecenia na okresie historycznym nie otwierają się, to tu zlecenia wystawia sam doradca. Wizualną kontrolę, powołując się na statystykę, profesjonalne testery pomijają. Jeśli interesuje Was zasada działania doradcy, radziłbym obserwować wykres wizualnie, jest to stosunkowo krótko. Ale można pominąć wizualizację: w rubryce „Opuścić do” obok paska prędkości przesuwania wykresu ustawiamy potrzebną datę. Do niej testowanie odbędzie się bez wizualizacji (bez wykresu), ale w sprawozdaniu transakcji zostaną włączone.

3. Analiza statystyki i problemu oceny backtestu

Na samym dole okna platformy (i testera też) jest menu przeglądu statystyki, które oznaczyłem na skrinie poniżej czerwonym prostokątem. Chciałbym również zwrócić uwagę na to, że na tym zrzucie teraz widać testowanie doradcy, działającego na podstawie średnich kroczących. Na wykresie widać otwarcie zleceń, ich zamknięcie, notowania i przyczynę zamknięcia. pole, które znajduje się nad testerem, gdzie odzwierciedla się suma bilansu, to pole bieżących transakcji, które trader może równolegle z testowaniem wprowadzać w sąsiedniej zakładce. Znaczenie Bilansu nad testerem do testowania nie ma nic wspólnego.

LiteForex: 3. Analiza statystyki i problemu oceny backtestu

Radzę rozpoczynać analizę od zakładki „Wykres”. Jeśli krzywa equity (krzywa depozytu) tu jest wyraźnie opadająca, z gwałtownymi i głębokimi obsunięciami, wracamy do ustawień doradcy i nanosimy korekty do parametrów. Jeśli doradca nie przeprowadził ani jednej transakcji, gdzieś jest błąd. Kodu błędu szukamy w dzienniku statystyki, rozszyfrowanie znajduje się na stronie mql4.com w dziale „Dokumentacja” (Poradnik).

W zakładce „Rezultaty” znajduje się lista wszystkich transakcji z ukazaniem daty, kierunku, ceny otwarcia/zamknięcia (w tym wg stopu lub take profit), zysku i końcowego bilansu pośredniego.

LiteForex: 3. Analiza statystyki i problemu oceny backtestu

Zakładkę „Sprawozdanie” rozpatrzę szczegółowo.

LiteForex: 3. Analiza statystyki i problemu oceny backtestu

1.Liczba barów w historii. Jest to liczba barów (świec), na których odbywało się testowanie.

2. Wykonano model ticków. Pokazuje wielkość wymodelowanej konsekwencji. Każdy zapis konsekwencji jest stanem bara w zanotowanej chwili. Mowa jest o tym, że bar to zakończony stan konsekwencji rozmieszczenia ceny OHLCV (Open – High – Low – Close, Volume). Ilość stanów bara może różnić się w zależności od interwału czasowego, jakości notowań. Teoretycznie im więcej jest ticków, tym dokładniejsze jest testowanie i tym dłużej ono się odbywa. W praktyce są sytuacje kiedy szczegółowy przegląd to strata czasu, gdyż rezultaty nie będą różnić się od szybszego testowania.

3. Jakość modelowania. W МТ4 znaczenie tego parametru nie podnosi się powyżej 90%, tzn. 90% to najlepszy efekt. Jeśli znaczenie jest mniejsze, trzeba szukać przyczyny w jakości notowań, niepożądane jest uruchamianie doradcy na koncie rzeczywistym.

LiteForex: 3. Analiza statystyki i problemu oceny backtestu

 

  • HistoryTotal – liczba barów całego okresu historycznego testowania.
  • StartBar – numer bara, od którego rozpoczęto testowanie.
  • StartGen – numer bara, od którego zaczęło się modelowanie na podstawie danych historii najbliższego interwału czasowego (niższego).
  • StartGenM1 – numer bara, od którego rozpoczęto modelowanie na podstawie minutowego interwału czasowego.
  • 0,25, 0,5 i 0,9 – współczynniki wagowe.

Jeśli w metodach modelowania wybrany został sposób „wg cen otwarcia” (najszybszy sposób), to znaczenie parametru będzie n/a z poziomem, że modelowanie nie zostało wykonane.

Na forach można spotkać opinię, że dokładność 90% to oczywiste fiasko handlu na rynku realnym. W celu zwiększenia dokładności do 97-99% można wykorzystać bezpłatny program Tickstory Lite, przegląd którego to temat dla oddzielnego artykułu. Jeśli będzie ciekawe, jak przy jego pomocy podnieść jakość modelowania, piszcie w komentarzach.

4. Błędy niedopasowania. Błędy, pojawiające się podczas modelowania ticków na różnych interwałach czasowych. Najczęstsza przyczyna ich pojawiania się to różnica między notowaniami z archiwum a notowaniami, danymi bezpośrednio przez brokera.

Rozszyfrowanie kolorów paska błędów niedopasowania i jakości modelowania:

  • Jasnozielony. Modelowanie na minutowym interwale.
  • Ciemne odcienie zielonego. Modelowanie na starszych interwałach (оd М5 dо Н4).
  • Odcień różowy. Czyste fraktalne modelowanie bez danych mniejszego interwału.
  • Odcień szary. Modelowanie nie było przeprowadzane.

Im bardziej jaskrawy zielony kolor, tym bardziej dostępne są notowania młodszych interwałów czasowych (co i jest potrzebne dla dokładnego testowania). Jeśli jakiś odcinek paska wskaźnikowego ma szary kolor (notowań brak), całkowicie przeładowujemy historię notowań:

  • Klikamy w podstawowym menu „Plik/Otworzyć katalog danych”.
  • Wchodzimy w folder History, gdzie znajdujemy folder z nazwą swojego serwera handlowego.
  • W folderze usuwamy wszystkie pliki testowanej pary walutowej. Wgrywamy notowania jeszcze raz.

Pozostałe parametry to statystyka handlu, jak analizować którą, zostało opisane w tym artykule. Dodam tylko pewne niuanse, które nie zostały w nim uwzględnione:

  • Liczba transakcji – nie mniej, niż 150 dla dowolnego interwału czasowego.
  • Matematyczne oczekiwanie to czysty zysk, podzielony przez liczbę transakcji. mierzone jest w walucie depozytu, ale jak komuś jest wygodniej, może go przeliczać ręcznie w punktach. Niski wynik matematycznego oczekiwania (mniej, niż 10 punktów) może świadczyć o tym, że doradca szybko zamyka dochodowe transakcje (tzn. obcina potencjalny zysk).
  • Absolutne obsunięcie to różnica między sumą początkową depozytu a najmniejszym jego znaczeniem za cały okres testowania. Maksymalne obsunięcie to różnica między największym a najmniejszym znaczeniem depozytu.

W celu zapisania sprawozdania w formacie HTML klikamy prawym klawiszem myszki na rezultat testowania.

LiteForex: 3. Analiza statystyki i problemu oceny backtestu

Matematyczne oczekiwanie to czysty zysk, podzielony przez liczbę transakcji. mierzone jest w walucie depozytu, ale jak komuś jest wygodniej, może go przeliczać ręcznie w punktach. Niski wynik matematycznego oczekiwania (mniej, niż 10 punktów) może świadczyć o tym, że doradca szybko zamyka dochodowe transakcje (tzn. obcina potencjalny zysk).

Absolutne obsunięcie to różnica między sumą początkową depozytu a najmniejszym jego znaczeniem za cały okres testowania. Maksymalne obsunięcie to różnica między największym a najmniejszym znaczeniem depozytu.

W celu zapisania sprawozdania w formacie HTML klikamy prawym klawiszem myszki na rezultat testowania.

Backtest można wypakować nie tylko w formacie HTM, ale i w Excelu czy innych programach, które mogą automatycznie zgrupować dane wg zadanego algorytmu i wyrysować statystykę w wygodnej formie. Na przykład w postaci diagramów i wykresów. Jest to wygodne podczas porównywania jednocześnie kilku systemów handlowych lub kilku kombinacji parametrów jednego systemu. Również wypakowanie danych do redaktorów wykorzystują oszuści.

Oprócz tego Backtest wykorzystuje się w celach osobistych, może on być przykładem efektywności tradingu podczas sprzedaży doradcy lub pozyskiwania pieniędzy w zarząd powierniczy. Oznaki podrobienia backtestu:

  • Format HTML. Podczas zapisywania backtestu МТ4 proponuje format HTM, ale do HTML bardziej przywykliśmy (ze słuchu), dlatego ci, którzy podrabiają backtesty automatycznie ustawiają automatycznie właśnie go. Mimo, iż podczas wypakowywania format HTML można przepisać ręcznie, nie ma to sensu. Dlatego HTML to pierwsza oznaka tego, iż backtest to podróbka.
  • Spacje lub opuszczenie wierszy. МТ4 wypakowuje sprawozdanie w postaci ciągłego tekstu, obecność spacji świadczy o tym, że backtest był korygowany ręcznie lub wstępnie był ładowany do jakiego redaktora.
  • Zbędne symbole (kropki, przecinki). Najprościej jest wygenerować dowolne sprawozdanie na MT4 i wizualnie porównać wydaną statystykę ze swoim oraz cudzym backtestem.
  • Brak prowizji, nieaktualne notowania, błędy w spreadzie. Brak prowizji to ewidentna oznaka tego, że testowanie odbywało się na koncie demo. Można wypakować dane do Excela i kilkoma formułami sprawdzić zgodność prowizji, cen otwarcia/zamknięcia, kwoty dochodu i bilansu między sobą. Jeśli deficytowe transakcje zostały usunięte lub zamienione zostały cyfry, Excel pokaże rozbieżność.
  • Jednakowe tickety, niezgodność kolejności ticketów i czasu otwarcia transakcji.

Rada. Jeśli obcy człowiek proponuje Wam zainwestowanie w system handlowy i jako dowód pokazuje backtest, poproście o hasło inwestorskie.

4. Optymalizacja doradców na okresie historycznym

Optymalizacja doradcy w testerze Metatrader 4 to proces przebierania masy parametrów robota w zadanym okresie z krokiem, który pozwala na znalezienie optymalnego ich połączenia, dające najlepszy rezultat. Optymalizacja potrzebna jest w dwóch przypadkach:

  1. Konieczność optymalizacji dopiero co utworzonego doradcy na innych okresach lub innych instrumentach.
  2. Zmiana sytuacji rynkowej. Rynek jest zmienny, dynamika ruchu notowań niestała, dlatego każdy system handlowy z czasem trzeba ponownie dostrajać. Przebieranie parametrów odbywa się w testerze automatycznie.

Przed rozpoczęciem optymalizacji zaznaczamy głównym oknie testera znak wyboru w okienku z odpowiednią nazwą. Wizualizację można wyłączyć. Optymalizacja odbywa się na modelu „Wszystkie ticki” (uruchomcie tester na wszystkich 3 modelach i porównajcie dokładność rezultatów).

LiteForex: 4. Optymalizacja doradców na okresie historycznym

4.1. Testowanie. Otwieramy zakładkę „Właściwości eksperta/Testowanie”.

W dziale „Optymalizacja” wybiera się podstawowy parametr, wg którego odbędzie się ocena każdego przeglądu testera okresu historycznego:

  • Balance. Tester wybiera najlepszy przegląd wg sumarycznego znaczenia bilansu depozytu. Dobieranie najlepszych ustawień będzie odpowiadać tej wersji przeglądu, na której będzie pokazany maksymalny zysk.
  • Profit Factor. Kluczowym parametrem będzie stosunek dochodowych i deficytowych transakcji. jeśli wynik wyniesie 1 lub mniej wg wszystkich wariantów przeglądu, doradca w tradingu nie ma dostępu. Optymalną będzie ta wersja, gdzie stosunek będzie maksymalny na korzyść dochodowych transakcji.
  • Expected Payoff. Parametr kluczowy, na który orientuje się tester, matematyczne oczekiwanie, które powinno być nie mniejsze od wielkości spreadu.
  • Maximal Drawdown. Punkt orientacyjny – maksymalne obsunięcie, będące wskaźnikiem poziomu realnego ryzyka. W teorii nie powinno być większe, niż suma początkowego depozytu.
  • Drawdown Percent. Punkt orientacyjny – względne obsunięcie.
  • Custom. Wskaźnikiem optymalizacji będzie kryterium, wskazane w funkcji doradcy OnTester(), gdzie użytkownik może dodać dowolny swój wskaźnik optymalizacji. Wg opinii traderów dany punkt nie działa.

Jeśli usuniemy znak wyboru z „Algorytmu genetycznego”, tester przepuści wszystkie istniejące kombinacje parametrów pod zadane kryteria. Biorąc pod uwagę, ile to może zająć czasu, usuwać go nie radzę.

4.2. Parametry wejściowe. Tu wskazuje się parametry risk management. Znakiem wyboru zaznacza się te zmienne, które biorą udział w optymalizacji.

LiteForex: 4. Optymalizacja doradców na okresie historycznym

Jeśli znaku naprzeciw nie ma, to w optymalizacji on udziału nie bierze. Każdy parametr ma cztery znaczenia:

  • Znaczenie – bieżące znaczenie parametru.
  • Start – początkowe znaczenie.
  • Krok – krok wzrostu znaczenia początkowego.
  • Stop – końcowe znaczenie.

Na przykład trader chce dobrać optymalne znaczenie stopu. Rozumie on, że w tradingu intraday nie ma sensu ustawianie stopu więcej, niż 50 punktów, ale w tym samym czasie ustawienie i mniej, niż 10 nie byłoby prawidłowe. Te ograniczenia on stawia w oknie, aby tester nie przeglądał parametrów, dokładnie nie pasujących do strategii. To znaczy zaoszczędził czas. Krok można ustawić i minimalny, ale czy to ma sens? Czy będzie stop 11 lub 12 punktów, nie jest tak zasadnicze, a dłuższe będzie testowanie.

W przytoczonym przeze mnie przykładzie doradcy jest 5 parametrów. Bywają doradcy, w ustawieniach których jest ich znacznie więcej. I im jest ich więcej, tym więcej kombinacji musi przeglądać tester. W pewnym momencie liczba kombinacji osiągnie punkt krytyczny i tester w ogóle odmówi przeprowadzania optymalizacji, o czym jako o błędzie powiadamia w dzienniku.

4.3. Optymalizacja. Tu również wskazane są parametry, które pozwalają zaoszczędzić czas, obcinając zbędne kombinacje liczb.

LiteForex: 4. Optymalizacja doradców na okresie historycznym

Na przykład trader może wskazać minimalny poziom depozytu (tzn. ten poziom, poniżej którego nie ma już sensu testowanie doradcy, ponieważ jest on niezdolny do działania), po którym optymalizacja zostaje zatrzymana. Analogicznie jest i z innymi kryteriami.

Warianty metodyk optymalizacji:

  • Testowanie na 2 równych odcinkach. Optymalizacja odbywa się na obu, zachowanych zostaje do 10 optymalnych wariantów parametrów na każdym z odcinków. Za podstawę bierze się ten wariant przeglądu, gdzie na obu odcinkach parametry są mniej więcej jednakowe.
  • Forward test. Odcinek dzieli się na 3 części: pierwsze 2 to okres testowania i optymalizacji, ostatni jest odcinkiem forward test, na którym wybierane są najlepsze rezultaty.
  • Backford i forward test. Odcinek dzieli się na 3 części: na wcześniejszym odcinku przeprowadza się początkowe testowanie na środkowym odcinku, na nim przeprowadzana jest optymalizacja. Wybranych kilka wariantów parametrów przepuszcza się na ostatnim odcinku forward. Najlepszy wariant jest testowany na pierwszym odcinku (backford test), a następnie na całym odcinku historycznym. Na wszystkich odcinkach rezultaty (statystyka i rodzaj krzywej depozytu) powinny być porównywalnie jednakowe.

Najlepszy zestaw parametrów uruchamia się na koncie demo. Aby zrozumieć, na ile statystyka tradingu będzie pokrywać się z rezultatami optymalizacji, wystarczy średnio około 30-50 transakcji.

5. Problemy wykorzystania zoptymalizowanych doradców na koncie rzeczywistym

Tester МТ4 nie jest idealny i najczęściej spotykane w stosunku do niego skargi traderów dotyczą działania właśnie z testowaniem doradców. Co prawda czasami winę ponoszą sami traderzy. Testowanie nie daje 100% gwarancji, że i w realnym tradingu będzie analogiczny rezultat. Jakby skomplikowany i zoptymalizowany nie był system handlowy, efekty testowania zawsze będą zawierać nieścisłości, o których traderzy z jakiegoś powodu zapominają.

Błędy traderów, całkowicie ufających testerowi i doradcom:

1. Testowanie i optymalizacja tylko na selekcji In-Sample. Reprezentuje on testowanie na oddzielnie wziętych bazowych danych zanotowanego okresu. Tym samym trader po prostu dopasowuje rezultaty testowania do pasującej mu krzywej depozytu i efekty na rzeczywistym rachunku okazują się dalekie od efektów testu. Najczęstszy błąd początkujących traderów, którzy nie chcą zapoznać się z pojęciami matematycznego oczekiwania i statystyki, przyjętych w Out-of-Sample (parametry są poza selekcją).

Mistakes of traders, fully trusting the tester and Expert Advisors. 

1. Testing and optimization includes only In-Sample data. It is testing on particular basic data of a fixed period. So, traders just adjust the testing results to the needed deposit curve and the results in real trading do not match to the testing results. It is a common error of beginner traders, who don’t want to learn the concepts of the expected payoff and statistics, employed in the Out-of-Sample (out of sample parameters). 

W uproszczonej formie porządek optymalizacji powinien być mniej więcej następujący:

  • Dla testowania bierze się okres historyczny nie mniejszy, niż 5 lat. Odcinek rozbija się na 3 części.
  • Odcinek o długości pierwszych 2/3 odcinka to dane w selekcji, na których będzie odbywać się przegląd parametrów doradcy.
  • Zoptymalizowany system testowany jest na ostatnim 1/3 odcinka. Jeśli rezultaty mają niską korelację (mocno się różnią), na prawdziwym rynku system nie będzie działać. Jest to tak zwany forward test, przeprowadzany w systemie ręcznym.

W celu zautomatyzowania testowania, które w MT4 było niedostępne, stosunkowo niedawno w Market stała się dostępna biblioteka Walk-Forward Optimization (WFO) oraz skrypt Walk-Forward Reporter, narzędzia etapowej forward optymalizacji, powtarzającej się wiele razy z przesunięciem okna do przyszłości.

LiteForex: 5. Problemy wykorzystania zoptymalizowanych doradców na koncie rzeczywistym

Metody testowania i optymalizacji dość szczegółowo opisane są na forum strony mql4.com. Jeżeli kogoś interesuje, jak zainstalować bibliotekę, przepisać kod i w ogóle ciekawa jest instrukcja działania z tymi narzędziami szczegółowej optymalizacji, piszcie w komentarzach, podam link.

Można również spotkać szczegółowe warianty testowania zgodnie z metodą „w selekcji” i „poza selekcją”: optymalizacja doradcy na najbardziej nieudanym (deficytowym) odcinku z następnym uruchomieniem na całym okresie. Lub optymalizacja na odcinku 1 roku, po czym dokonuje się przeglądu na odcinkach „1 rok + 3 miesiące”, „1 rok + 6 miesięcy” i t. d. z późniejszym porównaniem rezultatów.

2. zmiana cyklu rynkowego. Im większy okres próbuje objąć podczas testowania trader, tym mniejsze jest prawdopodobieństwo, że otrzyma on niedziałający system, nawet jeśli zdoła dobrać optymalne parametry. Rynek jest cykliczny i w różnych jego cyklach doradca będzie pokazywać różne rezultaty. Dlatego trader ma dwa wyjścia:

  1. Dobrać uniwersalne parametry doradcy dla długiego okresu, ale mieć na uwadze, że na realnym koncie efekt może okazać się gorszy.
  2. Rozbić interwał na odcinki i określić, na jakich właściwie (flat, splash fundamentalny, koniec lub początek roku, europejska czy azjatycka sesja i t. d.) doradca działa najlepiej. Dopasować parametry i testować doradcę na oddzielnych odcinkach, dla których jest przeznaczony.

3. Wydatki na prowizję. W testerze można je ustawiać ręcznie:

  • Spread. Często traderzy ustawiają zaniżony spread, który może 2-4 razy różnić się od realnego rynkowego. Jeśli broker wskazał spread wg określonej pry walutowej 0,7 punktu (na przykład), nie oznacza to, że tak i jest. W ofercie i w warunkach handlowych (których często w ogóle nie czytają) mogą być ukazywane wg poszczególnych typów kont dodatkowe prowizje.
  • Swap. W znaczący sposób obniża potencjalny zysk.
  • Poślizgi cenowe. Zależą od brokera i sytuacji rynkowej. Nie są brane pod uwagę podczas testowania, dlatego zniekształcają rezultaty na koncie realnym.

Niektórzy całkowicie ignorują wydatki transakcyjne i optymalizacje.

4. Zbywalność i animatorzy rynku. Podczas testowania można otwierać transakcje w scalpingu na setki lotów i otrzymywać dobre rezultaty. Na realnym rynku taki zakres transakcji nieuchronnie ściągnie cenę, szczególnie w stosunkowo spokojnym nocnym czasie. W testerze takie przesunięcie ceny na zakresach nie jest brane pod uwagę. Również tester nie będzie uwzględniać sztucznego nacisku na rynek, tworzonego przez dużych inwestorów, kiedy będzie to dla nich korzystne.

5. Jakość notowań. Jakość notowań brokerów nie zawsze jest wysoka. Na krótkich interwałach czasowych można znaleźć brakujące kawałki. Jakie źródło poradzilibyście Wy? Ciekawie będzie przeczytać opinię czytelników bloga LiteForex.

6. Niska odporność na zmianę parametrów. Jeszcze jeden klasyczny błąd traderów przy optymalizacji. Załóżmy, że drogą serii dobierania parametrów mimo wszystko udało się osiągnąć na długim historycznym okresie najlepsze rezultaty. Czy można taki system uruchamiać na realnym koncie? Nie. Jeżeli na testowanym okresie przy nieznacznej zmianie parametrów efekty gwałtownie się pogarszają (na przykład zmiana parametru z 8 na 9), system nie działa.

7. Pełne zaufanie do doradcy. Autorzy doradców twierdzą, że przy automatycznym tradingu można zapomnieć o psychologii, gdyż robot działa wg zadanego algorytmu, wyostrzonego na okresie historycznym. Jak już pisałem wcześniej, nie ma idealnych doradców. Dlatego sukces tradera w handlu algorytmicznym polega na tym, aby w odpowiednim czasie przechodzić do metody ręcznej handlu i stale dopasowywać go do realiów rynku.

Rady dot. optymalizacji:

  • Okres optymalizacji. Dla dziennego interwału nie mniej, niż 3 lata. Zatem cały okres działania to 4 – 5 lat i więcej.
  • Nie należy optymalizować jednocześnie wielu parametrów. To sztucznie dopasuje rezultat do historii i na realnym koncie system pokaże wadliwe działanie.
  • W celu skrócenia czasu optymalizacji zwiększcie w ustawieniach krok. Odcinek z najlepszymi rezultatami mimo wszystko będzie widoczny, za to zmniejszy się obciążenie testera. Najlepszy odcinek potem można będzie przeprowadzić jeszcze raz bardziej szczegółowo.
  • Nie próbujcie maksymalnie optymalizować system, tracąc na to godziny i dni. Mimo wszystko po jakimś czasie trzeba będzie go optymalizować. Optymalizacja nie udaje się? Modernizujcie algorytm doradcy.

Co jest prostsze? Stworzyć własnego doradcę handlowego i zoptymalizować go, czy kupić działający system, analizując backtest? Pytanie retoryczne. Stworzenie własnego systemu to działanie rutynowe, zajmujące dni i tygodnie, nie zawsze prowadzące do pozytywnego efektu.

Sama zasada pracy z testerem MT4 nie jest skomplikowana, złożony jest proces optymalizacji i dobrania parametrów. Ale i zakup gotowych systemów nie jest panaceum. Backtesty są podrabiane, gwarancji działania nie ma. Na przykład jeszcze kilka lat temu w Market (dział mql4) byli popularni doradcy, „podglądający przyszłość”. Ich kod pozwalał orientować się na notowania przyszłych okresów, będąc tym samym pobożnym życzeniem. Na realny rynku praktycznie nie działały.

6. МТ4 czy МТ5?

Mimo, że MT5 nie cieszy się popularnością wśród traderów, właśnie o testerze tej platformy opnie są bardziej pozytywne, niż o testerze MT4. Głównie przez dokładność rezultatów. Tak czy inaczej proponuję ocenić to czytelnikom przeglądu samodzielnie. Akcentuję jedynie uwagę na podstawowych rzeczach:

  • Wskaźniki i doradcy, napisane pod MT4, na MT5 działać nie będą.
  • Oba testery mają zamknięty sposób optymalizacji. Optymalizacja odbywa się tylko wg tych parametrów, które wchodzą w MT4. Drogą dodania wierszy kodu trader może dodać do testera parametry użytkownika. W czasie optymalizacji parametr użytkownika będzie się liczyć, ale optymalizować doradcę wg niego jest niemożliwe. Na przykład do statystyki można dodać współczynnik przywrócenia (zysk/obsunięcie), ale do „Ustawień eksperta” on nie wchodzi.
  • W MT5 jest tylko jeden system modelowania ceny, generacja ticków wg danych historycznych minutowego interwału czasowego.
  • W MT5 wykorzystuje się potencjał systemów wielojądrowych, w MT4 tylko jedno jądro procesorowe. Przede wszystkim wpływa to na prędkość doboru parametrów przy optymalizacji.
  • W MT5 możliwe jest testowanie kilku instrumentów jednocześnie (ważne jest to dla strategii wielowalutowych). W MT4 tylko jednego.

Algorytm uruchamiania testowania i optymalizacji obu testerów jest praktycznie jednakowy.

Wniosek

W artykule dokonany jedynie ogólnego zapoznawczego przeglądu działania testera MT4. Bardziej szczegółowo o metodach testowania i optymalizacji z wykorzystaniem różnych modeli oraz zasad dopasowywania rezultatu na poszczególnych odcinkach okresu historycznego można przeczytać na forach, w tym na mql4.com. Optymalizacja doradcy to długa rutynowa praca, czasami nie przynosząca efektów. Może ona być ciekawa dla tych, którzy:

  1. Profesjonalnie zajmują się opracowywaniem doradców handlowych, również na sprzedaż.
  2. Są zapaleni i czerpią przyjemność z samego procesu testowania, optymalizacji oraz opracowywania kodu.

Optymalnym wariantem na razie pozostaje ręczne testowanie, nie wymagające tak głębokiej wiedzy nt. zasad działania testera, ale również czasu, pozwalającego ocenić działanie strategii.

Zapraszam każdego czytelnika bloga do przyłączenia się do dyskusji nt. testowania oraz optymalizacji strategii handlowych, podzielcie się Waszym doświadczeniem i metodami testowania lub zadawajcie pytania doświadczonym traderom LiteForex.


P.S. Podobał się mój artykuł? Udostępnij go w sieciach społecznościowych, najlepszy sposób na podziękowanie:)

Wykres cen USDJPY w czasie rzeczywistym

Tester strategii МТ4

Treść tego artykułu stanowi wyłącznie prywatną opinię autora i może nie pokrywać się z oficjalnym stanowiskiem LiteForex. Materiały publikowane na tej stronie mają wyłącznie charakter informacyjny i nie mogą być traktowane jako porada inwestycyjna ani konsultacja w rozumieniu dyrektywy 2014/65/UE.
Zgodnie z przepisami prawa autorskiego artykuł ten jest chronionym obiektem własności intelektualnej, co obejmuje zakaz kopiowania i rozpowszechniania bez zgody.

Oceń ten artykuł:
{{value}} ( {{count}} {{title}} )
Zacznij handlować
Śledź nas w sieciach społecznościowych!
Live Chat