Backtesting w prostych słowach
Praktyka backtestingu to proces oceny pomysłu handlowego (na przykład reguły opartej na wejściu i wyjściu) poprzez uruchomienie go na historycznych danych cenowych. Celem jest oszacowanie, co ten pomysł mógłby dać w przeszłości, gdyby przestrzegano tych samych zasad.
Typowy backtest obejmuje (1) historyczne dane, (2) regułę lub model, który generuje działania na podstawie tych danych oraz (3) sposób obliczania wyników, takich jak zysk i strata, maksymalna strata (drawdown) oraz częstotliwość wygranych/przegranych. Te obliczenia opierają się na założeniach dotyczących tego, co działo się w każdym okresie (na przykład, jak ceny poruszały się między zarejestrowanymi punktami danych) oraz dotyczących realizacji transakcji (na przykład prowizje, spready i to, czy zlecenia zostały zrealizowane).
Dlaczego backtesting może być mniej użyteczny, niż się wydaje
Kluczowym ograniczeniem jest to, że backtest jest symulacją przeszłości, a nie obserwacją przyszłości. Nawet gdy wyniki historyczne wyglądają na silne, zależności wyuczone na podstawie historii mogą nie powtórzyć się w nowych warunkach rynkowych. Poniższe ograniczenia opisują typowe tryby awarii.
1) Braki w danych historycznych i mikrostrukturze rynku
Większość backtestów wykorzystuje zarejestrowane świece lub ticki, ale rzeczywisty handel wymaga większej szczegółowości niż to, co wiele zbiorów danych potrafi uchwycić. Jeśli Twoje dane historyczne są niekompletne, skorygowane w sposób zmieniający znaczenie ceny lub brakuje informacji potrzebnych do modelowania realizacji zleceń, backtest może odbiegać od tego, co wydarzyłoby się w handlu na żywo.
Dodatkowo mapowanie zarejestrowanych cen na możliwe realizacje jest niepewne. Na przykład, jeśli reguła zakłada realizację po konkretnej cenie, ale realny rynek mógł przejść przez ten poziom, zanim zlecenie mogło zostać wykonane, symulacja staje się zbyt optymistyczna.
2) Założenia dotyczące kosztów, jakości realizacji i poślizgu
Nawet jeśli logika strategii jest poprawna, wyniki w dużej mierze zależą od założeń dotyczących kosztów transakcyjnych i realizacji. Backtesty czasami używają uproszczonych modeli kosztów (na przykład stałych spreadów lub braku poślizgu) albo zakładają idealne wypełnianie zleceń. W praktyce spready się rozszerzają, płynność się zmienia, a poślizg może się różnić w zależności od zmienności i pory dnia.
Ponieważ niewielkie różnice kosztów mogą się kumulować w wielu transakcjach, backtest, który ignoruje lub zaniża te efekty, może zawyżać wyniki.
3) Przeuczenie i data-snooping
Backtesting może niechcący „dopasować” szum do konkretnego zbioru danych. Dzieje się tak, gdy testuje się wiele parametrów i wybiera te, które poprawiły wyniki z przeszłości. Im więcej szukasz kombinacji, która wygląda dobrze na tych samych danych, tym większa szansa, że pozorny przewagowy efekt jest specyficzny dla tego okresu, a nie ogólną własnością rynku.
Powiązanym problemem jest data-snooping: wielokrotne testowanie wielu wariantów, aż jeden z nich zacznie wyglądać na dobrze działający. Bez starannego rozdzielenia okresów treningowych i testowych silne wyniki z przeszłości mogą nie odzwierciedlać powtarzalnego mechanizmu.
4) Rynki niestacjonarne i zmieniające się warunki
Rynki nie są stabilnymi systemami. Zmieniają się reżimy zmienności, zmienia się udział uczestników, a płynność może się przemieszczać. Reguła, która działała w jednym środowisku, może zachowywać się inaczej, gdy zmieniają się spready, zmienność lub korelacje.
Nawet bez wydarzeń regulacyjnych lub strukturalnych, statystyczne właściwości szeregów cenowych mogą dryfować. Oznacza to, że założenia, które były niejawnie „wbudowane” w okres, który testowałeś, mogą już nie obowiązywać.
5) Niejasna definicja tego, co dokładnie jest testowane
Backtesty mogą być trudne do porównania, ponieważ wejścia i reguły różnią się. Dla każdego przykładu powinieneś umieć określić:
- Jaką częstotliwość danych wykorzystano (na przykład świece vs. ticki).
- Jak obliczano wskaźniki lub cechy oraz czy używały one wyłącznie informacji dostępnych w danym momencie.
- Jak podejmowano decyzje o wejściach i wyjściach oraz jak modelowano realizację zleceń.
Jeśli którykolwiek z tych szczegółów jest niejasny, backtest może nie testować zamierzonego pomysłu; może zamiast tego testować artefakt wybranej implementacji.
Weryfikacja, która może poprawić wiarygodność
Nie możesz sprawić, by backtest „udowodnił”, że strategia będzie działać, ale możesz sprawdzić, czy wyniki prawdopodobnie będą odporne.
Praktyczne podejście do weryfikacji polega na jawnej definicji założeń i testowaniu wrażliwości. Na przykład zmieniaj parametry kosztów w rozsądnych zakresach albo używaj różnych okresów historycznych z różnymi warunkami rynkowymi. Niezależnie, stosuj testy poza próbą: oceniaj reguły na danych, które nie były użyte do wyboru parametrów.
DOCUMENT END