← Le Serie · AlphaFrame Lab

Ep. 3 — Backtesting rigoroso: perché i backtest mentono

Train/test/validation contro il fit sull'intera finestra; overfitting; perché la Sharpe dell'intero campione sovrastima il futuro e solo un hold-out dà una stima difendibile.

Comunicazione di marketing a scopo informativo/educativo. Non è consulenza, raccomandazione, sollecitazione né promessa di rendimento; il capitale è a rischio. AlphaFrame presta consulenza, NON gestione di portafogli: i modelli descritti sono ricerca quantitativa proprietaria, non un prodotto sottoscrivibile. I dati citati sono in-sample/backtest su dati storici (i rendimenti passati o simulati non sono indicativi di quelli futuri).

🎬 L'episodio video arriverà sul canale YouTube: qui sotto trovi intanto il testo integrale.

Come leggere i numeri di questo episodio

È un approccio algoritmico: i modelli vengono addestrati, testati e validati su blocchi separati di dati storici (train / test / validation), e alcuni partono da un anno specifico. Le cifre citate (CAGR, drawdown, alpha, Sharpe) sono risultati di backtest simulati in-sample su dati storici di mercato — alcuni al netto della tassa del 26% e dei costi, altri al lordo, come indicato di volta in volta. NON sono un track record né una previsione: i rendimenti passati o simulati non sono indicativi di quelli futuri. I tre modelli principali NON hanno ancora superato una validazione fuori campione: la prova vera è il test out-of-sample, con verdetto a data fissata (dic 2026 / giu 2027).

Il backtesting onesto

Bentornati ad AlphaFrame. Questo è l'Episodio 3 e parla di un'idea scomoda: il numero di performance che vedete per una strategia, misurato sull'intera storia, non è una previsione di ciò che farà in futuro. Comincio con un risultato che dovrebbe turbare chiunque si fidi dei backtest. Un backtest è semplicemente una simulazione di come una regola di trading si sarebbe comportata sui dati passati. Nel 2014 Bailey, Borwein, Lopez de Prado e Zhu hanno pubblicato uno studio sulle Notices of the American Mathematical Society, e hanno mostrato una cosa netta. Prendete solo sette anni di dati giornalieri. Provate diverse configurazioni di strategia su di essi — impostazioni diverse, regole diverse, tutte testate sulla stessa storia. Circa quarantacinque tentativi indipendenti bastano per imbattersi in una strategia con uno Sharpe ratio in-sample pari a uno. Lo Sharpe ratio, definiamolo, è il rendimento medio di una strategia diviso per la sua volatilità: il rendimento per unità di rischio, dove più alto è meglio e uno è rispettabile. Quindi quarantacinque tentativi producono uno Sharpe di uno. Eppure lo Sharpe vero, out-of-sample, di quella stessa strategia — la sua performance su dati contro cui non è mai stata selezionata — è zero. Niente. Pura fortuna travestita da abilità. Rileggiamolo: un'alta performance nel backtest è facile da fabbricare per caso. Non serve barare, non serve mentire. Basta provare abbastanza cose sugli stessi dati e riportare il vincitore. È la trappola attorno a cui è costruito questo episodio. Nelle prossime slide ci porremo due domande. Primo, perché la performance misurata sull'intera storia è sistematicamente ingannevole? Secondo, cosa ci offre davvero un serio gate di train, test e validazione — una disciplina in cui si sceglie una strategia su una porzione di dati e la si giudica su un'altra che non ha mai toccato? La lunghezza della storia, sosterremo, non è la stessa cosa dell'evidenza.

I motori in un colpo d'occhio

Prima di andare più a fondo, riepiloghiamo i motori su cui poggia questa serie, perché tutto il ragionamento di oggi dipende da come li giudichiamo. Lavoriamo con tre famiglie. Primo, i modelli di ricerca a deep learning: sono reti LSTM con attenzione sugli ETF. Una LSTM, cioè una rete a memoria a lungo e breve termine, è un modello che legge una sequenza passo dopo passo e conserva memoria di ciò che conta; "attenzione sugli ETF" significa che impara a quali fondi dare peso quando prende una decisione. Secondo, i modelli candidati: strategie ancora in valutazione, non ancora promosse tra i modelli principali. Terzo, le regole meccaniche: ricette semplici e trasparenti come il momentum, che compra ciò che è salito di recente, e una regola di regime che sposta l'esposizione al variare del ciclo economico. Nella puntata precedente abbiamo introdotto un cancello di controllo: si addestra il modello su un blocco di training, si scelgono le impostazioni su un blocco di validazione e si legge il numero finale una sola volta su un blocco di test che la strategia non ha mai visto durante la selezione. Oggi la domanda è perché quel cancello non è opzionale, non è solo buona igiene. La ragione in una riga è questa. Queste tre famiglie non sono esposte allo stesso rischio nella stessa misura, ma sono tutte esposte. Ogni volta che confrontiamo configurazioni, tariamo una regola o scegliamo il migliore fra più candidati, stiamo facendo scelte sui dati, e le scelte sui dati lasciano un'impronta sulla performance riportata. Più libertà ha il modello, più quell'impronta è profonda: perciò i modelli a deep learning, con molti parametri, sono i più esposti di tutti. Se misuriamo uno qualsiasi di questi motori sulla stessa storia con cui l'abbiamo costruito, il numero che otteniamo abbellisce il passato invece di prevedere il futuro. Quindi il resto della puntata riguarda una cosa sola: separare le strategie che superano un test onesto da quelle che sembravano buone solo perché ci siamo impegnati abbastanza a farle sembrare tali.

