6 listopada 2026 · dane

Twój backtest używał niewłaściwego uniwersum w danym momencie

Twój backtest używał niewłaściwego uniwersum w danym momencie

Backtest może mieć prawidłowe znaczniki czasu każdej świecy, a mimo to korzystać z informacji z przyszłości. Dzieje się tak, gdy strategia testuje dzisiejsze aktywa, które przetrwały, na danych z wielu lat, jak gdyby z góry wiedziała, które rynki pozostaną płynne, będą notowane i warte uwzględnienia.

Konstrukcja uniwersum jest częścią strategii. Jeśli system działający na żywo mógł wybierać tylko spośród aktywów dostępnych w danym momencie podejmowania decyzji, backtest musi respektować tę samą granicę. Trzy popularne uproszczenia regularnie ją zacierają.

Błąd pierwszy: backtestowanie dzisiejszej listy na całej historii

Załóżmy, że dziś wybierasz 50 największych kryptowalutowych rynków perpetual, a następnie testujesz je na danych od 2021 roku. Na liście nie ma kontraktów, które zniknęły, straciły płynność lub zostały wycofane z notowań. Jednocześnie starsze daty zyskują dostęp do rynków, które mogły jeszcze wtedy nie istnieć.

Szkody łatwo przeoczyć: strategia wygląda stabilniej, bo aktywa, które poniosły porażkę, zniknęły z próby. Na przykład reguła momentum może wyglądać świetnie na dzisiejszych 50 rynkach, choć historyczna wersja wielokrotnie lokowałaby środki w aktywach, które później załamały się lub straciły notowania na danej giełdzie. Testujesz portfel wybrany na podstawie znajomości wyniku.

Zapisuj skład uniwersum jako dane z datami. Dla każdego aktywa śledź, kiedy stało się kwalifikowalne, kiedy przestało się kwalifikować i z jakiego powodu. Przy każdym rebalansowaniu stosuj reguły wyłącznie na podstawie informacji dostępnych w danym momencie. Rynek powinien wejść do uniwersum po faktycznym rozpoczęciu notowań i wymaganym okresie rozgrzewki. Jeśli zostaje wycofany z notowań, dla jego ostatniej pozycji trzeba określić sposób zamknięcia lub rozliczenia; usunięcie wierszy danych nie jest regułą wyjścia.

Błąd drugi: ranking według statystyki zmierzonej po podjęciu decyzji

Nawet historyczne uniwersum może przeciekać informacjami, jeśli reguła doboru opiera się na oknie obejmującym dane z przyszłości. „Handluj 20 najbardziej płynnymi akcjami każdego miesiąca” brzmi rozsądnie, dopóki nie okaże się, że płynność jest mierzona na podstawie całego miesiąca, w którym strategia ma handlować.

Wyobraźmy sobie rebalansowanie w pierwszym dniu sesyjnym. Ranking według średniego dziennego obrotu w tym miesiącu po cichu wykorzystuje kolejne trzy tygodnie, by zdecydować, które aktywa kwalifikowały się pierwszego dnia. Szkody często objawiają się niezwykle dobrą zdolnością do obsługi zleceń: strategia unika aktywów, które później w miesiącu straciły płynność, choć w chwili wejścia nie mogła tego wiedzieć.

Ustal punkt odcięcia pomiaru przed momentem wyboru. Przy miesięcznym rebalansowaniu podczas pierwszej sesji możesz na przykład utworzyć ranking na podstawie poprzednich 20 zakończonych sesji, kończących się na sesji poprzedniego dnia. Następnie jasno określ opóźnienie realizacji: jeśli ranking korzysta z wczorajszego zamknięcia, czy przy założonym sposobie działania możesz złożyć zlecenie dziś na otwarciu?

Reguła wyboruWersja point-in-timeCzęsty przeciek
20 największych według obrotu w dolarachRanking na podstawie zakończonych sesji przed rebalansowaniemUwzględnienie dnia lub miesiąca rebalansowania
Notowanie na giełdzieUwzględnij faktyczne momenty rozpoczęcia i zakończenia notowańUżywanie bieżącego endpointu z symbolami dla dawnych dat
Minimalna historiaPolicz obserwacje dostępne w momencie wyboruWymóg przetrwania do przyszłości, by przejść filtr

Błąd trzeci: uznawanie brakujących danych historycznych za dowód, że aktywo się nie kwalifikowało

Archiwum dostawcy danych nie musi być kompletnym zapisem historycznego rynku. Brak symbolu może oznaczać, że dane aktywo nigdy nie istniało, giełda zmieniła konwencję nazewnictwa, dostawca nie zachował danych instrumentów wycofanych z notowań albo w źródle występuje po prostu luka. Każdy z tych przypadków ma inne konsekwencje.

Szkody przybierają postać uporządkowanego uniwersum z niewyjaśnionymi lukami. Badacze często wymagają pełnego okna wstecz, po czym po cichu wykluczają wszystko, co go nie ma. To może być uzasadniona reguła rozgrzewki, ale z założenia odrzuca też aktywa niedawno wprowadzone do obrotu. Co gorsza, jeśli braki danych dotyczą głównie rynków, które upadły, zasada „tylko kompletne dane” staje się kolejnym filtrem opartym na przeżywalności.

Traktuj kwalifikowalność, dostępność danych i rozgrzewkę strategii jako odrębne fakty. Zapisuj, dlaczego aktywo zostało wykluczone w danym dniu. Zachowuj informację o brakach w rejestrze analiz zamiast po cichu usuwać takie dane. Gdy źródło nie pozwala ustalić, czy rynek był notowany lub można było na nim handlować, zaznacz to i zmierz, jak bardzo wynik zależy od tej niepewności.

Zadbaj o odtwarzalność uniwersum

Przydatny audyt zaczyna się od jednego historycznego rebalansowania. Odtwórz listę kandydatów na podstawie dat rozpoczęcia notowań i danych dostępnych w chwili odcięcia. Ponownie oblicz wartości użyte w rankingu, korzystając wyłącznie z zakończonych obserwacji. Następnie porównaj otrzymany skład z listą faktycznie wykorzystaną w backteście.

Zapisuj regułę, punkt odcięcia, decyzje o składzie i wersję źródła razem z przebiegiem. Jeśli nie potrafisz wyjaśnić, dlaczego danego dnia jedno aktywo weszło do uniwersum, a inne pozostało poza nim, nie możesz jeszcze stwierdzić, czy strategia odkryła przewagę, czy odziedziczyła próbę ukształtowaną przez przyszłość.

Błędy w konstrukcji uniwersum rzadko objawiają się niemożliwymi cenami. Widać je po strategii, która wygodnie unika rynków, które przestały być wygodne.

błąd przeżywalnościdane point-in-timekonstrukcja uniwersumbacktesting
← Wszystkie wpisy