EN
Artykuły / 9.1 Optymalizacja
Optymalizacjaszkic

Optymalizacja EA: pułapka najlepszego wiersza w Testerze

14.11.20264 min czytania

W skrócie: tabela wyników optymalizacji kusi, żeby posortować ją po zysku i wziąć pierwszy wiersz. W moim teście trzy sąsiednie wartości jednego parametru dały +37,0, +29,5 i +39,5 tys. USD, czyli różnice ±8 tys. bez żadnego porządku. Taki rozrzut to szum. Wybieram środek obszaru, w którym wszystkie ustawienia są na plusie, a nie pojedynczy najlepszy wynik.

Trzy wartości obok siebie

Pokażę to na optymalizacji mojego bota na wybicie z zakresu otwarcia Nowego Jorku z wejściem po cofnięciu (bot 4063_NyOrbFibPullbackNoCancelEA). NAS100, konto demo Fusion Markets, od stycznia 2025 do listopada 2026, ryzyko 1000 USD na transakcję przy saldzie 100 000 USD, tryb 1 minuta OHLC.

Zmieniałem jeden parametr, poziom cofnięcia, na którym bot wchodzi, i nic poza nim:

Poziom wejścia Zysk
0,48 +37,0 tys. USD
0,50 +29,5 tys. USD
0,52 +39,5 tys. USD

Wartość 0,50 była ustawieniem wyjściowym. Gdybym zobaczył tylko ten wiersz i wiersz 0,52, uznałbym, że znalazłem poprawkę wartą 10 tys. USD. Tyle że 0,48 po drugiej stronie też jest lepsze. Rynek nie ma powodu, żeby karać akurat cofnięcie o równo połowę.

To samo wyszło na take proficie: dla 1,8R, 2,0R i 2,2R zysk wyniósł +35,7, +29,5 i +41,8 tys. USD.

Kiedy sąsiednie wartości skaczą w górę i w dół o ±8 tys., to każda pojedyncza różnica mniejsza niż 8 tys. nic nie znaczy. Ustawienie wyjściowe trafiło w lokalny dołek, a “najlepszy wiersz” to lokalna górka. Za rok zamienią się miejscami.

Jak wygląda prawdziwy efekt

Dla porównania trzeci parametr, zapas stop lossa za krawędzią zakresu. Zysk spadał równo, krok po kroku: od +56 tys. USD przy zapasie 0 do +29 tys. przy zapasie 6. Bez skoków, zawsze w tę samą stronę.

Sprawdziłem to potem na prawdziwych tikach. Kierunek ten sam: średnio +26,5 tys. przy zapasie 1, +20,0 tys. przy 3,5 i +11,7 tys. przy 6.

Efekt, któremu ufam, zmienia się płynnie i powtarza się w drugim, niezależnym teście. Skaczące wyniki sąsiadów zostawiam w spokoju.

Obszar zamiast punktu

Po tych testach nie wybierałem wiersza. Szukałem obszaru. Dla zawężonego zakresu ustawień przeliczyłem 147 kombinacji trzech parametrów i każdą sprawdziłem osobno na roku 2025 i osobno na 2026.

Wszystkie 147 były na plusie w obu latach. To jest dla mnie ważniejsza informacja niż zysk najlepszej z nich. Jeśli cały obszar zarabia, to nie ma znaczenia, że trafię o jeden krok obok najlepszego ustawienia. Wziąłem wartości ze środka.

Ranking robiłem po słabszym roku, a nie po sumie. Ustawienie, które zarobiło dużo w 2025 i prawie nic w 2026, ląduje nisko, choć w sumie wygląda dobrze.

Dwie pułapki, które zostały

Optymalizowałem na OHLC, bo jest szybciej. Kontrola na tikach pokazała, że jedna z wybranych wartości była lepsza tylko w trybie OHLC. Na tikach wygrała sąsiednia. Opisałem to w artykule OHLC kontra prawdziwe tiki.

Druga sprawa: wszystko to działo się na tych samych dwóch latach danych, bo starszych dla tego symbolu na tym koncie nie mam. Parametry dobrane i sprawdzone na tym samym okresie to kandydat do testu na koncie demo, a nie dowód, że bot zarabia.

Jak czytam tabelę optymalizacji

  1. Zmieniam jeden parametr naraz, małym krokiem, i patrzę na sąsiadów, a nie na pierwszy wiersz.
  2. Liczę rozrzut między sąsiadami. To jest mój poziom szumu dla tego bota.
  3. Różnice mniejsze od szumu pomijam. Szukam zmian płynnych, w jedną stronę.
  4. Każdy rok liczę osobno i sortuję po słabszym.
  5. Wybieram środek obszaru, w którym wszystko jest na plusie.
  6. Na końcu jeden przebieg na prawdziwych tikach i test na demo.

Checklista

  • sprawdzone wartości po obu stronach wybranego ustawienia,
  • wiem, ile wynosi rozrzut między sąsiednimi ustawieniami,
  • wybrany efekt zmienia się płynnie i powtarza w drugim teście (inny tryb, inny rok, inny broker),
  • wynik policzony dla każdego roku osobno,
  • ustawienia wzięte ze środka dobrego obszaru, a nie z pierwszego wiersza,
  • zapisane, że parametry dobrano na tym samym okresie, na którym były testowane.

Powiązane

Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Parametry dobrane w optymalizacji są dopasowane do przeszłości i nie gwarantują wyniku w przyszłości. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.

Dalej w rozdziale

195

Inputy pod optymalizację: enum zamiast listy w stringu

Tester MT5 nie optymalizuje tekstu. Pokazuję, jak projektuję inputy bota, żeby każde ustawienie dało się wstawić do siatki: bool, liczba albo enum z czytelnym opisem.

196

Optymalizacja na wielu brokerach naraz: suma PASS/FAIL zamiast jednego wyniku

Ustawienia dobrane na danych jednego brokera potrafią nie działać u innego. Siedmiu brokerów obok siebie i suma zaliczonych oraz oblanych challenge'y jako jedna liczba, którą poprawiam krok po kroku.