La selezione gonfia la performance

Il problema di fondo è ingannevolmente semplice. Quando proviamo molte configurazioni candidate — regole diverse, impostazioni di parametri diverse — e poi riportiamo solo quella che è risultata migliore, quel numero non è più una misura onesta della capacità. È gonfiato, e lo è in una direzione sistematica e prevedibile.

Vediamo perché, partendo dai principi di base. Supponiamo che nessuna delle nostre regole candidate abbia un vantaggio reale: il vero indice di Sharpe di ciascuna è zero. Ricordiamo che l'indice di Sharpe è il rendimento medio in eccesso diviso per la sua volatilità: una misura di rendimento per unità di rischio. Anche con capacità vera pari a zero, ogni regola produce un certo indice di Sharpe nel backtest per puro caso — alcuni positivi, alcuni negativi, sparsi intorno allo zero. Ora scegliamo il massimo. Per costruzione, il massimo di molte estrazioni casuali è ben al di sopra dello zero. Quindi l'indice di Sharpe del vincitore, misurato sui dati usati per sceglierlo, non è una stima del vero rendimento di quella regola: è una stima del massimo atteso su tutte le prove che abbiamo fatto. Sono due grandezze molto diverse.

È questo che intendiamo quando diciamo che la selezione gonfia la performance. Non abbiamo scoperto una buona strategia: l'abbiamo adattata in modo implicito a quella particolare storia, come si può piegare una curva perché passi per qualsiasi insieme di punti. Più configurazioni proviamo, più il numero vincente sale, del tutto senza alcun vantaggio autentico.

È questo il motore dietro la maggior parte dei backtest "straordinari" che vi verranno mostrati. Di solito non è frode. È il ricercatore onesto che prova cento idee sensate e riporta la migliore, ignaro che è proprio l'atto di riportarla a creare la distorsione. Come hanno mostrato Bailey, Borwein, Lopez de Prado e Zhu nel 2014, non è una preoccupazione marginale: è il risultato normale di qualsiasi ricerca seria. Il numero è reale; la previsione che lascia intendere non lo è.

Overfitting e lunghezza minima del backtest

Mettiamo allora un metro su quella inflazione. Se la selezione spinge verso l'alto lo Sharpe ratio riportato — lo Sharpe ratio, cioè il rendimento per unità di rischio — segue una domanda naturale: quanto deve essere lungo un backtest perché quell'inflazione sia con sicurezza più piccola di qualunque abilità reale? Un articolo del 2014 di Bailey, Borwein, Lopez de Prado e Zhu, pubblicato sulle Notices of the American Mathematical Society, ci dà lo strumento. Lo chiamano lunghezza minima del backtest. L'idea è rigorosa. Ogni configurazione in più che provi sullo stesso storico fisso aggiunge un'estrazione, e lo Sharpe massimo atteso in campione su quelle estrazioni sale — anche quando nessuna delle strategie ha alcun vantaggio reale. Per impedire che quel massimo atteso superi lo Sharpe vero, serve un campione più lungo. Perciò la lunghezza minima del backtest cresce con il numero di prove. Ribaltiamolo e l'avvertimento è netto: uno storico breve unito a molte varianti non è solo rischioso, è praticamente garantito che sovrastimi l'abilità. Troverai qualcosa che sembra brillante, proprio perché hai guardato così tante volte. Ecco il numero da tenere a mente, quello con cui abbiamo aperto questo episodio. Con solo circa sette anni di dati giornalieri, dell'ordine di quarantacinque configurazioni di prova indipendenti bastano a far emergere una strategia il cui Sharpe in campione è un rispettabilissimo 1,0 — mentre il suo Sharpe vero, fuori campione, è esattamente zero. Non piccolo. Zero. Quarantacinque non è una ricerca industriale; è un tranquillo pomeriggio a ritoccare parametri. Quindi, quando qualcuno vi mostra una strategia con uno Sharpe pari a uno su pochi anni, la prima domanda onesta non è "quanto è buona" ma "quante cose hai provato, e il tuo storico era abbastanza lungo da meritare quel numero". La lunghezza in anni da sola non risponde. Il conteggio delle prove sì.

Perche' bastano 45 tentativi

