Co oznacza backtesting: definicja, działanie i kluczowe ograniczenia
Bezpośrednia odpowiedź
Backtesting to proces testowania pomysłu handlowego na podstawie historycznych danych rynkowych w celu sprawdzenia, jak ten pomysł mógłby się zachować, gdyby został zastosowany w przeszłości. W backtestingu na rynku Forex pomysł jest zwykle przekształcany w jednoznaczne zasady (na przykład, kiedy wejść w pozycję, kiedy ją zamknąć i jaką wielkością handlować). Celem jest ocena i nauka, a nie przewidywanie.
Mechanizm i definicja
Praktyczny backtest przekształca koncepcję w powtarzalną listę kontrolną. Typowe dane wejściowe i elementy obejmują:
- Historyczny szereg cenowy: dane z oznaczeniem czasu użyte do testu. Na rynku Forex dane zazwyczaj obejmują ceny (i mogą być uzupełnione o założenia dotyczące spreadów lub realizacji zleceń).
- Zasady strategii: warunki wejścia i wyjścia, metoda określania wielkości pozycji oraz logika czasu utrzymywania pozycji. Zasady te muszą być jednoznaczne.
- Model realizacji zleceń: sposób, w jaki zakłada się realizację transakcji. Częstym uproszczeniem jest założenie, że transakcje są realizowane po określonej cenie, ale rzeczywista realizacja zależy od bid/ask, poślizgu cenowego, opóźnień i płynności.
- Koszty: prowizje, efekty swap/finansowania oraz koszty transakcyjne. Jeśli koszty zostaną pominięte lub jedynie przybliżone, wyniki mogą być zawyżone.
- Założenia i ustawienia: interwał czasowy, sposób ujęcia dźwigni (jeśli jest modelowana), limity ryzyka oraz sposób obsługi brakujących danych.
Podczas backtestu zasady są stosowane krok po kroku do danych historycznych. System rejestruje, jakie transakcje miałyby miejsce, i oblicza metryki wyników, takie jak maksymalne obsunięcie kapitału (drawdown), miary rentowności i częstotliwość transakcji. Kluczowe jest to, że metryki te są funkcją zarówno pomysłu, jak i przyjętych założeń.
Dowód lub przykład (z wyraźnymi założeniami)
Rozważmy uproszczony pomysł na rynku Forex zapisany w formie zasad:
- Użyj tylko jednej pary walutowej.
- Za każdym razem, gdy wystąpi warunek A, otwórz pozycję po cenie średniej (mid) z następnego kroku czasowego.
- Zamknij pozycję po ustalonej liczbie świec (na przykład po N świecach).
- Użyj stałej wielkości pozycji.
- Zignoruj koszty finansowania i załóż brak poślizgu cenowego.
Jeśli warunek A wystąpi wiele razy w wybranym oknie historycznym, backtest wygeneruje sekwencję hipotetycznych wejść i wyjść, a następnie zagreguje wyniki. Jednak ten przykład pokazuje główną ideę weryfikacji: jeśli zmienisz którekolwiek założenie—takie jak realizacja po cenie bid/ask zamiast mid, dodanie spreadu, uwzględnienie swapu/finansowania lub użycie innej liczby świec—wyniki mogą się znacząco zmienić.
Ograniczenia i ryzyka
Backtesting ma istotne tryby awarii:
- Przeuczenie (overfitting): Gdy zasady są wielokrotnie dostosowywane do jednego okresu historycznego, mogą uchwycić szum zamiast powtarzalnego wzorca.
- Zmiana reżimu rynkowego: Zachowanie rynku Forex może się zmieniać (zmienność, płynność, warunki makroekonomiczne). Historyczne zależności mogą nie utrzymać się w przyszłości.
- Nierealistyczna realizacja zleceń: Backtesty często wykorzystują uproszczone ceny realizacji. Rzeczywisty handel może różnić się ze względu na zmienność spreadu, poślizg cenowy i opóźnione realizacje.
- Jakość i spójność danych: Nieprawidłowe dopasowanie czasowe, błąd posiadania informacji z przyszłości (look-ahead bias) lub niespójne dane mogą sprawić, że wyniki będą wyglądać lepiej, niż byłyby w czasie rzeczywistym.
- Pominięcie kosztów: Ignorowanie prowizji, spreadów i finansowania może zawyżyć pozorne wyniki.
Ze względu na te ograniczenia, historyczny sukces nie jest dowodem na to, że te same zasady będą działać w przyszłości.
Weryfikacja lub kolejne pytanie
Aby niezależnie zweryfikować backtest, skup się na tym, czy proces jest sprawdzalny i możliwy do obalenia:
- Określ każde założenie (użyte ceny, założenia dotyczące realizacji, koszty i okno czasowe).
- Zastosuj testowanie poza próbą: oceń na innym okresie czasu niż ten, który został użyty do dopracowania zasad.
- Przetestuj odporność: zmieniaj parametry i sprawdź, czy wynik zależy od wąskiego ustawienia.
- Sprawdź błąd posiadania informacji z przyszłości: upewnij się, że wykorzystywane są tylko informacje dostępne w momencie podejmowania decyzji.
Przydatne kolejne pytanie brzmi: „Które konkretne założenia, gdyby zostały zmienione, miałyby najsilniejszy wpływ na wyniki?” Jeśli nie możesz na nie odpowiedzieć, backtest może nie być wiarygodnie interpretowalny.