14 września 2026 · dane

Twój backtest makro handlował na zrewidowanym raporcie o zatrudnieniu

Twój backtest makro handlował na zrewidowanym raporcie o zatrudnieniu

Drogi twórco strategii filtrującej dane o zatrudnieniu,

Zbudowałeś prostą regułę: po raporcie o zatrudnieniu w USA strategia utrzymuje ETF akcyjny przez 5 sesji, jeśli miesięczny wzrost liczby etatów przekracza 175,000. W przeciwnym razie pozostaje w gotówce. Zaplanowałeś wejście po otwarciu rynku akcji, uwzględniłeś koszty transakcyjne i ustaliłeś próg na stałe. Następnie pobrałeś historyczny szereg danych o zatrudnieniu i wykorzystałeś go do odtworzenia każdego sygnału.

Pozostał problem z pobranymi danymi. Historyczny szereg ekonomiczny może zawierać zrewidowane szacunki, które nie były dostępne w dniach, w których strategia rzekomo zawierała transakcje. Aby uczciwie przeprowadzić backtest sygnału makro, potrzebujesz wersji dostępnej w chwili podejmowania każdej decyzji. Przesunięcie wejścia o 1 świecę nie naprawi problemu z liczbą opublikowaną 2 miesiące później.

Twoja styczniowa obserwacja ma kilka dat publikacji

Rozważmy tę fikcyjną historię publikacji. Daty i zmiany zatrudnienia ilustrują mechanizm; nie są rzeczywistymi wynikami ekonomicznymi.

PublikacjaMiesiąc referencyjnyPodana zmiana liczby etatówDziałanie według Twojej reguły w chwili publikacji
7 lutego, 08:30 ETStyczeń+150,000Pozostań w gotówce
7 marca, 08:30 ETStyczeń, po rewizji+185,000Nie zmienia decyzji z lutego
4 kwietnia, 08:30 ETStyczeń, po kolejnej rewizji+210,000Nie zmienia decyzji z lutego

Jeśli pobrane dane pokazują +210,000 dla stycznia, odtworzona symulacja otworzy pozycję w ETF-ie w lutym. Twoja rzeczywista reguła pozostałaby w gotówce. Każda cena, znacznik czasu zlecenia i prowizja mogą się zgadzać, a cała transakcja i tak będzie fikcyjna.

Nie zakładaj, że takie zanieczyszczenie danych poprawi wyniki. Rewizje mogą prowadzić do zyskownych albo stratnych transakcji, a także usuwać jedne i drugie. Problem polega na tym, że symulacja odpowiada na pytanie, którego Twoja strategia nie mogła zadać w tamtym czasie.

Styczeń to okres, którego dotyczy pomiar. To nie data, w której poznano jego wynik. Wiersz oznaczony datą 1 stycznia nie uprawnia Cię do handlu tą wartością 1 stycznia.

Zapisuj historię dostępności każdej wartości

Twoja tabela badawcza potrzebuje czegoś więcej niż miesiąca i liczby. Zachowaj okres referencyjny, wartość, znacznik czasu publikacji, identyfikator wersji danych i źródło. Jeśli regularnie gromadzisz dane, zapisuj też, kiedy Twoje systemy odebrały publikację. Zachowuj poprzednie wersje zamiast nadpisywać ich wartości.

Dla danego znacznika czasu decyzji wybierz najnowszą kwalifikującą się wersję każdej obserwacji, której znacznik dostępności nie jest późniejszy niż czas tej decyzji. Następnie oblicz cechy na podstawie tak odtworzonego stanu danych.

Zasada pobierania danych: najpierw ogranicz rekordy do informacji dostępnych w danym czasie, potem wybierz odpowiednie wersje, a na końcu oblicz sygnał. Obliczenie cech na podstawie dzisiejszej, zrewidowanej historii i późniejsze przesunięcie wyniku nadal pozostawia przeciek.

Pięcios sesyjny okres utrzymywania pozycji nie sprawia, że można pominąć te zapisy. Daje Ci więcej swobody w wyborze ostrożnej pory wejścia, ale nie zapewnia wcześniejszego dostępu do rewizji.