Nella slide precedente abbiamo fatto un'affermazione che dovrebbe darvi fastidio: circa quarantacinque configurazioni di prova, su sette anni di dati giornalieri, possono restituirvi uno Sharpe in-sample pari a uno il cui Sharpe vero è zero. È Bailey e colleghi, duemilaquattordici. Ora vediamo il meccanismo che c'è sotto. Questa curva non è un backtest. È pura statistica, ed è etichettata come tale. Sull'asse verticale mettiamo il massimo atteso di N prove casuali indipendenti, misurato in unità del rumore di ciascuna prova. Sull'asse orizzontale, il numero di configurazioni provate, in scala logaritmica. Guardate la forma: sale, ma lentamente, perché cresce come la radice quadrata di due volte il logaritmo naturale di N. Seguitela fino al punto rosso, collocato su N di circa quarantacinque. Leggete sull'asse: la migliore di quarantacinque prove di puro rumore si trova già vicino a due virgola otto unità di rumore sopra lo zero. Nessuno aveva alcuna abilità. Abbiamo solo guardato quarantacinque volte e tenuto l'estrazione più fortunata. È tutto qui il trucco. Non serve un vantaggio reale; abbastanza tentativi sugli stessi dati vi consegneranno sempre un vincitore dall'aria impressionante. Consideratela un'illustrazione dell'ordine di grandezza della statistica dei valori estremi, non la riproduzione di quello Sharpe esatto. Quindi la domanda onesta diventa: quanto è sovradattato il vostro backtest? Prossima slide.

Quanto e' overfit il tuo backtest? (PBO)

Abbiamo dunque un problema: la selezione gonfia le prestazioni. La domanda naturale che segue e questa: possiamo misurarlo? Possiamo dare un numero a quanto un dato backtest sia sovra-adattato ai dati? La risposta e si, e viene da uno studio del 2017 di Bailey, Borwein, Lopez de Prado e Zhu, pubblicato sul Journal of Computational Finance. Gli autori definiscono quella che chiamano Probabilita di Sovra-adattamento del Backtest, in inglese PBO. E esattamente cio che sembra: una probabilita, tra zero e uno, che la configurazione da noi scelta come migliore sia in realta sovra-adattata alla nostra storia di dati.

Ecco come la stimano, e il metodo conta perche non dipende da un modello. Non fa alcuna ipotesi sulla forma dei nostri rendimenti. Si chiama Convalida Incrociata Combinatoria e Simmetrica, in inglese CSCV. La ricetta e facile da immaginare. Prendiamo l'intera storia e la tagliamo in blocchi uguali nel tempo. Poi formiamo molte suddivisioni diverse: per ciascuna, alcuni blocchi diventano il campione interno e i restanti diventano il campione esterno, in ogni combinazione simmetrica. In ogni suddivisione troviamo la configurazione che appariva migliore nel campione interno. Poi, ed e questo il punto centrale, verifichiamo come quella stessa configurazione si e classificata nel campione esterno. Se il vincitore interno finisce di solito nella meta inferiore all'esterno, il nostro processo di selezione sta scegliendo rumore.

La PBO e semplicemente la frazione di suddivisioni in cui la configurazione migliore nel campione interno rende meno della mediana nel campione esterno. Una PBO vicina a un mezzo o superiore significa che il backtest, in sostanza, non ci dice nulla sul futuro. Una PBO bassa e una rassicurazione autentica, anche se solo parziale. Cio che guadagniamo qui e un numero concreto, calcolato dai nostri stessi dati, per un'affermazione che di solito facciamo solo a gesti. Invece di dire "questo potrebbe essere sovra-adattato", possiamo dire "la probabilita che sia sovra-adattato e pari a questo valore". E una conversazione molto diversa da avere con un comitato rischi.

Il Deflated Sharpe Ratio

Sappiamo dunque che la selezione gonfia la performance. La domanda successiva è pratica: dato uno Sharpe ratio che abbiamo davvero osservato, come lo correggiamo per la ricerca che lo ha prodotto? La risposta viene da un lavoro del 2014 di Bailey e Lopez de Prado, sul Journal of Portfolio Management, che ha introdotto il Deflated Sharpe Ratio, cioè lo Sharpe ratio deflazionato.

Ricordiamo che lo Sharpe ratio è il rendimento medio di una strategia diviso per la sua volatilità: il rendimento per unità di rischio. Da solo, uno Sharpe di, poniamo, 1,5 sembra notevole. Ma il Deflated Sharpe pone una domanda più fine: dato tutto ciò che sappiamo, qual è la probabilità che lo Sharpe vero sia davvero sopra lo zero?

Per rispondere, deflaziona lo Sharpe osservato tenendo conto di tre cose che di solito ignoriamo. Primo, il numero di tentativi: quante regole, finestre e varianti abbiamo provato prima di annunciare il vincitore. Più abbiamo provato, più alto è lo Sharpe che ci aspetteremmo dalla sola fortuna, e quindi più dobbiamo scontare. Secondo, la non normalità dei rendimenti: i rendimenti finanziari reali hanno code spesse e asimmetria, e questo rende uno Sharpe alto meno affidabile di quanto assuma la formula da manuale. Terzo, la lunghezza del campione: una storia breve dà una stima rumorosa e poco affidabile.

