Jak można odpowiedzialnie przeprowadzić backtesting wskaźnika Trend Intensity Index?
Zdefiniuj mechanikę wskaźnika i swoje założenia dotyczące danych
Trend Intensity Index to miara w stylu wskaźnika, która przekształca zachowanie ceny w ilościową wartość aktywności trendu. Aby przeprowadzić jego backtesting w odpowiedzialny sposób, najpierw zdefiniuj dokładny wzór, którego używasz, w tym:
- pola cenowe użyte jako dane wejściowe (na przykład tylko cena zamknięcia vs. inne pola),
- długość okna wstecznego (lookback),
- sposób skalowania lub normalizacji wartości,
- sposób obsługi brakujących świec, luk między sesjami oraz granic sesji.
Następnie zdefiniuj zasady dotyczące danych do backtestingu. Użyj tej samej konstrukcji świec, którą obserwowałbyś w warunkach rzeczywistych (interwał czasowy świecy, wyrównanie znaczników czasu oraz to, czy wskaźniki są obliczane na zamknięciu świecy, czy z wykorzystaniem dostępnych danych wewnątrzświecowych). Udokumentuj założenia dla każdego przykładu obliczeniowego, aby inna osoba mogła odtworzyć serie z Twoich surowych danych.
Oddziel stabilną mechanikę od zmiennych warunków rynkowych lub dostawcy
Częstym błędem w backtestingu wskaźników jest traktowanie historycznych wyników tak, jakby pochodziły z tego samego środowiska wykonawczego, z którym miałbyś do czynienia w praktyce. Rozdziel te dwie kwestie:
- Stabilna mechanika: transformacja wskaźnika od przeszłych cen do wartości wskaźnika.
- Zmienne warunki: zmiany reżimu rynkowego, różnice w płynności, zachowanie spreadu bid/ask oraz to, jak zlecenia byłyby faktycznie realizowane.
Nawet jeśli nie symulujesz transakcji, nadal potrzebujesz spójnej zasady określającej, co wartość wskaźnika oznacza w momencie, w którym miałbyś działać (na przykład „obliczona z wykorzystaniem informacji dostępnych do poprzedniej świecy”). Jeśli nie utrwalisz tej zasady czasowej, wyniki mogą odzwierciedlać obciążenie wynikające z patrzenia w przyszłość (look-ahead bias).
Modeluj koszty, ograniczenia wykonania i obsługę pozycji
Jeśli Twój backtesting obejmuje jakąkolwiek miarę wynikową zależną od transakcji, musisz uwzględnić koszty i ograniczenia wykonania, ponieważ często eliminują one optymistyczne wnioski dotyczące wskaźników. W odpowiedzialnym podejściu koszty nie są „dodatkiem na końcu”; są częścią projektu eksperymentu.
Co najmniej określ założenia dotyczące:
- kosztów transakcyjnych (prowizje, spready lub konserwatywna łączna stopa kosztów),
- tego, czy realizacja następuje po cenie bid/ask, czy po cenie średniej (mid), oraz jak traktowany jest poślizg (slippage),
- częstotliwości rebalansowania lub otwierania/zamykania pozycji (częstotliwość reguł ma znaczenie),
- sposobu obsługi częściowego wypełnienia zleceń lub opóźnień w realizacji (nawet prosty limit może być lepszy niż ignorowanie wykonania).
Zdecyduj również, co oznacza „wykorzystanie sygnału”. Jeśli używasz wskaźnika do zdefiniowania stanu (na przykład trendowy vs. nietrendowy), a nie jako samodzielnego wyzwalacza transakcji, opisz tę regułę stanu wprost i przetestuj ją jako problem klasyfikacyjny w czasie.
Kontroluj obciążenie dzięki rygorystycznemu projektowi oceny
Backtesting wskaźników jest podatny na wiele obciążeń. Zaprojektuj eksperyment tak, aby je wykrywać, a nie ukrywać:
-
Przeciążenie parametrów (overfitting): Jeśli testujesz wiele długości okien lub progów, aż wyniki będą wyglądać dobrze, możesz dopasować się do szumu. Użyj ograniczonej przestrzeni poszukiwań i zapisz, co przeszukiwałeś.
-
Obciążenie wynikające z patrzenia w przyszłość (look-ahead bias): Upewnij się, że wartość wskaźnika użyta w czasie t wykorzystuje wyłącznie informacje dostępne w momencie podejmowania decyzji lub wcześniej.
-
Podglądanie danych (data snooping): Jeśli testujesz wiele hipotez i zatrzymujesz tylko najlepszą, raportowane wyniki są zawyżone.
Praktyczną metodą kontroli obciążenia jest walidacja walk-forward (zwana również oceną kroczącą lub poza próbą). Na przykład wybierz okres treningowy do dobrania parametrów, a następnie przetestuj na kolejnym, sąsiadującym okresie bez ponownego dostrajania. Powtórz to dla kilku części (foldów) i podsumuj stabilność, a nie pojedynczy szczytowy wynik.
Uwzględnij co najmniej jedno istotne ograniczenie i scenariusz awarii
Co najmniej jedno ograniczenie powinno być przetestowane jawnie. Częstym scenariuszem awarii wskaźników aktywności trendu jest to, że mogą działać dobrze w jednym reżimie (gładkie trendy), a słabo w innych (rynki boczne lub nagłe warunki powrotu do średniej). Innym scenariuszem awarii jest wrażliwość na interwał czasowy: wskaźnik może zachowywać się inaczej na świecach 1-minutowych niż na dziennych.
Aby to ująć konkretnie, przeprowadź test warunków skrajnych (stress test) dla reżimów, dzieląc backtesting na różne stany rynku (na przykład na podstawie zrealizowanej zmienności lub przybliżeń siły trendu). Porównaj, czy związek wskaźnika z wybranym celem oceny utrzymuje się w różnych reżimach, a nie tylko w jednym okresie.
Zweryfikuj za pomocą testów poza próbą i powtarzalności
Odpowiedzialny backtesting powinien umożliwiać niezależną weryfikację. Oznacza to:
- kod lub kroki obliczeniowe są powtarzalne na podstawie opisanych danych wejściowych,
- ta sama mechanika wskaźnika jest używana zarówno w treningu, jak i w testowaniu,
- wyniki poza próbą są obliczane bez ponownej optymalizacji po podziale,
- wyniki są raportowane z myślą o niepewności (na przykład porównując rozkłady wyników między częściami (foldami), a nie opierając się na pojedynczym najlepszym przebiegu).