14 septembrie 2026 · date

Backtestul tău macro a tranzacționat raportul revizuit privind locurile de muncă

Backtestul tău macro a tranzacționat raportul revizuit privind locurile de muncă

Dragă creatorule al strategiei bazate pe raportul privind locurile de muncă,

Ai construit o regulă simplă: după raportul privind locurile de muncă din SUA, strategia ta deține un ETF de acțiuni timp de 5 sesiuni dacă creșterea lunară a numărului de angajați depășește 175,000. În caz contrar, rămâne în numerar. Ai programat intrarea după deschiderea pieței de acțiuni, ai inclus costurile de tranzacționare și ai păstrat pragul fix. Apoi ai descărcat o serie istorică privind numărul de angajați și ai folosit-o pentru a reconstrui fiecare semnal.

Problema rămasă este descărcarea. O serie economică istorică poate include estimări revizuite care nu erau disponibile la datele la care, chipurile, tranzacționa strategia ta. Pentru a testa corect un semnal macro, ai nevoie de versiunea disponibilă la fiecare moment al deciziei. Mutarea intrării cu 1 bară mai încolo nu repară o cifră publicată 2 luni mai târziu.

Observația ta din ianuarie are mai multe aniversări

Să luăm această cronologie fictivă a publicărilor. Datele și variațiile numărului de angajați ilustrează mecanismul; nu sunt rezultate economice raportate.

PublicareLuna de referințăVariația raportată a numărului de angajațiRegula ta la momentul publicării
7 februarie, 08:30 ETIanuarie+150,000Rămâne în numerar
7 martie, 08:30 ETIanuarie, revizuită+185,000Nu rescrie decizia din februarie
4 aprilie, 08:30 ETIanuarie, revizuită din nou+210,000Nu rescrie decizia din februarie

Dacă descărcarea ta indică +210,000 pentru ianuarie, simularea ta intră în ETF în februarie. Regula ta reală ar fi rămas în numerar. Fiecare preț, marcaj temporal al ordinului și comision poate fi corect, dar tranzacția în ansamblu este fictivă.

Nu poți presupune că această contaminare îmbunătățește performanța. Revizuirile pot crea tranzacții câștigătoare sau pierzătoare, ori le pot elimina pe unele dintre ele. Problema este că simularea ta răspunde la o întrebare pe care strategia nu ar fi putut să și-o pună atunci.

Iar ianuarie este doar perioada măsurată. Nu este data la care ai aflat măsurătoarea. Un rând etichetat 1 ianuarie nu-ți dă voie să tranzacționezi pe baza lui în 1 ianuarie.

Păstrează istoricul disponibilității fiecărei valori

Tabelul tău de cercetare are nevoie de mai mult decât o lună și o cifră. Păstrează perioada de referință, valoarea, marcajul temporal al publicării, identificatorul versiunii și sursa. Pentru o colectare continuă, înregistrează și momentul în care sistemul tău a primit publicarea. Păstrează versiunile vechi în loc să le suprascrii valorile.

La momentul unei decizii, selectează cea mai nouă versiune eligibilă a fiecărei observații al cărei marcaj temporal de disponibilitate nu este ulterior deciziei. Apoi calculează caracteristicile din acel instantaneu reconstruit.

Regula ta de extragere: mai întâi filtrează înregistrările după ce era disponibil, apoi selectează versiunile aplicabile și, în final, calculează semnalul. Dacă calculezi caracteristicile pe baza istoricului revizuit de astăzi și deplasezi rezultatul ulterior, scurgerea de informații rămâne.

Perioada ta de deținere de 5 sesiuni nu face ca această evidență să fie opțională. Îți oferă mai multă libertate în alegerea unui moment prudent pentru intrare; nu-ți dă acces anticipat la revizuiri.

Pentru cercetări mai vechi, este posibil să ai dovezi privind momentul publicării, dar nicio înregistrare a momentului în care ai primit tu datele. Păstrează explicit această distincție. Poți modela accesul după un moment de publicare documentat, adăugând o întârziere precizată. Nu poți prezenta această presupunere drept o livrare istorică măsurată.

Vei avea nevoie și de un marcaj temporal care ține cont de fusul orar. Stochează ora locală documentată a publicării și convertește-o corect; o diferență UTC fixă pentru New York nu va funcționa la trecerea la ora de vară sau la cea de iarnă. Oferă-ți această mică favoare. Tu, cel din septembrie, n-ar trebui să descifrezi coloana numită date_actual_final2.

Caracteristicile tale mobile au nevoie de întregul istoric al versiunilor

Să presupunem că înlocuiești pragul fix cu „creșterea numărului de angajați depășește media ultimelor 12 luni”. Acum ai nevoie de observațiile anterioare așa cum erau la momentul deciziei, inclusiv revizuirile deja publicate până atunci.

Folosirea primei publicări pentru fiecare lună, la nesfârșit, definește o caracteristică diferită. Poate fi o alegere legitimă dacă vrei în mod explicit un istoric al anunțurilor inițiale. Nu reconstruiește imaginea economică disponibilă într-o anumită dimineață, deoarece setul de informații disponibil atunci poate include deja revizuiri ale lunilor anterioare.

Dacă derivezi variațiile lunare ale numărului de angajați din nivelurile de ocupare, reconstruiește seria nivelurilor pentru versiunea relevantă înainte de a calcula diferențele. Combinarea unui nivel publicat recent cu nivelul din luna precedentă, preluat dintr-o versiune mai veche, poate produce artificial o variație care nu a apărut în nicio versiune publicată.

Prin urmare, trebuie să precizezi ce înseamnă caracteristica ta: anunțurile inițiale, cea mai recentă imagine economică disponibilă sau revizuirile în sine. „Creșterea numărului de angajați” lasă prea multe lucruri nedefinite.

Repară o singură publicare înainte să reiei 10 ani de date

Poți începe cu ALFRED, care oferă istoricul versiunilor pentru multe serii economice. Verifică dacă seria și perioada care te interesează sunt acoperite. O dată a versiunii nu stabilește de una singură disponibilitatea intrazilnică; asociaz-o cu ora documentată a publicării înainte de a o folosi pentru un semnal din aceeași zi.

Pentru primul audit, alege o publicare și reconstruiește-o manual:

  1. Găsește publicarea arhivată și înregistrează marcajul temporal al publicării, luna de referință și valoarea inițială.
  2. Reconstruiește instantaneul intrărilor pe care strategia ta l-ar fi primit înainte de intrare.
  3. Calculează manual semnalul și compară-l cu cel din simularea ta.
  4. Adaugă o revizuire ulterioară în depozitul de date și verifică dacă decizia anterioară rămâne neschimbată.

Această ultimă verificare este deosebit de utilă într-un flux automatizat de cercetare. Oferă agentului tău de cercetare momentul-limită al instantaneului și identificatorii versiunilor selectate, alături de valorile caracteristicilor. Ai nevoie de suficiente dovezi pentru a urmări o tranzacție până la o anumită publicare, chiar și după ce baza de date a crescut.

După ce ai reprodus acea singură decizie, reia istoricul și compară diferențele dintre semnale înainte de a compara randamentele. Numără intrările create, eliminate sau mutate în urma remedierii. Vei afla mai multe din deciziile schimbate decât dintr-un singur Sharpe comparat înainte și după.

Tranzacția ta din februarie trebuie să se bazeze pe informațiile disponibile în februarie. Lasă revizuirea din aprilie în aprilie.

date disponibile la momentul respectivdate macroeconomicebiais de anticiparebacktesting
← Toate articolele