Mettendo insieme queste tre cose, il Deflated Sharpe non restituisce un numero più grande, ma una probabilità: la possibilità che la strategia abbia un vantaggio reale.

Ecco la disciplina che impone. Senza deflazione, il singolo Sharpe migliore da una ricerca su molte regole è distorto verso l'alto: è, di fatto, il massimo di molte estrazioni rumorose, e il massimo del rumore non è zero. La correzione è netta e onesta: penalizzare il risultato per quante cose hai provato. Se hai testato cento regole per trovarne una brillante, l'asticella da superare è molto più alta che se ne avessi testata una sola.

Cross-validation purgata e combinatoria

Finora abbiamo penalizzato il numero di tentativi e messo una probabilità sull'overfitting. Ora la terza difesa: come tagliamo i dati fin dall'inizio. Lo strumento standard è la cross-validation, o validazione incrociata: si divide la storia in più blocchi, detti fold, si allena su alcuni, si verifica su quello tenuto da parte e si ruota, così ogni blocco fa a turno da esame. Nella maggior parte dei campi funziona. In finanza, invece, perde silenziosamente. Il motivo è che le nostre etichette si sovrappongono nel tempo. Il rendimento di un singolo giorno alimenta un segnale calcolato su una finestra passata e un'etichetta misurata su una finestra futura: così un giorno di allenamento e un giorno vicino di test condividono letteralmente gli stessi rendimenti sottostanti. Il modello ha, di fatto, già visto un'ombra della risposta. Marcos Lopez de Prado, nel suo libro del 2018 Advances in Financial Machine Learning, dà il rimedio nei capitoli sette e dall'undici al dodici. La Purged K-Fold, cioè la validazione incrociata "ripulita", rimuove — purga — ogni osservazione di allenamento la cui finestra si sovrappone a quella di test, e aggiunge un embargo, un breve intervallo dopo ogni blocco di test, così l'informazione non filtra attraverso la giuntura. Questo ferma la perdita. Ma va oltre. La Combinatorial Purged CV non verifica su un fold alla volta. Forma molte combinazioni diverse di train e test dagli stessi blocchi e ricuce i pezzi tenuti da parte in molti percorsi di backtest completi: decine o centinaia. Così la strategia è giudicata non su un solo numero fuori campione, ma su un'intera distribuzione di esiti fuori campione. Se la frase suona familiare, è giusto così. È esattamente la logica del nostro gate: non leggiamo mai un singolo dato di test, leggiamo la dispersione dei risultati forward su ogni blocco cronologico. La macchina accademica e la nostra pratica sono la stessa idea: non fidarti di un solo numero quando puoi vedere la distribuzione che gli sta dietro.

Troppi fattori, asticella troppo bassa

Finora abbiamo parlato di una strategia provata molte volte. Ora allarghiamo lo sguardo all'intera professione. Nel 2016, sulla Review of Financial Studies, Campbell Harvey, Yan Liu e Heqing Zhu hanno pubblicato una rassegna dal titolo che fa riflettere: la letteratura accademica aveva già documentato almeno trecentosedici fattori di rendimento candidati — trecentosedici variabili pubblicate, ciascuna che diceva di prevedere i rendimenti. E questo anni fa; da allora il numero è solo cresciuto.

Ecco perché quel numero conta. Quando provi centinaia di idee, alcune sembreranno significative per puro caso. La soglia consueta per dire che un risultato è reale è una statistica t sopra due. Definiamola: la statistica t è semplicemente di quanti errori standard l'effetto misurato si trova lontano da zero — in sostanza, quante volte il segnale è più grande del suo stesso rumore. Una t sopra due corrisponde, nel mondo classico del singolo test, a circa una probabilità su venti di falso allarme.

Ma noi non stiamo facendo un solo test. Ne stiamo facendo centinaia. Un falso allarme su venti, su oltre trecento fattori, garantisce un mucchio di scoperte dall'aspetto notevole che sono solo rumore. Harvey, Liu e Zhu fanno esattamente questa osservazione: una volta corretto per quanti fattori la professione ha provato collettivamente, la soglia onesta di significatività sale a circa una statistica t sopra tre. Con questo criterio più severo, molte celebri anomalie pubblicate non superano la soglia — sono probabilmente falsi positivi.

Notate il filo conduttore con le slide precedenti. È la stessa malattia del backtest sovra-adattato, ma alla scala di un intero campo: prova abbastanza cose e la migliore sembrerà brillante senza una vera ragione. Anche il rimedio è lo stesso — alzare la soglia in proporzione a quanto hai cercato.

p-hacking e l'incentivo a pubblicare

