Un backtest può assegnare il timestamp corretto a ogni candela e usare comunque informazioni del futuro. Succede quando la strategia viene testata sugli asset sopravvissuti oggi lungo anni di dati storici, come se avesse saputo quali mercati sarebbero rimasti liquidi, quotati e degni di essere mantenuti.
La costruzione dell’universo fa parte della strategia. Se il sistema live poteva scegliere solo tra gli asset disponibili al momento di ogni decisione, il backtest deve rispettare lo stesso limite. Tre scorciatoie lo cancellano regolarmente.
Errore uno: testare l’elenco di oggi su tutta la storia
Supponiamo che oggi selezioni i 50 mercati perpetual crypto più grandi e poi li testi dal 2021. L’elenco esclude i contratti scomparsi, diventati illiquidi o delistati. Inoltre, consente alle date più remote di accedere a mercati che forse non esistevano ancora.
I danni sono facili da non vedere: la strategia sembra più stabile perché gli asset che hanno fallito sono spariti dal campione. Per esempio, una regola momentum potrebbe apparire eccellente sui 50 mercati di oggi, mentre la sua versione storica avrebbe allocato ripetutamente a nomi poi crollati o rimossi dalla quotazione sulla loro piattaforma. Hai testato un portafoglio selezionato conoscendo già l’esito.
Registra l’appartenenza all’universo con le relative date. Per ogni asset, annota quando è diventato idoneo, quando ha smesso di esserlo e perché. A ogni ribilanciamento, applica le regole usando solo le informazioni disponibili in quel momento. Un mercato dovrebbe entrare dopo la sua effettiva quotazione e l’eventuale periodo minimo di riscaldamento. Se viene delistato, la posizione finale deve avere una regola di uscita o di liquidazione definita; eliminare le sue righe non è una regola di uscita.
Errore due: ordinare in base a una statistica misurata dopo la decisione
Anche un universo storico può avere leakage se la regola di appartenenza usa una finestra completa di dati futuri. «Negozia le 20 azioni più liquide ogni mese» sembra ragionevole, finché la liquidità non viene ordinata usando l’intero mese in cui la strategia dovrebbe operare.
Immagina di ribilanciare il primo giorno di negoziazione. Ordinare in base al volume medio mensile in dollari usa di nascosto le tre settimane successive per decidere cosa fosse idoneo il primo giorno. Spesso il problema si manifesta in una capacità insolitamente buona: la strategia evita gli asset diventati illiquidi più avanti nel mese, anche se non poteva saperlo al momento dell’ingresso.
Fissa il limite temporale della misurazione prima del momento della selezione. Per un ribilanciamento mensile nella prima sessione, potresti ordinare gli asset in base alle 20 sessioni completate precedenti, terminando alla sessione precedente. Poi rendi esplicito il ritardo di esecuzione: se l’ordinamento usa la chiusura di ieri, il flusso operativo ipotizzato consente di inviare l’ordine all’apertura di oggi?
| Regola di selezione | Versione point-in-time | Leakage comune |
|---|---|---|
| Primi 20 per volume in dollari | Ordinare le sessioni completate fino a prima del ribilanciamento | Includere il giorno o il mese del ribilanciamento |
| Quotato sulla piattaforma | Usare le date effettive di quotazione e delisting | Usare l’endpoint dei simboli attuali per le date passate |
| Storico minimo | Contare le osservazioni disponibili al momento della selezione | Richiedere che l’asset sopravviva in futuro per superare il filtro |
Errore tre: considerare lo storico mancante come prova che un asset non fosse idoneo
L’archivio di un fornitore di dati non è necessariamente una registrazione completa del mercato storico. Un simbolo mancante può indicare che l’asset non è mai esistito, che la piattaforma ha cambiato convenzione di denominazione, che il fornitore non ha conservato gli strumenti delistati o che il feed ha semplicemente un’interruzione. Questi casi hanno conseguenze diverse.
Il problema è un universo ordinato con lacune inspiegate. I ricercatori spesso richiedono una finestra completa di dati retrospettivi e poi escludono in silenzio tutto ciò che ne è privo. Può essere una regola di riscaldamento sensata, ma elimina intenzionalmente anche gli asset quotati di recente. Peggio ancora, se lo storico mancante è concentrato tra i mercati falliti, «solo dati completi» diventa un altro filtro di sopravvivenza.
Tieni distinti l’idoneità, la disponibilità dei dati e il riscaldamento della strategia. Registra il motivo per cui un asset è stato escluso a ogni data. Conserva i dati mancanti nel registro di ricerca invece di trasformarli in un’eliminazione silenziosa. Quando la fonte non consente di stabilire se un mercato fosse quotato o negoziabile, dichiaralo e misura quanto il risultato dipenda da questa incertezza.
Rendi riproducibile l’universo
Un audit utile parte da un singolo ribilanciamento storico. Ricostruisci l’elenco dei candidati usando le quotazioni datate e i dati disponibili a quel limite temporale. Ricalcola gli input dell’ordinamento usando solo osservazioni completate. Poi confronta l’appartenenza risultante con l’elenco effettivamente usato dal backtest.
Salva insieme all’esecuzione la regola, il suo limite temporale, le decisioni di appartenenza e la versione della fonte. Se non riesci a spiegare perché un asset sia entrato e un altro sia rimasto fuori in una certa data, non puoi ancora stabilire se la strategia abbia scoperto un vantaggio o ereditato un campione plasmato dal futuro.
Gli errori nella definizione dell’universo raramente si annunciano con prezzi impossibili. Si manifestano in una strategia che, guarda caso, ha evitato i mercati che hanno smesso di essere convenienti.
← Tutti gli articoli


