O co w tym wszystkim w ogóle chodzi?
W każdym przypadku należy wypracować przewagę rynkową, by móc zarabiać. Podejście intuicyjne jest tylko iluzorycznie prostsze od pozostałych. Intuicja, w naszym życiowym rozumieniu, na rynku finansowym nie prowadzi zwykle do dobrych decyzji.
Kij baseballowy i piłka kosztują razem $1.10.
Sam kij kosztuje jednego dolara więcej niż piłka.
Ile kosztuje piłka?
Cel
Pomysł
Implementacja i testy na małym zbiorze danych
Rozbudowane testy (np. Walk-Forward, Monte Carlo)
Inkubacja/handel papierowy
Wdrożenie na rynek i konserwacja
Wycofanie z rynku
Ciężko dojechać do celu, bez jego wyznaczenia
Musi być realistyczny
Gdybym miał osiem godzin na ścięcie drzewa, spędziłbym sześć na ostrzeniu siekiery :-)
Przykład: chcę zbudować strategię na kontrakt terminowy ES, CAGR=50%, maxDD<25%. Daję sobie na to 2 tygodnie czasu.
Musimy znaleźć sposób, który posłuży do budowy strategii
Wiele źródeł pomysłów:
Twórzmy na bieżąco katalog pomysłów w postaci różnych filtrów, wejść/wyjść, metod zarządzania pozycją czy całych systemów
To pozwoli nam później w prostszej budowie i modyfikacji systemów w przyszłości
Ogólna zasada: dążmy do prostych rozwiązań (vide Brzytwa Ockhama)
Pomysł może ewoluować w czasie implementacji, przy próbie różnych metod wejścia/wyjścia z pozycji
Próba różnych metod wejścia w rynek, np.
oparte na wybiciach (breakout)
oparte na powrocie do średniej (mean reversion)
formacje
Próba różnych metod wyjścia z rynku, np.
kasowanie zysków (Profit Target)
kasowanie strat (Stop Loss)
formacje
stopy czasowe
Stop & Reverse (cały czas w rynku --> zamknięcie pozycji oznacza otwarcie przeciwnej)
Zapisanie pomysłu w postaci kodu języka
Testy wstępne:
Uważać na "oszukiwanie" przez "nadużywanie" danych historycznych
Optymalizacja powinna generować zyski na większości przypadków (np. 80%)
Dążyć do minimalizacji liczby parametrów i liczby iteracji (kroków parametrów)
Większość strategii i tak nie przejdzie tych testów -- musimy być cierpliwi, pracowici i zorganizowani!
Uważać na jakość danych (scalanie kontraktów terminowych, CFD, ...)!
Mamy gotową strategię, która przeszła testy wstępne na niewielkim zbiorze danych
Wykorzystujemy pozostałe dane (można zostawić kilka miesięcy na symulowny handel papierowy)
Na tym etapie nie możemy modyfikować strategii, jeśli wynik przeprowadzonych testów okaże się niesatysfakcjonujący!!!
IS (100%)
Live
Wykorzystane 100% danych historycznych (In Sample, IS). Zdecydowanie nie polecane -- model jest budowany i optymalizowany, bez możliwości testu.
Problem: model niemal na pewno jest przeoptymalizowany, jeśli był poddawany procesowi optymalizacji.
Wykorzystane 70% danych historycznych do budowy i optymalizacji (In Sample, IS), oraz 30% do weryfikacji (Out of Sample, OOS).
Problem: "spalamy" dużo danych na budowe i optymalizację, mało mamy wyników z bloku danych OOS. Niektórzy tak robią (vide Andrea Unger), ale niektórzy idą krok dalej...
IS (70%)
OOS (30%)
Walk Forward Testing -- pozwala na dwie rzeczy:
(1) Więcej danych OOS, więcej transakcji "testowych"
(2) Cookresowa reoptymalizacja modelu
Problem: "oszukując" wciąż możemy przeoptymalizować model
IS
OOS
IS
OOS
IS
OOS
Analiza MC zakłada, że przewaga rynkowa testowanej strategii nie uległa (znaczącej) zmianie! Jeśli to założenie nie jest spełnione, sugerowanie się wynikami MC jest bez sensu!
IS (50%)
IS (50%)
OOS (50%)
OOS (50%)
Ogólna zasada analizy wyników backtestu:
Jeśli coś wygląda zbyt dobrze, to prawdopodobnie tak jest. :-)
Na prawdę jest wiele sposobów na to, by testy wyglądy lepiej niż rzeczywistość. :-)
Na to pytanie nie ma jednoznacznej odpowiedzi. Może być np. założenie odpowiedniego poziomu CAGR, maxDD, MAR, RoR, stopień korelacji z innymi strategiami w porfelu, itd., itp.
Daniel Kahneman on Intuition, Causality, Loss Aversion and More
3 lessons on decision-making from a poker champion | Liv Boeree
Robert Pardo
Kevin Davey
Michael Harris
David Aronson