Se la soglia per la significatività è troppo bassa, perché il settore continua a superarla? La risposta ha molto a che fare con gli incentivi. Nel suo discorso presidenziale del 2017 all'American Finance Association, pubblicato sul Journal of Finance, Campbell Harvey ha sostenuto che la finanza empirica si appoggia troppo ai p-value in-sample. Il p-value, qui, è la probabilità di vedere un risultato così forte per puro caso, se la strategia non avesse alcun vantaggio reale. Il problema è che le riviste premiano i risultati positivi, e i ricercatori, in modo consapevole o meno, continuano a ritoccare finché un risultato non supera la soglia. Harvey lo chiama con il suo nome: data-mining, spinto dalla pressione di pubblicare qualcosa che funzioni. E più varianti si provano in silenzio prima di riportare la vincente, più un singolo p-value perde senso. Ma quanto in alto dovrebbe stare, davvero, la soglia? Nel 2020, sulla Review of Financial Studies, Chordia, Goyal e Saretto hanno fatto una cosa ingegnosa. Hanno generato oltre due milioni di strategie di trading casuali — segnali senza alcuna ragione economica per funzionare — e si sono chiesti quanto buono debba apparire un risultato per emergere da quel mare di rumore. La loro risposta: per sopravvivere alla correzione per test multipli, una statistica t — cioè quanti errori standard un effetto dista dallo zero — deve raggiungere circa 3,8 per le strategie su serie storiche e circa 3,4 per quelle cross-sezionali. La soglia ingenua dei manuali è 2. Quindi l'asticella onesta è quasi il doppio della pressione che il settore applica di routine. La lezione si collega direttamente alla nostra disciplina. Un risultato ritoccato sulla storia osservata — quella che ci è capitata tra le mani — è esattamente il tipo di risultato che questi autori dimostrano non reggere. Sembra forte proprio perché è stato selezionato per sembrarlo. Per questo, per noi, un backtest promettente è un'ipotesi da verificare su dati intatti, mai una conclusione. Il numero che si trova cercando non è il numero di cui fidarsi.

Il decadimento misurato fuori campione

Finora abbiamo ragionato per princìpi primi e in teoria. Ora guardiamo che cosa è successo davvero alle anomalie reali quando qualcuno ha provato a farci trading. In uno studio del 2016 sul Journal of Finance, McLean e Pontiff hanno preso 97 predittori di rendimento documentati — quel tipo di fattori pubblicati di cui parlavamo poco fa — e si sono posti una domanda semplice: quanto del vantaggio dentro il campione sopravvive? Per "anomalia" intendiamo qui semplicemente uno schema nei rendimenti passati che un articolo sostiene possa prevedere i rendimenti futuri. E "dentro il campione" significa proprio il tratto di storia che lo studio originale ha usato per stabilire l'effetto.

Il loro risultato è una delle misurazioni più pulite di tutto questo campo. I rendimenti di portafoglio erano, in media, il 26 per cento più bassi fuori campione — cioè nel periodo dopo il campione originale ma prima della pubblicazione dell'articolo — e il 58 per cento più bassi una volta pubblicato l'articolo. Teniamo a mente il primo numero. Il calo del 26 per cento avviene prima che il mercato abbia letto l'articolo, prima che qualcuno potesse aver eroso il segnale con il trading. Non è la folla che arbitra il vantaggio. È la performance dentro il campione che è in parte un artefatto del campione stesso: fortuna statistica e un silenzioso adattamento a quella particolare storia.

Questa è dunque una misura diretta ed empirica proprio del divario di cui tratta questo episodio: quanto un numero calcolato sugli stessi dati usati per trovare la strategia sovrastima ciò che dovremmo aspettarci in avanti. Circa un quarto del vantaggio, sparito, solo per essere usciti dai dati su cui la strategia era stata misurata. L'ulteriore calo fino al 58 per cento arriva dopo, quando il mercato impara e compete via il resto.

Non è un teorema né una simulazione. È ciò che è successo a un centinaio di anomalie già passate al vaglio della pubblicazione. La lezione è netta: la bellezza dentro il campione decade, e decade in modo misurabile. Ecco perché insistiamo nel giudicare una strategia solo su dati che non ha mai toccato.

Nessun hold-out vs un gate train / test / validation

