13 października 2026 · badania

Backtest wykazał 20% przewagi. Ile z tego wynikało z jednego błędnego znacznika czasu?

Backtest wykazał 20% przewagi. Ile z tego wynikało z jednego błędnego znacznika czasu?

Backtest wykazał 20% zysku w ujęciu rocznym. Wykorzystał 8 lat danych, 1,640 transakcji i przejrzysty podział walk-forward. Potem zastąpiliśmy aktualną historię dostawcy wartościami zapisanymi w tamtym czasie, a przewaga spadła do 3%.

Zaskakująca nie była pierwotna stopa zwrotu. Było nią 17 punktów procentowych zależnych od zrewidowanych danych. Taka wiedza z przyszłości może kryć się w publikacjach danych ekonomicznych, fundamentach spółek, składzie indeksów, a nawet w pozornie prostych polach rynkowych. Dane historyczne pokazują, co źródło podaje teraz. Zbiór danych punktowych w czasie pokazuje, co twoja strategia mogła wiedzieć wtedy.

Dlaczego dane historyczne mogą zmieniać się po danym zdarzeniu?

Niektóre wartości najpierw są szacunkami, a później zostają skorygowane. Statystyka ekonomiczna opublikowana w piątek może zostać zrewidowana w kolejnym miesiącu. Spółka może skorygować wstecznie wynik finansowy. Dostawca danych może naprawić błędny odczyt, uzupełnić brakujący interwał albo zastąpić wartość wstępną ostateczną. Baza, która przechowuje tylko najnowszą wartość, sprawia, że wszystkie te zmiany wyglądają tak, jakby zawsze były prawdziwe.

Ma to znaczenie, gdy strategia szereguje spółki według raportowanych przychodów albo zawiera transakcje na rynku po zaplanowanej publikacji danych. Jeśli widzi skorygowaną wartość kilka miesięcy wcześniej, backtest zapewnił jej informacje, których nie było na rynku w chwili podejmowania decyzji. Obliczenie sygnału może być bezbłędne, ale jego dane wejściowe nadal pochodzą z niewłaściwej wersji historii.

Łatwo tu wpaść w pułapkę: pole o nazwie date często opisuje okres, którego dotyczy wartość, a nie moment, w którym stała się dostępna. Wiersz dotyczący kwartalnych przychodów z datą 31 marca mógł zostać opublikowany dopiero w maju. Etykieta odnosi się do okresu działalności firmy, a nie do zestawu informacji dostępnych strategii.

Którego znacznika czasu powinien używać backtest?

Osobno śledź okres, którego dotyczy wartość, oraz czas jej dostępności. Jeśli to możliwe, zapisuj też czas publikacji i wczytania danych. Strategia mogła wykorzystać wartość dopiero po jej publikacji i otrzymaniu przez system; jeśli te momenty się różnią, do ostrożnej symulacji użyj późniejszego z nich.

Znacznik czasuCo opisujeDo czego służy
Czas obowiązywaniaOkres lub zdarzenie, którego dotyczy wartośćGrupuje obserwacje według mierzonego zjawiska
Czas publikacjiMoment, w którym źródło opublikowało tę wersjęZapobiega pojawieniu się publikacji, zanim faktycznie nastąpiła
Czas wczytaniaMoment otrzymania tej wersji przez systemUwzględnia opóźnienia w dostawie i późniejsze uzupełnienia danych

Załóżmy na przykład, że kwartalne przychody spółki obejmują okres od stycznia do marca, zostają podane 8 maja o 16:15 czasu wschodniego, a do twojego repozytorium badawczego trafiają o 16:17. Strategia podejmująca decyzję na zamknięciu sesji 8 maja nie może skorzystać z tego raportu, jeśli jej decyzja w chwili zamknięcia zapadła o 16:00. Strategia podejmująca decyzję następnego ranka już może. Sama data końca kwartału nie pozwala odpowiedzieć na żadne z tych pytań.

Jak sprawdzić, czy wyniki napędzają rewizje?

Uruchom tę samą strategię 2 razy: raz z wersją danych dostępną w chwili każdej historycznej decyzji, a drugi raz z najnowszą, zrewidowaną historią. Pozostaw bez zmian założenia dotyczące realizacji, uniwersum i kod. Różnica to wynik analizy wrażliwości na rewizje, a nie porównanie 2 różnych strategii.

Następnie sprawdź, skąd bierze się różnica. Czy wyniki zmieniają się w dniach publikacji? Czy największe rozbieżności dotyczą kilku spółek, które skorygowały dane wstecznie, albo kilku poprawionych obserwacji? Czy strategia zawiera transakcje przed właściwą publikacją? Audyt poszczególnych zdarzeń często wyjaśnia więcej niż kolejny wykres skumulowanych stóp zwrotu.

20%stopa zwrotu według najnowszych danych historycznych
3%stopa zwrotu według wartości punktowych w czasie
17 ppróżnica zależna od rewizji

To przykład, a nie uniwersalna kara. Przydatnym wynikiem jest zestawienie dla twojej strategii, z tymi samymi transakcjami i kosztami, gdzie tylko się da. Jeśli wersja po rewizji wypada znacznie lepiej, zanim zaufasz głównemu wynikowi backtestu, ustal, które pola i daty odpowiadają za tę różnicę.

Co powinien obejmować audyt danych punktowych w czasie?

Zacznij od pól, z których faktycznie korzysta twoja strategia. Dla każdego ustal źródło, znaczenie znacznika czasu, zasady rewizji i to, czy można pobrać wcześniejsze wersje. Zapytaj dostawcę, jak zapisuje korekty: czy nadpisuje wiersze, dodaje wiersze z nowymi wersjami, czy prowadzi osobny dziennik audytowy. Określenie „historyczne” na stronie produktu nie rozstrzyga tej kwestii.

Zadbaj też o praktyczny zakres audytu. Jeśli twoja strategia korzysta wyłącznie z transakcji giełdowych i świec, rewizje danych ekonomicznych mogą nie mieć znaczenia. Korekty świec i uzupełnienia danych przez dostawcę nadal mogą być istotne, szczególnie gdy sygnał zależy od mało płynnego rynku lub precyzyjnie określonego okna zdarzeń.

Gdy historia punktowa w czasie jest niedostępna

Nie zakładaj po cichu, że dzisiejsza wartość była znana wczoraj. Oznacz pole jako ograniczenie, pomiń je w twierdzeniach wymagających historycznej dostępności albo zastosuj ostrożne opóźnienie i pokaż, jak zmienia ono wynik. Opóźniony wskaźnik zastępczy może być przydatny w badaniach, o ile jawnie podasz opóźnienie i uwzględnisz to ograniczenie przy prezentacji wyniku.

Zadaniem backtestu jest odtworzenie decyzji na podstawie zestawu informacji dostępnych w danym momencie. Jeśli twoje dane pokazują tylko najnowszą wersję, uczciwy wynik ma swoje ograniczenia: pozwala sprawdzić strategię względem dzisiejszej rekonstrukcji historii, ale nie pozwala ustalić dokładnie, co mógł zobaczyć historyczny agent.

backtestinginżynieria danychzdarzenia korporacyjnedane punktowe w czasie
← Wszystkie wpisy