Un backtest può sembrare più convincente dopo aver peggiorato i dati. Elimina i prezzi anomali, colma le lacune con prezzi ordinati e lo Sharpe può salire. Quel miglioramento può essere un campanello d’allarme: la regola di pulizia potrebbe aver cancellato proprio le condizioni di mercato che la strategia deve saper affrontare.
La qualità dei dati conta. Una quotazione incrociata o un’operazione duplicata può generare un’esecuzione che nessuno avrebbe potuto ottenere. Ma anche un filtro che fa sparire le osservazioni scomode è una scelta di modello. Guardiamolo con lo stesso sospetto che riserveremmo a una nuova variabile di segnale.
Quando un prezzo errato è davvero un dato errato?
Per prima cosa, chiediamoci che cosa rappresenta l’osservazione. Un’operazione molto lontana dal mercato prevalente potrebbe essere una registrazione corrotta, un autentico sweep su una liquidità ridotta o un evento specifico di una piattaforma. Una candela da 1 minuto con volume pari a zero può indicare che non ci sono state operazioni, mentre una candela mancante può segnalare un’interruzione del flusso dati. Questi casi richiedono trattamenti diversi.
Consideriamo una semplice strategia di mean reversion che acquista quando il prezzo scende dell’1% sotto una media mobile breve e chiude la posizione al raggiungimento della media. Durante una fascia notturna di scarsa liquidità, un’operazione viene registrata a un prezzo inferiore dell’1,2% rispetto al prezzo precedente, poi il mercato rimbalza. Se il prezzo è autentico, una strategia con un ordine limite in attesa potrebbe essere stata eseguita. Se invece è un tick errato, non supportato da alcuna quotazione eseguibile, conteggiare l’esecuzione inventa un vantaggio.
Eliminare la candela non è automaticamente più prudente. La strategia potrebbe comunque aver avuto un ordine in attesa sul mercato, eseguito alla successiva operazione reale. Una simulazione difendibile deve modellare ciò che la strategia poteva osservare e ciò contro cui il suo ordine avrebbe plausibilmente potuto essere eseguito.
Che effetto ha una regola di pulizia sul risultato?
Eseguiamo la strategia applicando trattamenti espliciti ai dati e confrontiamo le differenze. Conserviamo la fonte grezza e registriamo ogni esclusione o correzione, motivandola. Poi indichiamo quanto dipende da queste decisioni il risultato.
| Trattamento dei dati | Possibile vantaggio | Rischio per il backtest |
|---|---|---|
| Eliminare un prezzo fuori dall’intervallo di errore documentato dalla piattaforma | Impedisce a una registrazione notoriamente non valida di generare un valore estremo | La regola può classificare erroneamente operazioni legittime durante un mercato in rapido movimento |
| Mantenere l’ultimo prezzo per tutta la durata di un intervallo mancante | Evita che gli indicatori si interrompano in presenza di lacune | Crea un prezzo al quale potrebbe non essersi verificata alcuna operazione |
| Usare le quotazioni consolidate al posto degli ultimi prezzi di scambio | Offre un quadro migliore dei prezzi di esecuzione esposti | La quantità quotata, l’accesso alla piattaforma e la posizione in coda restano comunque rilevanti |
| Eliminare tutte le candele anomale usando una soglia statistica | Riduce la sensibilità ai valori estremi | Può eliminare periodi di stress reali in cui la strategia registra le perdite maggiori |
Supponiamo che un’esecuzione senza filtri abbia uno Sharpe di 0,9, mentre una che esclude lo 0,8% delle candele salga a 1,4. Questo, da solo, non dimostra che i dati siano di qualità migliore. Verifichiamo se le candele rimosse si concentrano attorno a picchi di volatilità, se rappresentano una quota significativa del P&L e se la regola di esclusione era stata definita prima di vedere il risultato.
Teniamo un registro delle eccezioni sui dati: fonte, orario, campi interessati, motivo dell’intervento e indicazione se la decisione è stata presa prima o dopo aver esaminato la performance della strategia.
Come posso verificare se la pulizia ha cambiato il vantaggio della strategia?
Confrontiamo diversi trattamenti plausibili sulle stesse date, mantenendo invariata la strategia. Includiamo, quando possibile, la simulazione sui dati grezzi, un insieme di correzioni documentate e un caso prudenziale di esecuzione per le osservazioni ancora ambigue. Per ogni esecuzione riportiamo il numero di operazioni, il turnover, il drawdown e il contributo al P&L degli intervalli interessati, insieme allo Sharpe.
Esaminiamo poi le operazioni che cambiano. Se i migliori profitti della strategia scompaiono escludendo un piccolo gruppo di prezzi sospetti, analizziamo singolarmente quelle registrazioni. Se invece scompaiono le perdite, applichiamo lo stesso livello di attenzione. Una regola a cui dedichiamo un esame accurato solo quando penalizza il backtest sta già influenzando la ricerca.
Per uno studio riproducibile, versioniamo i file del fornitore o i relativi checksum, il codice di pulizia e l’elenco delle eccezioni. Un fornitore potrebbe correggere i dati storici; l’esecuzione successiva dovrebbe permetterci di capire se è cambiata la strategia o se sono cambiati gli input.
Ma la pulizia non è necessaria?
Sì. Conservare una registrazione palesemente corrotta può inventare un’operazione, distorcere la volatilità o compromettere un indicatore. E nessuno dovrebbe fingere che un flusso di dati grezzi sia la verità assoluta. Il punto pratico è più circoscritto: la pulizia richiede prove, una regola congelata e un’analisi di sensibilità, perché può cambiare il mercato che il backtest sostiene di rappresentare.
Quando una correzione dei dati migliora la performance, chiediamoci quale osservazione ha eliminato e se avremmo preso la stessa decisione senza aver visto la curva del capitale. Se non ne siamo certi, conserviamo entrambe le versioni nella documentazione della ricerca. La differenza tra loro fa parte del risultato.
← Tutti gli articoli