Mettiamo i due mondi fianco a fianco, colonna contro colonna. A sinistra, la pratica comune: nessun dato tenuto da parte. A destra, la disciplina che difendiamo: un gate con blocchi di train, test e validation. Sei righe li separano. Prima riga: come si sceglie la strategia. A sinistra, scegli la regola migliore dopo aver guardato tutta la storia, e questo significa averla implicitamente adattata a quella storia — hai fatto il fitting a mano, invece che con un algoritmo. A destra, scegli solo sui blocchi di train e validation, e non lasci mai che i dati finali influenzino la scelta. Seconda riga: l'asticella di significatività. A sinistra, la soglia ingenua: una t-statistica sopra due — dove la t-statistica misura di quanti errori standard il tuo effetto si discosta da zero. A destra, un'asticella alzata per il numero di tentativi fatti, all'incirca una t sopra tre, e la Deflated Sharpe Ratio di Bailey e Lopez de Prado, 2014, sul Journal of Portfolio Management, che sconta la tua Sharpe per il numero di tentativi, per i rendimenti non normali e per la lunghezza del campione. Terza riga: cosa stima davvero il numero di testa. A sinistra, approssima il massimo atteso su tutti i tentativi fatti — lusinghiero per costruzione. A destra, il numero sul test approssima la vera performance fuori campione. Quarta riga: il campione effettivo. A sinistra, le finestre sovrapposte lasciano molte meno osservazioni indipendenti di quante ne suggerisca il calendario; il gate, almeno, legge il verdetto su dati tenuti separati. Quinta riga: la diagnostica di overfitting. A sinistra, nessuna. A destra, la Probability of Backtest Overfitting, stimata senza assunzioni di modello tramite la cross-validation combinatoria simmetrica — Bailey, Borwein, Lopez de Prado e Zhu, 2017 — che mette un numero vero sul rischio. Sesta riga, la conclusione: la colonna di sinistra di solito rende meno dal vivo. La colonna di destra è costruita proprio per non doverlo fare.

Finestre sovrapposte, un campione reale minuscolo

Finora abbiamo parlato di quante strategie proviamo. Ora parliamo di quanti dati abbiamo davvero — perché sono molti meno di quanto suggerisca il calendario. Nell'Episodio Due abbiamo costruito i nostri segnali da finestre di osservazione retrospettiva: un segnale di momentum, per esempio, ordina ogni ETF in base al suo rendimento negli ultimi mesi. Ecco il problema silenzioso. La finestra di dodici mesi di oggi e quella di domani si sovrappongono quasi del tutto — condividono tutti i rendimenti tranne un giorno. Quindi due osservazioni giornaliere consecutive del segnale non sono due prove indipendenti; sono quasi la stessa misura presa due volte. Per "osservazione indipendente" intendiamo un dato che porta informazione davvero nuova, non una quasi-copia del precedente.

La conseguenza è scomoda. Un backtest che copre, diciamo, dieci anni di dati giornalieri sembra fatto di circa duemilacinquecento dati. Ma poiché le finestre si sovrappongono e condividono rendimenti, il numero di osservazioni davvero indipendenti è molto più piccolo — più vicino al numero di finestre non sovrapposte, che possono essere solo qualche decina. La vostra evidenza è una frazione di ciò che il calendario pubblicizza.

Perché conta per lo Sharpe? Lo Sharpe è una stima — un rendimento medio diviso per la sua volatilità — e ogni stima ha un margine di errore. Quel margine si restringe con il numero di osservazioni indipendenti, non con il numero di giorni. Meno osservazioni indipendenti significa un margine di errore più ampio attorno allo Sharpe, e quindi una banda di puro caso più larga. E quando poi selezioniamo la regola migliore fra tante, stiamo pescando dentro quella larga banda di fortuna. Un backtest lungo può sembrare una prova schiacciante pur poggiando su un campione effettivo minuscolo. La lunghezza in giorni non è la stessa cosa dell'evidenza.

Cosa ti da' davvero il gate

Abbiamo visto come la selezione gonfia un backtest, e abbiamo contato i modi in cui un numero misurato sugli stessi dati usati per scegliere la strategia risulta distorto verso l'alto. Diciamo ora con chiarezza cosa ci dà in cambio il cancello, perché tra tante diagnostiche è facile perdere il filo.

Un cancello di train, test e validation non è burocrazia. È la prova generale dell'unica cosa che conta davvero: il funzionamento reale. Pensiamo a cosa succede quando mettiamo una strategia tra i modelli principali. La adattiamo sul passato che possiamo vedere. La scegliamo — tra le varianti che abbiamo provato — usando il passato recente. Poi arriva il futuro, e ci giudica una volta sola, su dati che non abbiamo mai toccato mentre decidevamo. Non ci sono seconde possibilità. Non c'è ritaratura a posteriori. Il cancello ci obbliga soltanto a vivere questa sequenza in anticipo. Adattiamo sul blocco di train. Scegliamo sulla validation. E leggiamo il numero finale una sola volta, su un blocco di test che non ha avuto parte in alcuna decisione.

Ecco tutto il vantaggio, in una frase. Una metrica letta su dati che la strategia non ha mai visto durante la selezione è una stima approssimativamente non distorta della performance futura. Approssimativa, perché il campione è finito. Non distorta, perché quei dati non hanno guidato le nostre scelte, quindi non c'è selezione a gonfiarla. Al contrario, il numero che tutti citano — uno Sharpe letto proprio sulla storia su cui abbiamo cercato — non è affatto una stima del futuro. È una descrizione lusinghiera del passato, resa più nitida dal senno di poi.

È questa la differenza che il cancello ci compra. Non un numero più grande, non un modello migliore. Ci compra il tipo giusto di numero: una previsione che possiamo sostenere con onestà, invece di un ritratto di un passato di cui conoscevamo già il finale. Poi vediamo cosa ha intercettato questo cancello nel nostro lavoro.

