Validazione di backtest · Ricerca quantitativa
CopyTradeAudit
Un motore di backtest costruito per demolire i propri risultati — e il risultato negativo onesto che ne è uscito.
- Python
- FastAPI
- pytest
- SQLite
- uv
Il problema
Molti prodotti vendono la stessa idea: i mercati predittivi pubblicano ogni operazione, alcuni trader sono costantemente in profitto, quindi seguili e guadagna. Un'idea facile da verificare con un backtest e altrettanto facile da verificare male: basta una fuga di informazione futura, o cinquanta mercati correlati contati come cinquanta osservazioni indipendenti, e il risultato appare eccellente senza significare nulla.
Per chi è
Chiunque prenda una decisione appoggiandosi a un backtest: una strategia che sta per andare in produzione, lo storico di un fornitore, un numero troppo bello per essere messo in discussione.
Cosa fa
Un nucleo di ricerca deterministico in Python — circa 3.500 righe coperte da 103 test — misurato su 370 mercati, 134.000 operazioni reali e 46 eventi indipendenti. Il verdetto: nessun vantaggio misurabile. Le operazioni selezionate per copia hanno reso +0,0200 per quota sopra la fascia di prezzo 0,95, mentre comprare quella stessa fascia alla cieca, senza alcun trader di mezzo, ha reso +0,0211.
Decisioni chiave
- A prova di fuga per costruzione: a ogni segnale l'abilità di un trader si calcola solo sui mercati già chiusi in quel momento, mai su ciò che è accaduto dopo.
- Intervalli bootstrap raggruppati per evento, così che cinquanta mercati correlati dentro un solo evento contino come una osservazione e non come cinquanta.
- Esecuzione simulata su un book ordini reale, con commissioni, slippage ed esecuzioni parziali, invece di assumere il riempimento al punto medio.
- Ho pubblicato il risultato negativo anziché quello lusinghiero, e una strategia è marcata INCONCLUSIVE perché a essere rotta era la misurazione, non il modello.
Cosa ho imparato
Ho trovato quattro bug nella mia stessa metodologia, ognuno dei quali aveva già fabbricato un falso positivo convincente — inclusa una strategia con il 100% di operazioni vincenti su 36, il cui vantaggio reale sull'ingresso alla cieca era dello 0,8%. Ordinare i trader per percentuale di successo non trova l'abilità: trova chi compra quasi-certezze a 98 centesimi. Una risposta sbagliata e sicura costa più di nessuna risposta.
Dove sta andando
Trasformare i controlli su fughe e correlazione in un banco di prova puntabile sul backtest di qualcun altro, così da applicare lo stesso rigore a una strategia che non ho scritto io.
Solo sulla carta — nessuna operatività reale e nessun denaro vero, per scelta.