Monte Carlo transakcji - jak sprawdzić drawdown bota
W skrócie: backtest to jedna z wielu możliwych kolejności tych samych transakcji. Gdy ją przetasuję, zysk końcowy zostaje taki sam, ale drawdown i seria strat zmieniają się mocno. Dlatego z backtestu biorę nie jeden drawdown, tylko jego rozkład, i dobieram ryzyko tak, żeby gorszy wariant (np. 95. percentyl) mieścił się w limicie konta.
Dlaczego jeden backtest nie wystarcza
Test pokazuje, co by się stało, gdyby przyszłość ułożyła transakcje dokładnie tak jak przeszłość. Nie ułoży. Strategia ma pewną skuteczność i pewien stosunek zysku do straty, a kolejność wygranych i strat jest w dużej części przypadkowa. Ten sam bot z tymi samymi 200 transakcjami mógłby mieć krzywą gładką albo taką, która w połowie spada o kilkanaście ryzyk. Jeśli limit dzienny lub całkowity konta prop liczy się od szczytu, ta kolejność decyduje, czy konto przeżyje.
Jak to działa
Metoda jest prosta. Biorę listę zamkniętych transakcji z backtestu, każdą wyrażam w jednostkach ryzyka (R: strata = -1 R, wygrana = +2 R itd.). Potem:
- Tasuję kolejność (bez zwracania, ta sama lista, inny porządek).
- Liczę krzywą kapitału i jej największy spadek od szczytu oraz najdłuższą serię strat.
- Powtarzam kilka tysięcy razy i patrzę na rozkład, nie na pojedynczy wynik.
Zysk końcowy we wszystkich próbach jest identyczny, bo suma się nie zmienia. Zmienia się tylko droga do niego. Jest też wariant z losowaniem ze zwracaniem (bootstrap), który zakłada, że przyszłość może mieć trochę inną mieszankę wygranych i strat niż test. Jest ostrożniejszy, ale zależy od tego, jak wiernie lista transakcji odzwierciedla strategię.
Przykład liczbowy
Dane przykładowe, nie z mojego bota: 200 transakcji, 80 wygranych po +2 R i 120 strat po -1 R. Skuteczność 40%, suma +40 R, średnio +0,2 R na transakcję. Przetasowałem 10 000 razy (skrypt w repo, ziarno stałe).
| Percentyl | Największy drawdown | Najdłuższa seria strat |
|---|---|---|
| 5. | 8 R | 6 |
| 50. (mediana) | 12 R | 9 |
| 95. | 19 R | 13 |
| 99. | 24 R | 16 |
Najlepsza próba miała 5 R, najgorsza 36 R. Szansa, że drawdown sięgnie co najmniej 10 R, to 84%, co najmniej 15 R - 26%, co najmniej 20 R - 4,5%. To ten sam bot i te same transakcje. Gdybym patrzył tylko na jedną kolejność, mógłbym trafić na 8 R albo na 24 R i wyciągnąć z tego zupełnie inne wnioski.
Jak z tego dobrać ryzyko
Odwracam pytanie: ile miejsca mam na drawdown? Przy limicie całkowitym 10% salda i ryzyku 0,5% salda na transakcję jedno R to 0,5% salda, więc limit mieści 20 R. Z przykładu wynika, że spadek do 20 R zdarza się w 4,5% przetasowań, a przy ryzyku 1% (limit = 10 R) już w 84%. Jeśli akceptuję szansę przekroczenia około 5%, dobieram ryzyko tak, żeby 95. percentyl drawdownu mieścił się w limicie, z zapasem na to, że przyszłość będzie gorsza od testu. Dodatkowo patrzę na samą serię strat: 13 strat z rzędu w 95. percentylu to coś, co trzeba umieć znieść psychicznie, nie tylko rachunkowo (więcej w artykule o seriach strat).
Czego Monte Carlo nie pokaże
- Nie naprawia złej strategii. Jeśli przewaga w backteście to dopasowanie do przeszłości, rozkład będzie ładny i fałszywy (patrz pułapka najlepszego wiersza).
- Zakłada niezależność transakcji. Serie na tym samym reżimie rynku (trend, wysoka zmienność) są w praktyce skorelowane, więc prawdziwe serie bywają dłuższe niż w tasowaniu.
- Nie uwzględnia zmiany kosztów, spreadu ani ślizgu w przyszłości.
- Pokazuje drawdown zamkniętych transakcji. Pływający spadek w trakcie pozycji (MAE) jest głębszy, a limity prop liczą często kapitał, nie saldo.
Checklista
- Lista transakcji pochodzi z testu z kosztami i spreadem zbliżonymi do realnych.
- Wyniki przeliczone na R, a nie w walucie (ryzyko mogło się zmieniać w czasie).
- Co najmniej kilka tysięcy tasowań i stałe ziarno, żeby wynik dało się powtórzyć.
- Patrzę na 95. i 99. percentyl drawdownu i serii strat, nie na średnią.
- Ryzyko dobrane tak, żeby 95. percentyl mieścił się w limicie konta z zapasem.
- Dla konta prop sprawdzony też limit dzienny, nie tylko całkowity.
Powiązane
- Maksymalny drawdown konta
- Risk of ruin - ryzyko utraty konta
- Ile trwa seria strat - statystyka
- Pojęcia: słowniczek, skorowidz
Źródła
Brak źródeł zewnętrznych - rachunek własny na danych przykładowych (skrypt tools/artykuly/monte_carlo_shuffle_table.py).
Ostrzeżenie: artykuł ma charakter edukacyjny i nie jest poradą inwestycyjną. Liczby z przykładu są syntetyczne i nie opisują żadnego realnego bota. Handel na rynkach finansowych wiąże się z ryzykiem utraty kapitału.