Il caso nostro: preso dal gate

Ora rendiamo tutto concreto con due strategie nostre, perché un esame che non si fallisce mai non è un esame. Guardate il grafico: queste sono le regole meccaniche, quelle semplici, e il gate è ciò che le separa.

La prima è una strategia di momentum: una regola che compra ciò che sta salendo. Sull'intera storia sembrava forte; se vi avessimo mostrato la sua Sharpe sulla finestra totale, vi avrebbe colpito. Ma l'abbiamo passata attraverso il gate onesto, e ha fallito. Quando abbiamo preteso una mediana positiva sul train, sul test e sul validation separatamente, il vantaggio è crollato. Viveva quasi tutto nel blocco più recente. Misurato sull'intera finestra, quel buon tratto abbelliva tutto ciò che aveva intorno. Il gate ha colto ciò che il numero di testa nascondeva.

La seconda è una strategia di regime basata sull'Investment Clock: l'idea che asset diversi guidino in punti diversi del ciclo di crescita e inflazione. L'abbiamo giudicata contro un benchmark sessanta-quaranta, sessanta per cento azioni e quaranta per cento obbligazioni, il classico mix passivo. Ha superato l'esame. Ma aggiungiamo un caveat esplicito, e questa è la parte onesta. I suoi pesi sono stati tarati in-sample, cioè scelti guardando la stessa storia su cui l'abbiamo poi valutata. Quindi la sua evidenza è davvero più debole di quella dei nostri modelli di deep learning, le reti LSTM con attenzione sugli ETF, giudicati solo su dati held-out che il modello non ha mai toccato durante la selezione.

Questa asimmetria conta. Un pass non è un timbro unico: porta con sé un voto su come la strategia se l'è guadagnato. La taratura in-sample significa che la selezione può essere filtrata dentro, e quindi ci fidiamo meno di quel pass. La regola di momentum ha fallito il gate del tutto. La regola di regime lo ha superato, ma con una nota a piè di pagina. E un modello valutato puramente fuori campione si guadagna il verdetto più solido di tutti. Stesso esame, peso diverso sulla risposta.

Il nostro momentum, sotto processo

Abbiamo appena visto quella curva. Ora ecco la stessa storia come verdetto. Questo è un grafico a barre raggruppate. In basso, tre blocchi di tempo: train, test, validazione. L'altezza di ogni barra è la mediana dell'alpha a sei mesi in quel blocco — di quanto una strategia ha battuto il suo benchmark, in un semestre tipico. Sopra lo zero va bene; sotto lo zero va male. Le barre rosse sono la nostra regola Momentum; le barre oro sono la nostra regola di regime Investment Clock. Guardate le barre rosse. Sul test, più zero virgola zero due zero. Sulla validazione, più zero virgola zero due cinque. Sui blocchi recenti sembra forte. Ma guardate a sinistra, il blocco train: meno zero virgola zero due nove. Negativa. Il nostro gate pretende un valore positivo su tutti e tre, quindi Momentum fallisce — le vittorie recenti abbellivano un passato debole. Ora le barre oro: più zero virgola zero zero tre, più zero virgola zero uno tre, più zero virgola zero uno tre. Positiva ovunque. Contro un benchmark sessanta-quaranta, Investment Clock passa. Ma leggete la nota nella tabella: i suoi pesi sono stati tarati in-sample, quindi la sua prova è più debole di quella di un modello giudicato su dati mai visti. Una promozione, con un asterisco. E questo ci porta a ciò che un gate non può fare.

I limiti onesti di un gate

Il cancello funziona. Ma siamo onesti su ciò che non fa, perché uno strumento in cui si crede ciecamente è peggio di nessuno strumento.

Primo: un test set tenuto da parte è privo di distorsioni solo se lo usiamo una volta sola. Nel momento in cui sbirciamo il risultato del test, aggiustiamo qualcosa e guardiamo di nuovo, quel test set è diventato in silenzio un set di validazione, cioè dati contro cui ora stiamo scegliendo. La distorsione da selezione rientra dalla porta di servizio. Ogni sguardo in più è un altro tentativo e, come abbiamo visto, i tentativi gonfiano la performance. La disciplina è dura ma semplice: leggiamo il numero del test una volta, e qualunque cosa dica, quello è il numero. Nessuna seconda occhiata.

Secondo, ed è il limite più profondo: anche un cancello gestito alla perfezione limita solo la distorsione da selezione, cioè il gonfiamento dovuto all'aver provato molte cose. Non limita il rischio economico. La non stazionarietà significa che il mondo cambia: correlazioni valide nella finestra di test possono rompersi, e un cambio di regime — un cambiamento dello stato di fondo del mercato, per esempio da espansione a recessione — può rendere il futuro strutturalmente diverso da tutto ciò su cui la strategia è stata testata. Il test ci dice che la strategia non è stata solo fortunata sui dati passati. Non promette che il passato somigli al futuro. Il cancello è necessario, ma non sufficiente.