W starszych badaniach możesz dysponować dowodem publicznej publikacji, ale nie mieć żadnego zapisu czasu odbioru przez własny system. Wyraźnie rozróżniaj te kwestie. Możesz modelować dostęp po udokumentowanym czasie publikacji, przyjmując określone opóźnienie. Nie możesz przedstawiać tego założenia jako zmierzonego historycznego czasu dostarczenia.

Przyda Ci się też znacznik czasu uwzględniający strefę czasową. Zapisuj udokumentowany lokalny czas publikacji i poprawnie go przeliczaj; stałe przesunięcie UTC dla Nowego Jorku zawiedzie przy zmianie czasu na letni. Podziękujesz sobie za tę drobną przysługę. Wrześniowe Ty nie powinno musieć rozszyfrowywać kolumny marcowego Ciebie nazwanej date_actual_final2.

Cechy kroczące wymagają pełnej historii wersji danych

Załóżmy, że zastępujesz stały próg regułą „wzrost zatrudnienia przekracza średnią z poprzednich 12 miesięcy”. Potrzebujesz teraz wcześniejszych obserwacji w wersji dostępnej w chwili danej decyzji, wraz z rewizjami opublikowanymi do tego momentu.

Korzystanie zawsze z pierwszej publikacji danych za każdy miesiąc definiuje inną cechę. To może być uzasadnione, jeśli wyraźnie chcesz analizować historię pierwotnych komunikatów. Nie odtwarza jednak obrazu gospodarki dostępnego w konkretny poranek, bo ówczesny zbiór informacji mógł już uwzględniać rewizje wcześniejszych miesięcy.

Jeśli wyliczasz miesięczne zmiany liczby etatów na podstawie poziomów zatrudnienia, przed obliczeniem różnic odtwórz szereg poziomów dla odpowiedniej wersji danych. Połączenie świeżo opublikowanego poziomu z poziomem za poprzedni miesiąc z wcześniejszej wersji może stworzyć zmianę, której nie było w żadnym opublikowanym zestawie danych.

Musisz więc określić, co oznacza Twoja cecha: pierwotne komunikaty, najnowszy dostępny obraz gospodarki czy same rewizje. Sam „wzrost zatrudnienia” pozostawia zbyt wiele niedopowiedzeń.

Napraw jedną publikację, zanim ponownie uruchomisz 10 lat danych

Możesz zacząć od ALFRED, który udostępnia historię wersji wielu szeregów ekonomicznych. Sprawdź pokrycie dla konkretnego szeregu i okresu. Sama data wersji nie potwierdza dostępności w ciągu dnia; przed użyciem jej w sygnale na ten sam dzień zestaw ją z udokumentowanym czasem publikacji.

Na pierwszy audyt wybierz jedną publikację i odtwórz ją ręcznie:

  1. Znajdź zarchiwizowaną publikację i zapisz jej znacznik czasu publikacji, miesiąc referencyjny oraz wartość początkową.
  2. Odtwórz stan danych wejściowych, który Twoja strategia otrzymałaby przed wejściem.
  3. Ręcznie oblicz sygnał i porównaj go z wynikiem odtworzenia.
  4. Dodaj późniejszą rewizję do magazynu danych i sprawdź, czy wcześniejsza decyzja pozostaje bez zmian.

Ta ostatnia kontrola jest szczególnie przydatna w zautomatyzowanym procesie badawczym. Przekaż agentowi badawczemu graniczny czas stanu danych oraz identyfikatory wybranych wersji obok wartości cech. Potrzebujesz wystarczających dowodów, by prześledzić transakcję do konkretnej publikacji, nawet gdy bazowe dane znacznie się rozrosną.

Gdy uda się odtworzyć tę pojedynczą decyzję, ponownie uruchom całą historię i porównaj rozbieżności sygnałów, zanim porównasz zwroty. Policz wejścia dodane, usunięte lub przesunięte wskutek naprawy. Te zmienione decyzje powiedzą Ci więcej niż pojedyncze porównanie Sharpe'a przed i po.

Twoja lutowa transakcja musi opierać się na informacjach dostępnych w lutym. Zostaw kwietniową rewizję w kwietniu.

dane point-in-timedane makroekonomicznebłąd look-aheadbacktesting
← Wszystkie wpisy