16 Ottobre 2026 · ricerca

Il tuo agente di ricerca AI ha visto il test set: 3 modi in cui il punteggio si contamina

Il tuo agente di ricerca AI ha visto il test set: 3 modi in cui il punteggio si contamina

Un agente per le strategie può contaminare un test set senza inserire nemmeno una riga di test in un processo di addestramento. Se vede il punteggio del test, modifica un parametro e lancia di nuovo l’esecuzione, quel punteggio ha già influenzato la strategia. Nel codice il periodo può essere definito «out of sample», ma il processo di ricerca lo ha reso parte della selezione.

Mi è capitato di vedere succedere per comodità: un agente esegue un batch, legge una tabella riepilogativa e poi propone un piccolo miglioramento. Nessuno gli ha chiesto di adattarsi al holdout. Lo ha fatto comunque il ciclo di feedback.

Errore 1: lasciare che l’agente sbirci dopo ogni esecuzione

Di solito il problema si manifesta con uno Sharpe del test che sale a piccoli passi regolari. L’agente prova 30 varianti, tiene la migliore e poi ne prova altre 30 simili. Ogni singola modifica sembra ragionevole. Nel complesso, però, il periodo di test diventa un obiettivo di ottimizzazione.

Ecco un esempio semplificato. Supponiamo che la strategia non abbia alcun vantaggio reale e che tu provi 100 varianti indipendenti su un holdout. Se scegli lo Sharpe più alto, è del tutto possibile ottenere per caso un risultato lusinghiero. Nella maggior parte delle ricerche di strategie le varianti non saranno davvero indipendenti, ma questo non salva il processo: un feedback ripetuto continua a premiare le impostazioni che per caso si adattano alle particolarità dell’holdout.

Proteggi l’holdout dietro un confine ai risultati. L’agente può sviluppare la strategia usando i periodi di training e validation, ma non può accedere alle metriche né ai grafici dell’holdout. Riserva la valutazione finale a un processo separato, eseguito una sola volta dopo aver congelato le scelte di ricerca, e registra insieme al risultato la versione della strategia e l’istantanea dei dati.

Errore 2: definire «nuovo» ogni periodo successivo

Un intervallo di date non è nuovo solo perché viene dopo la finestra di training. Se l’agente ha visto un punteggio relativo a quell’intervallo, o se una persona ha usato il suo drawdown per scegliere una feature diversa, quell’intervallo è entrato nel ciclo di feedback.

PeriodoUso consentitoCosa ne cambia lo stato
TrainingAdattare regole e parametriNiente: è previsto che venga esplorato
ValidationConfrontare i candidati e prendere decisioni di ricercaL’uso ripetuto facilita l’overfitting
Holdout finaleUna valutazione del candidato congelatoLeggerne il risultato e modificare il candidato
Periodo futuro in paper tradingOsservare prospetticamente il comportamento in esecuzioneUsare i risultati per l’ottimizzazione avvia un nuovo ciclo di ricerca

Una valutazione walk-forward a finestre mobili può aiutare a stimare come si comporta nel tempo un processo di ricerca fisso. Non dà carta bianca per sbirciare ogni fold. Se un agente vede i risultati dei fold e adatta la ricerca, anche quei fold diventano feedback. Conserva un periodo finale intatto per la decisione che vuoi davvero prendere.

Errore 3: congelare il codice, ma cambiare la domanda

A volte il codice della strategia resta invariato, ma dopo aver visto il risultato chi fa ricerca modifica la valutazione: cambia benchmark, esclude un mese difficile, presenta un universo diverso o si concentra sulla metrica che sembra più forte. Il test set ha orientato il racconto, anche se non è cambiato alcun parametro.

Il problema si manifesta in report impeccabili, con un solo titolo convincente e nessuna traccia delle altre analisi provate. Una strategia azionaria può sembrare debole rispetto a un indice di mercato ampio, ma forte rispetto alla liquidità; una strategia crypto può brillare su una venue dopo averne esaminate diverse. Questi confronti possono essere utili, ma scegliere tra loro dopo aver visto l’holdout è un altro passaggio di selezione.

Tieni un registro della ricerca. Per ogni esecuzione, salva l’ipotesi, la versione del codice, l’istantanea dei dati, la ricerca dei parametri, le finestre di valutazione, le metriche richieste e indica se l’agente o chi fa ricerca ha visto il risultato. Un registro sintetico è più utile di un’etichetta «out of sample» che suona perfetta.

Prima della valutazione, definisci esplicitamente la domanda finale: quale candidato, quale universo di mercato, quale benchmark, quali costi e quali metriche? Se la risposta cambia quando arriva il risultato, considera la prossima esecuzione parte della ricerca e riserva nuovi dati per il successivo controllo finale.

Cosa posso ancora imparare da un holdout contaminato?

Non è inutile. Può mostrare come si è comportata una strategia in quel periodo e aiutare a diagnosticare un fallimento. Smetti semplicemente di presentare il suo punteggio come una conferma indipendente. Usalo come evidenza per lo sviluppo, congela il candidato successivo e valutalo su un periodo futuro in paper trading davvero nuovo, con le stesse ipotesi contabili e di esecuzione.

In un flusso di lavoro guidato da agenti, è facile perdere il conto degli esperimenti: un solo prompt può generare decine di esecuzioni prima che qualcuno se ne accorga. La protezione è procedurale. Limita ciò che l’agente può consultare, registra ogni esperimento e conserva una valutazione il cui risultato non possa orientare il candidato sotto esame.

agenti AIoverfittingricerca di strategiebacktesting
← Tutti gli articoli