EN
Artykuły / 21.3 Optymalizacja w praktyce
Optymalizacja w praktyceszkic

Optymalizacja dat startu: czy bot przeżyje start w dowolnym dniu

14.11.20264 min czytania

W skrócie: challenge zaczynam w jednym konkretnym dniu, a backtest od jednej daty pokazuje tylko jeden z wielu możliwych scenariuszy. Dlatego przesuwam datę startu o kolejne dni (albo poniedziałki) i patrzę, w jakim procencie startów bot nie zalicza etapu oraz ile jest osobnych, złych okresów. To nie jest optymalizacja parametrów bota, tylko test odporności.

Dlaczego jeden start to za mało

Prop firma nie wybiera mi dnia, w którym kupię konto. Kupuję je, kiedy mam czas i kiedy trwa promocja. Gdybym sprawdził bota tylko od 1 stycznia, mogę trafić na wyjątkowo dobry kwartał albo na wyjątkowo zły. W obu przypadkach wniosek byłby przypadkiem.

Dlatego w teście z modułem challenge przesuwam moment startu. Tester uruchamia ten sam bot z tymi samymi ustawieniami wiele razy, a jedyną zmienną jest dzień rozpoczęcia. Przy każdym starcie wychodzi zaliczony etap, utracone konto albo etap w toku. Z setek takich przebiegów da się policzyć coś, czego nie pokaże pojedynczy raport: jak często start kończy się porażką i jak długo trwa zaliczenie.

Dwa sposoby przesuwania startu

Używam dwóch trybów i oba uważam za dopuszczalne:

  • Co X dni. Start przesuwa się o kolejne dni, na przykład od 1 do 700 co 2. To gęsta siatka, jedna z największych, jakie robię (maksymalnie około 500 kombinacji w jednym przebiegu optymalizacji).
  • Poniedziałki. Start wypada w N-ty poniedziałek od początku okresu. W okresie od stycznia 2024 do października 2026 to około 143 starty. Ten tryb odpowiada temu, jak wielu traderów naprawdę zaczyna challenge.

Koszt jest mały: sto przebiegów na świecach M1 (OHLC) zajęło mi około 41 sekund na jednym z botów. Tak gęsta siatka na tikach nie miałaby sensu, a do tej pory nie było powodu jej robić.

Błąd, który zawyża pewność: sąsiednie starty to te same transakcje

Pierwszy odruch to powiedzieć “w 94% startów bot zalicza”. Problem w tym, że start we wtorek i start w środę dzielą prawie wszystkie transakcje. Jeśli bot wpada w serię strat w marcu, to nie jeden start kończy się porażką, tylko cały ciąg kolejnych startów, który zahacza o ten marzec.

Dlatego obok procenta porażek liczę liczbę osobnych złych okresów, czyli ciągów kolejnych startów z porażką. Procent mówi, jak duży jest zły fragment. Liczba okresów mówi, ile razy bot naprawdę miał kłopot.

Przykład z pilota na jednym z botów (bot 1310_GoldEmaCrossDailyLowTargetEA, 150 startów w każdym trybie) wyglądał tak:

Tryb startu Startów z porażką Osobnych złych okresów
co kilka dni 9,4% 7
poniedziałki 6,3% 6

Obie metody pokazały podobny obraz: zły start zdarza się raz na kilkanaście, a źródłem są nieliczne okresy, nie rozproszone pojedyncze dni. Do liczenia używam małego skryptu, bo ręcznie łatwo się pomylić na granicach ciągów.

Co z tego wynika dla decyzji

  1. Statystyki bota liczę bez modułu challenge. Moduł zatrzymuje handel po zaliczeniu etapu, robi pauzy i wypłaty, więc zysk, Sharpe czy PF z takiego przebiegu są zniekształcone. Statystyki zbieram osobno, z wyłączonym modułem i startem od początku okresu.
  2. Sweep startów mówi o odporności, nie o zysku. Dwa boty mogą mieć podobny zysk, a jeden zalicza etap w piętnaście dni i rzadko odpada, drugi w sześćdziesiąt i odpada częściej.
  3. Próg ma znaczenie. U mnie 20% startów z porażką daje zero punktów w tej kategorii, a 0% maksimum. Wcześniej próg wynosił 10%, ale okazał się za surowy dla botów, które i tak dobrze wypadały na innych kryteriach. Ustalaj próg, zanim zobaczysz wyniki, a nie po.

Czego ten test nie sprawdza

Nie rozstrzyga, czy bot wytrzyma inny rynek, bo wszystkie starty leżą w tym samym okresie historii. Nie zastępuje też testu na kilku brokerach ani na każdym roku osobno. To jedna z kilku kontroli, nie ostateczny werdykt.

Checklista

  • Wybrałem tryb startu: co X dni albo poniedziałki.
  • Statystyki bota (zysk, PF, Sharpe) liczę z przebiegu bez modułu challenge.
  • Obok procenta porażek liczę osobne złe okresy.
  • Próg akceptacji (np. maks. 20% startów z porażką) ustalam przed testem.
  • Sprawdzam medianę dni do zaliczenia, nie tylko średnią.
  • Ten sam test powtarzam na drugim brokerze.

Powiązane

Ostrzeżenie: handel CFD i forex wiąże się z wysokim ryzykiem utraty kapitału. Wynik testu odporności na moment startu opisuje przeszłość i nie gwarantuje zaliczenia challenge w przyszłości. Artykuł ma charakter edukacyjny i nie jest rekomendacją inwestycyjną.

Dalej w rozdziale

554

Cache optymalizacji w MT5: stare wyniki zamiast nowego liczenia

Druga optymalizacja z poprawionymi ustawieniami zrobiła 4896 przebiegów zamiast 4, bo Tester wznowił stary cache. Jak to rozpoznać i jak czyścić cache przed każdą serią.