Backtesting w MT4 i MT5 — praktyczny przewodnik 2026
Krzysiek skończył pisać swojego pierwszego Expert Advisora w styczniu 2024 roku. Wpisał strategię w MT4, kliknął Strategy Tester z domyślnymi ustawieniami i zobaczył krzywą kapitału, która w trzy lata urosła z 10 000 do 47 000 euro — skuteczność 78 procent, profit factor 3,4, drawdown ledwie 6 procent. Pięć miesięcy później rachunek live miał 7 200 euro i pełzał dalej w dół. Różnica między backtestem a rzeczywistością to nie pech ani „inny rynek" — to suma trzech błędów warsztatu: złe dane historyczne, nierealistyczne parametry symulacji i jednorazowa optymalizacja zamiast walk-forward. W tym artykule pokazujemy, jak skonfigurować Strategy Tester w MT4 i MT5, czego unikać i jak czytać raport, żeby backtest mówił prawdę o przyszłej rentowności strategii.
Setup Strategy Tester w MT4 i MT5 — co naprawdę różni
Strategy Tester w obu platformach służy do tego samego — symuluje działanie Expert Advisora na danych historycznych — ale różnice w mechanice są wystarczająco duże, żeby przesądzać o wiarygodności wyniku. W MT4 silnik jest jednowątkowy, co oznacza, że tygodniowy backtest na M15 dla pięciu lat danych zajmuje od dwóch do dziesięciu minut, a optymalizacja kilkuset kombinacji parametrów potrafi trwać dwa dni. W MT5 ten sam test wykonuje się w równoległych wątkach (osiem rdzeni procesora to ośmiokrotne przyspieszenie), a dodatkowo platforma obsługuje natywnie wielowalutowe testy — czyli strategię handlującą jednocześnie na EUR/USD, GBP/USD i USD/JPY MT4 testuje pojedynczo, MT5 jednocześnie.
Drugą fundamentalną różnicą jest jakość danych. MT4 ciągnie historię z History Center, gdzie znajdziesz dane M1 brokera — często niekompletne, czasem z gapami po wikendach, prawie zawsze ograniczone do dwóch–trzech lat wstecz. MT5 natomiast pobiera dane tickowe bezpośrednio od brokera (jeśli broker je udostępnia, a większość poważnych ECN to robi) i przechowuje je w skompresowanym formacie. Dla strategii, która działa na M30 i wyżej, ta różnica nie jest dramatyczna. Dla skalpera lub strategii na M5 — przepaść.
Jakość danych — Dukascopy, Tickstory i mit 99 procent
Jakość danych historycznych to najczęściej niedoceniany element warsztatu. Trader pobiera, co broker daje, klika Start i wierzy w wynik. Tymczasem dane domyślne MT4 dają maksymalnie 90 procent modeling quality — wskaźnik widoczny w prawym górnym rogu raportu — a różnica między 90 a 99 procent dla strategii działającej na M5 lub niżej potrafi przesunąć wynik z plus 40 procent rocznie na minus 5 procent.
Dukascopy Bank z Genewy udostępnia za darmo historyczne dane tickowe od 2003 roku dla większości głównych par walutowych, indeksów, surowców i metali. Pobiera się je przez JForex Historical Data Downloader lub bezpośrednio z API. Konwersja do formatu HST (dla MT4) odbywa się przez darmowe narzędzie FX Blue Quant Data Manager albo płatne Tickstory (30–50 USD jednorazowo, oszczędza dwa wieczory walki z formatami). Po imporcie modeling quality skacze do 99 procent, a wskaźnik w raporcie potwierdza, że symulator widział każdy tick — nie tylko cztery punkty na świecę.
W MT5 procedura jest prostsza — w menu Strategy Tester wybiera się model „Każdy tick na podstawie rzeczywistych ticków" i platforma sama pobiera od brokera dane tickowe (jeśli broker je udostępnia). Jeśli broker tickdanych nie ma, MT5 cofnie się do trybu syntetycznego i backtest będzie tak samo wątpliwy jak MT4 na danych domyślnych. Sprawdzenie: kliknij prawym na symbol w Market Watch → Symbols → karta Sessions — jeśli widać godziny tickowe, broker dane ma.
Parametry symulacji — spread, prowizja, swap, poślizg
Druga warstwa, w której traderzy oszukują samych siebie, to parametry symulacji. Domyślnie Strategy Tester zakłada spread z bieżącego momentu i zerową prowizję. Dla strategii skalpującej oznacza to różnicę między pozornym plusem a realnym minusem w prawdziwym handlu.
- Spread. W oknie testera ustaw spread odpowiadający kontu live — najczęściej 0,8–1,5 pipsa na EUR/USD u brokera ECN, 1,8–3 pipsy u market-makera. Jeszcze lepiej: wybierz „Current" tylko jeśli twój broker udostępnia historyczne spready (MT5 czasem to robi). Inaczej testuj na pesymistycznym scenariuszu (spread × 1,5) — jeśli strategia jest dochodowa, w realnym handlu masz margines.
- Prowizja. ECN broker pobiera typowo 7 USD na lot za otwarcie i zamknięcie pozycji (round turn). W Strategy Tester MT5 ustaw to w specyfikacji symbolu, w MT4 — w kodzie EA przez OrderSend ze świadomością prowizji. Bez tego strategia z 5 pipsami zysku na transakcję ma w backteście profit factor 1,6, a w realu 0,9.
- Swap. Pozycje trzymane przez noc generują swap dodatni lub ujemny. Dla strategii holdującej pozycje 2–7 dni swap potrafi zniwelować 20–30 procent rocznego zysku. Strategy Tester w MT5 pobiera swap automatycznie z specyfikacji symbolu, w MT4 trzeba go ustawić ręcznie w Symbol Properties.
- Poślizg cenowy (slippage). Żaden Strategy Tester nie symuluje poślizgu domyślnie — wszystkie zlecenia stop loss i take profit otrzymują wykonanie po cenie literalnej. W realnym handlu, podczas publikacji NFP, rolowania rynku amerykańskiego lub gapów weekendowych, slippage 5–20 pipsów to norma. Realistyczna korekta: dolicz do każdej straty 1,5 pipsa, do każdego zysku odejmij 1 pips. Strategia, która przy tym założeniu wciąż jest dochodowa, ma szansę przeżyć na żywo.
Trzy pułapki, które niszczą backtest — look-ahead, overfit, survivorship
Look-ahead bias to sytuacja, w której kod strategii — najczęściej nieświadomie — używa informacji, której w momencie podejmowania decyzji handlowej nie mógłby znać. W MQL4 i MQL5 pojawia się głównie przy odwoływaniu się do bieżącej, niezamkniętej świecy indeksem 0. Świeca o indeksie 0 nadal się formuje, jej High i Low zmieniają się tickowo — backtest „zna" ich finalną wartość, trader na żywo nie. Reguła: każdy odczyt cen i wskaźników z indeksem 1 (poprzednia, zamknięta świeca) lub wyżej, nigdy zero.
Overfit (krzywodopasowanie, curve-fitting) to skutek zbyt intensywnej optymalizacji. Trader przepuszcza Strategy Tester przez tysiąc kombinacji parametrów, wybiera najlepszą i widzi krzywą kapitału idealnie wygładzoną. To nie jest strategia z edge'em, to dopasowanie do szumu w danych historycznych. Sygnały ostrzegawcze: drawdown poniżej 5 procent, profit factor powyżej 3,5, skuteczność powyżej 75 procent na próbie powyżej 200 transakcji, krzywa kapitału bez korekt dłuższych niż dwa tygodnie. Każdy z tych objawów osobno może być prawdziwy w specyficznej strategii — wszystkie razem to alarm.
Survivorship bias polega na testowaniu strategii wyłącznie na parach i instrumentach, które dotrwały do dziś. EUR/USD, GBP/USD i USD/JPY istnieją i pewnie istnieć będą — ale strategia uniwersalna powinna działać na koszyku, w którym znajdują się też pary, które w okresie testowym przeżyły turbulencje (USD/TRY po 2018 roku, EUR/CHF po styczniu 2015) lub zostały wycofane. W praktyce dla retail tradera ten problem jest mniej krytyczny, bo testy robi się głównie na głównych parach — ale jeśli buduje się portfel 20 par egzotycznych, backtest tylko po tych, które „nadal handluje broker", potrafi przeszacować wynik o 30–50 procent.
Eksport i czytanie raportu — co naprawdę ma znaczenie
Po zakończeniu backtestu MT4 i MT5 generują raport z ośmiu–dziesięciu metryk. Większość traderów patrzy na trzy — zysk netto, skuteczność i drawdown — i kończy analizę. To za mało.
Raport eksportujesz w obu platformach przez prawy przycisk myszy na karcie Backtest → Save as Report. Plik HTML zachowuje wszystkie wykresy, listę transakcji i metryki. Archiwizuj go w katalogu strategii z datą i numerem wersji — porównanie raportów po sześciu miesiącach pracy nad jednym EA jest cenniejsze niż dziesięć podręczników o tradingu.
Walk-forward — antydotum na curve-fit
Walk-forward to metodyka, którą Robert Pardo opisał w klasycznej książce z 2008 roku i która pozostaje obowiązującym standardem w funduszach systematycznych. Mechanika jest prosta: dziel historię na okres in-sample (np. cztery lata) i out-of-sample (np. rok). Optymalizuj parametry tylko na in-sample, po czym uruchom strategię z zamrożonymi parametrami na out-of-sample bez żadnych poprawek. Powtarzaj, przesuwając okno o rok do przodu, dopóki nie zużyjesz całej historii.
Wynik z out-of-sample — agregowany ze wszystkich iteracji — to najlepsze możliwe przybliżenie tego, co się stanie na rachunku live. Wskaźnik walk-forward efficiency (WFE) liczy się jako zwrot z out-of-sample podzielony przez zwrot z in-sample. WFE powyżej 0,5 oznacza solidną strategię, 0,3–0,5 to umiarkowane curve-fit, poniżej 0,3 — strategia jest oszustwem własnego ego.
„The whole purpose of walk-forward analysis is to reveal the real-time, real-money performance of a trading strategy without actually trading it with real money in real time. If a strategy fails walk-forward analysis, it has failed the test, period." — Robert Pardo, *The Evaluation and Optimization of Trading Strategies*, Wiley, 2008
MT5 ma walk-forward wbudowany w Strategy Tester (zakładka Forward) — wystarczy zaznaczyć opcję i ustawić proporcję okresów IS/OS. W MT4 trzeba go zrobić ręcznie: optymalizujesz na jednym przedziale dat, zapisujesz parametry, zmieniasz daty na okres out-of-sample, wprowadzasz parametry ręcznie i uruchamiasz pojedynczy backtest. Pracochłonne, ale wykonalne — 30–40 minut na jedną iterację.
Backtesting manualny — kiedy ma sens i kiedy oszukuje
Dla traderów dyskrecjonalnych operujących na price action — formacjach świecowych, lukach, wybiciach z konsolidacji — backtesting w Strategy Tester jest niewykonalny, bo strategia nigdy nie da się w pełni zakodować. Tu z pomocą przychodzi tester wizualny w MT5 (zakładka Visual mode) i Bar Replay w TradingView. Klikasz krok po kroku przez historyczne świece, podejmujesz decyzję jakbyś handlował na żywo, zapisujesz transakcje w arkuszu i po stu pozycjach masz przybliżenie własnego edge'u.
Wada manualnego backtestu jest jednak fundamentalna — pamięć tradera ucieka. Wiesz, co stało się dalej. Wiesz, że po tej długiej świecy z młotem nastąpiło odbicie 80 pipsów. Ta wiedza zniekształca decyzję — automatycznie filtrujesz wątpliwe setupy, których w czasie rzeczywistym podjąłbyś. Realistyczna skuteczność manualnego backtestu jest 10–15 procent wyższa od realnej — i tylko częściowo można to skompensować odsłaniając świece pojedynczo i nie patrząc w prawo.
Podsumowanie
Backtesting w MT4 i MT5 to narzędzie potężne, ale tylko w rękach kogoś, kto zna jego ograniczenia. Trzy filary wiarygodnego backtestu to: jakość danych (modeling quality 99 procent z Dukascopy zamiast 90 procent z brokera), realistyczne parametry symulacji (spread, prowizja, swap i konserwatywny narzut na poślizg) oraz metodyka walk-forward zamiast jednorazowej optymalizacji.
Trzy najgroźniejsze pułapki, które konsekwentnie niszczą rachunki początkujących traderów algorytmicznych, to look-ahead bias (zaglądanie w przyszłość przez odwołania do niezamkniętej świecy), overfit (idealnie wygładzona krzywa kapitału, której nie da się powtórzyć na żywo) oraz survivorship bias (testowanie tylko na instrumentach, które przetrwały do dziś).
Realistyczna proporcja, do której warto się przyzwyczaić: wynik z dobrze przeprowadzonego backtestu razy 0,5 to oczekiwany wynik na koncie rzeczywistym. Pozostałe 50 procent zostawia margines na nieuchwytne czynniki — psychologię tradera realizującego zlecenia ręcznie, awarie połączenia, rekwotowania, zmiany regulacji ESMA, fluktuacje warunków u brokera. Backtest, który po tej korekcie wciąż pokazuje 12–20 procent rocznie z drawdownem poniżej 20 procent, to strategia warta wdrożenia. Wszystko poniżej tego progu lepiej zostawić w katalogu „eksperymenty" i wrócić do deski kreślarskiej.
Powiązane materiały: framework backtestingu krok po kroku — siedmiostopniowa procedura niezależna od platformy; walk-forward analysis — szczegółowa mechanika anti-curve-fit; MT4 czy MT5 — porównanie obu platform pod kątem ekosystemu EA i handlu manualnego.
Źródła i bibliografia
-
Robert Pardo The Evaluation and Optimization of Trading Strategies · Wiley 2008 — klasyczny podręcznik walk-forward www.wiley.com ↗
-
MetaQuotes MT5 Strategy Tester — official documentation · oficjalna dokumentacja MQL5 www.metaquotes.net ↗
-
Dukascopy Bank SA Historical data feed · darmowe dane tickowe dla 99 procent modeling quality www.dukascopy.com ↗
Najczęstsze pytania
Czym różni się modeling quality 99 procent od 90 procent w MT4?
Modeling quality to wskaźnik w raporcie MT4 (procent w prawym górnym rogu okna Strategy Tester) pokazujący, jak dobrze symulator odwzorował realny ruch ceny w obrębie każdej świecy. 90 procent to maksimum, jakie da się osiągnąć na danych domyślnych pobieranych z brokera przez History Center — MT4 interpoluje wnętrze świecy z czterech punktów (Open-High-Low-Close), więc backtest na M15 zakłada, że cena w środku świecy poruszała się w sposób, którego nigdy nie weryfikuje. 99 procent wymaga prawdziwych danych tickowych zaimportowanych z zewnętrznego źródła — najczęściej darmowego API Dukascopy lub płatnego Tickstory. Różnica praktyczna: strategia skalpująca z take-profitem 5 pipsów daje na danych 90 procent skuteczność 70 procent i zysk roczny 30 procent, podczas gdy na tych samych danych w jakości 99 procent dostaje się 52 procent skuteczności i wynik ledwie powyżej zera. Powód — brak tickowego ruchu wewnątrz świecy ukrywa moment, w którym stop loss musiałby się wybić zanim cena wróciłaby do take-profit. Reguła kciuka: jeśli twoja strategia działa na timeframe M30 i wyżej, a take-profit jest dalej niż 30 pipsów, różnica 90 vs 99 procent nie jest krytyczna. Jeśli skalpujesz lub używasz timeframe poniżej M15, bez 99 procent backtest jest fikcją. MT5 ten problem rozwiązuje automatycznie w trybie „Każdy tick na podstawie rzeczywistych ticków", o ile broker udostępnia historię tickową — większość poważnych brokerów ECN to robi.
Jak skonfigurować Strategy Tester w MT5 krok po kroku?
Sekwencja, którą wykonuje się zawsze w tej samej kolejności, żeby uniknąć niejawnych błędów. Krok pierwszy: otwórz Strategy Tester klawiszem Ctrl+R lub menu View → Strategy Tester. Krok drugi: w polu Expert wskaż swojego Expert Advisora skompilowanego do pliku .ex5. Krok trzeci: wybierz symbol z listy (najlepiej ten sam, na którym faktycznie handlujesz na koncie demo lub real). Krok czwarty: ustaw timeframe — taki sam, jak strategia używa w produkcji. Krok piąty: zakres dat. Minimum pięć lat, zalecane dziesięć — żeby zawrzeć przynajmniej jeden cykl wzrostowy, jedną korektę i jedno wydarzenie kryzysowe (np. marzec 2020, luty 2022, październik 2023). Krok szósty: model symulacji — „Każdy tick na podstawie rzeczywistych ticków" dla wiarygodnego wyniku, „Każdy tick" dla szybszej iteracji, „1 minuta OHLC" tylko do pierwszego sita parametrów. Krok siódmy: depozyt początkowy i waluta — odzwierciedlające realny rachunek. Krok ósmy: dźwignia — koniecznie taka sama jak na koncie live (1:30 dla rezydenta UE bez statusu profesjonalnego, 1:500 dla statusu doświadczonego klienta). Krok dziewiąty: w zakładce Settings włącz Optymalizacja: Disabled dla pojedynczego backtestu, Slow complete algorithm dla pierwszej iteracji walk-forward, Fast genetic dla większych przestrzeni parametrów. Krok dziesiąty: kliknij Start i obserwuj. Jeśli MT5 pobiera dane historyczne pierwszy raz, zajmie to od dwóch do dwudziestu minut, w zależności od długości okresu i liczby instrumentów. Po zakończeniu test masz dostęp do zakładek Backtest (krzywa kapitału), Trades (lista zleceń) i Graph (równania prowadzonego konta). Eksport raportu do HTML poprzez prawy przycisk myszy → Save as Report — plik archiwizuj w katalogu projektu strategii.
Czym jest look-ahead bias i jak go uniknąć w MQL5?
Look-ahead bias to nieświadome użycie w kodzie strategii informacji, której w momencie podejmowania decyzji nie mogłaby znać — czyli zaglądanie w przyszłość. W praktyce MQL5 pojawia się najczęściej w trzech miejscach. Pierwsze: odwołanie do bieżącej, niezamkniętej świecy iCustom z indeksem 0 zamiast 1. Świeca o indeksie 0 nadal się formuje — jej High, Low i Close zmieniają się tickowo, więc warunek wejścia oparty na takim odczycie w backteście bazuje na końcowych wartościach świecy, których trader na żywo nie zna jeszcze przez kilkanaście minut. Drugie: użycie funkcji iHigh(symbol, period, 0) lub iLow(symbol, period, 0) w obliczeniu stop lossa — backtest zna ekstremum całej świecy, trader w czasie rzeczywistym nie. Trzecie: synchronizacja danych z wielu timeframe'ów bez sprawdzania, czy świeca H4 została zamknięta przed otwarciem M15, w której strategia wchodzi. Sposób na wykrycie: jeśli krzywa kapitału z backtestu jest podejrzanie gładka (drawdown poniżej 5 procent, profit factor powyżej 3,5, skuteczność ponad 75 procent na 200 transakcjach), spróbuj uruchomić ten sam EA na koncie demo przez miesiąc. Drastyczna różnica wyniku (50 procent słabiej) niemal zawsze oznacza look-ahead bias gdzieś w kodzie. Naprawa: każdy odczyt indykatora i historii cenowej zawsze z indeksem 1 lub wyżej (zamknięta świeca), warunki wyjścia weryfikuj funkcją CopyClose/CopyRates z parametrem czasu zamknięcia świecy, a synchronizację timeframe'ów sprawdzaj przez SymbolInfoInteger(symbol, SYMBOL_TIME).
Backtesting manualny czy automatyczny — który ma sens?
Oba mają sens, ale w innym celu i na innym etapie warsztatu. Backtesting manualny (klikanie bar po barze w narzędziu replay, np. Bar Replay w TradingView lub funkcja krok po kroku w MT5) — najlepszy dla traderów dyskrecjonalnych, którzy operują na price action i nie potrafią lub nie chcą sformalizować swoich zasad do kodu. Pozwala wyczuć zmienność, rytm rynku i moment, w którym setup wygląda zachęcająco. Wada: subiektywizm, zerowa replikacja (drugi przebieg da inny wynik), długi czas pracy (200 transakcji na M15 zajmuje 30–50 godzin uważnej pracy). Backtesting automatyczny przez Strategy Tester wymaga, żeby strategia była zakodowana jako Expert Advisor — czyli każdy warunek wejścia, wyjścia i zarządzania ryzykiem musi być opisany matematycznie, bez „wyczucia rynku". W zamian dostaje się replikację (identyczny wynik za każdym razem na tych samych danych), statystycznie istotną próbę (5 000 transakcji w jeden wieczór) i obiektywne metryki. Wada: nie testuje subiektywnej oceny formacji, więc strategie price action oparte na intuicji wymykają się temu narzędziu. Złota ścieżka: zacznij od manualnego backtestu 100 transakcji, żeby zrozumieć rynek i własną strategię. Jeśli wynik jest obiecujący, sformalizuj reguły do EA i przepuść przez automatyczny Strategy Tester z walk-forward — to rozróżni intuicję od krzywych dopasowanych do historii. Sama intuicja w 90 procent przypadków przegrywa z systemem mechanicznym po 12 miesiącach realnego handlu.