E una parola sui numeri citati stasera: i circa quarantacinque tentativi per fabbricare uno Sharpe pari a uno, la soglia della statistica t vicina a tre, il calo del ventisei e cinquantotto per cento misurato da McLean e Pontiff. Sono risultati di ordine di grandezza. Dipendono dal modello, dal campione, dal mercato. Trattiamoli come taratura del nostro scetticismo, non come costanti di natura. La lezione è direzionale, e la direzione è: aspettarsi meno di quanto il backtest promette.

Le prove sul tavolo

Tutto in questo episodio poggia su lavori pubblicati e sottoposti a revisione — non sulla nostra opinione. Questi otto studi, sulle principali riviste di finanza e matematica applicata, sono le fonti dietro ogni affermazione che avete appena sentito: che molti tentativi producono uno Sharpe alto per puro caso, che l'asticella onesta di significativita' e' una t-statistica vicina a tre e non a due, e che il decadimento fuori campione e' reale e ampio. Quando diciamo che il numero sulla finestra totale non e' una previsione, queste sono le prove sul tavolo. Le citazioni complete sono nelle nostre note di ricerca: vi invitiamo a leggere gli originali, senza fidarvi solo di noi.

La lunghezza non e' evidenza

Tiriamo dunque le fila. In tutta questa puntata è tornata sempre la stessa idea: una strategia messa a punto e misurata sullo stesso tratto di storia è stata, che lo ammettiamo o no, adattata a quella storia. Il suo indice di Sharpe sull'intera finestra — quell'unico numero di copertina che tutti amano citare — è perciò una descrizione del passato. Non è una previsione. Ci dice quanto bene la regola avrebbe fatto sui dati che abbiamo già usato per sceglierla, che è una domanda molto diversa, e assai più lusinghiera, rispetto a quanto farà su denaro che non abbiamo ancora rischiato.

L'unica stima difendibile dell'abilità futura viene da dati che la strategia non ha mai toccato mentre la selezionavamo. È tutta qui la ragione delle cose poco appariscenti che facciamo. Pre-registriamo: scriviamo cosa proveremo prima di guardare. Teniamo da parte un blocco di storia e non lasciamo che nessuna scelta dipenda da esso. Penalizziamo il numero di tentativi, perché, come abbiamo visto, provare più configurazioni gonfia in modo meccanico il miglior Sharpe interno al campione. E leggiamo l'insieme di test una volta, esattamente una volta, perché un blocco riservato sbirciato di continuo diventa in sordina solo un altro insieme di validazione, e la distorsione rientra.

Nulla di tutto ciò garantisce un profitto. Un cancello pulito limita la distorsione da selezione; non abolisce il rischio economico, e non può promettere che il futuro somiglierà al passato. Ma traccia la linea onesta tra una previsione e una bella storia sul passato. La lunghezza in giorni non è una prova. La prova è ciò che sta fuori dal campione.

Nella prossima puntata affrontiamo la domanda che tutti ormai si pongono, quella che rende ogni quant un po' nervoso: al posto di tutto questo, basta chiedere a ChatGPT o a Claude un'allocazione? Guarderemo, con onestà, a cosa un grande modello linguistico può e non può fare qui.

Grafici

Inflazione da best-of-N: più configurazioni provi, più la Sharpe in-sample si gonfia.
Inflazione da best-of-N: più configurazioni provi, più la Sharpe in-sample si gonfia.
Decadimento out-of-sample (McLean-Pontiff): quanto svanisce un edge dopo la pubblicazione.
Decadimento out-of-sample (McLean-Pontiff): quanto svanisce un edge dopo la pubblicazione.
Il caso nostro: come si comporta il gate a blocchi sui nostri modelli di ricerca.
Il caso nostro: come si comporta il gate a blocchi sui nostri modelli di ricerca.
La stessa strategia, date di inizio diverse: la finestra totale non è il futuro.
La stessa strategia, date di inizio diverse: la finestra totale non è il futuro.

Grafici da backtest simulati in-sample su dati storici di mercato, a fini illustrativi: leggere la forma e il rischio, non i livelli esatti come previsione. Universo per classi/settori, nessun titolo specifico né allocazione corrente.

Comunicazione di marketing a scopo informativo/educativo — non consulenza personalizzata, raccomandazione o sollecitazione all'investimento, e nessuna promessa di rendimento. Il capitale è a rischio e sono possibili perdite. AlphaFrame presta consulenza in materia di investimenti e NON gestione di portafogli: i modelli qui descritti sono ricerca quantitativa proprietaria, non un prodotto o servizio sottoscrivibile. I dati sono in-sample/da backtest su dati storici, al netto della tassa del 26% e dei costi dove specificato, con i limiti tipici (possibile adattamento ai dati); le performance passate o simulate non sono indicative di quelle future. Universo descritto per classi/settori: nessun titolo specifico né allocazione corrente.