In questo articolo
Dopo questo articolo saprai…
- Controllare ultimo dato necessario per ciascuna etichetta di training.
- Distinguere aggiornamento predefinito e selezione retrospettiva.
- Calcolare WFE e drawdown senza trasformarli in garanzie.
I concetti senza lasciare l’articolo
Backtesting Piano di trading Conto demo Drawdown Percentuale di operazioni vincentiL’analisi walk-forward ripete selezione dei parametri su dati precedenti e valutazione su un blocco successivo. Esamina una procedura di aggiornamento, non soltanto l’ultimo set di parametri. Calendario e regole vanno fissati prima di vedere gli esiti. Training condiviso e dipendenza temporale significano che le finestre non sono automaticamente indipendenti; scegliere la suddivisione dopo averne visto il risultato può ancora sovra-adattare la procedura.
Definisci la procedura prima di valutarla
Scrivi durata di training e test, frequenza di aggiornamento, candidati, criterio, gestione degli ex aequo e azione se nessun candidato supera i requisiti. Massimizzare profitto è una scelta, non un default neutro. Usa costi, esposizione e numerosità coerenti. Cercare molte alternative può selezionare rumore, ma win rate oltre 75% su duecento trade o profit factor oltre 3,5 non diagnosticano da soli curve fitting. Controlla dati e cronologia della selezione con Backtest di una strategia: regole, costi e dati verificabili.
Il gap non basta se l’etichetta arriva nel test
Modello assegnato con periodi regolari: l’etichetta del campione t usa chiusure t +1 e t +2. Il test parte al periodo 10; adatti il modello dopo close 9 e prima dell’inizio 10. Un gap di un campione lascia ultimo training 8: la sua etichetta richiede close 10, ancora ignoto. Con gap due, ultimo training 7 e fine dell’etichetta a 9, già disponibile. L’indice passato del campione non rende passato ogni dato che lo descrive.
L’etichetta può oltrepassare il gap
Scorri orizzontalmente o ingrandisci il diagramma per leggere i dettagli.
Elenca l’ultimo dato necessario per ogni etichetta mantenuta. Verifica disponibilità dopo la costruzione reale di feature e target, non soltanto la distanza degli indici. Due è corretto per questo esercizio, non per ogni previsione. Una durata variabile del target o pubblicazione ritardata richiede un controllo ulteriore.
Scorrere cronologicamente le finestre
Con training di quattro anni e test di uno, scegli parametri su 2018–2021 e congelali per 2022; poi scegli su 2019–2022 e valuta nel 2023. In 2018–2023 ci sono due valutazioni complete, non cinque. Quando diventa storicamente disponibile, il passato OOS può entrare in un training successivo senza cambiare la cronologia originale.
Unisci soltanto operazioni OOS in ordine temporale e registra l’incertezza. Training sovrapposto e test temporalmente vicini non creano campioni indipendenti. Se risultati intermedi guidano modifiche al disegno, conserva una valutazione finale ancora intatta per la nuova procedura; appena il suo risultato influenza altre scelte, non è più intatta.
Rolling ed expanding: memoria diversa, nessuna garanzia
Rolling mantiene lunghezza fissa: 2018–2021, 2019–2022, 2020–2023. Anchored o expanding conserva l’inizio: 2018–2021, 2018–2022, 2018–2023. La prima dimentica dati vecchi e riduce il campione disponibile; la seconda accumula osservazioni potenzialmente prodotte in regimi diversi. Nessuna garantisce adattamento rapido o parametri stabili. Non assegniamo automaticamente trend following al rolling e mean reversion all’expanding.
Impara normalizzazione, selezione delle feature e imputazione dai soli dati di training consentiti, poi applica la trasformazione al test. Impararle dall’intera storia trasferisce informazione di valutazione al modello. La documentazione scikit-learn distingue fit e transform. TimeSeriesSplit esclude campioni con il parametro gap ma non interpreta tutte le dipendenze del target; campioni equidistanti permettono durate comparabili, eventi irregolari richiedono calendario esplicito.
Walk-forward efficiency: convenzione e denominatore
Nella convenzione TradeStation il confronto usa rendimento annualizzato OOS diviso per IS con stesse definizioni di costi, esposizione e rendimento. Dieci per cento diviso venti dà 0,5, cioè 50%. Anche −5% diviso −10% dà 0,5, pur perdendo in entrambi i periodi. Denominatore zero rende il rapporto indefinito. Un valore sopra uno non dimostra automaticamente uso di informazioni future.
TradeStation descrive il 50% come regola orientativa, non autorizzazione universale a rischiare capitale. Esamina risultati netti, concentrazione temporale, copertura, sensibilità e Drawdown separatamente. Parametri variati molto o WFE bassa meritano indagine, ma non costituiscono da soli prova di overfitting.
Due strategie e tre esperimenti diversi
Nel confronto ipotetico, OOS annualizzato 12% contro IS 30% dà WFE 0,4; 20% contro 25% dà 0,8. Nessuno dei due rapporti dimostra vantaggio duraturo. Per il calendario di sei anni, quattro iniziali di training lasciano soltanto due blocchi OOS annuali; cinque anni di dati ne lasciano uno. Cinque test annuali consecutivi richiedono nove anni complessivi, quattro iniziali più cinque.
Controesempio di spareggio senza capitalizzazione e senza attribuire una valuta: A e B sono ex aequo in calibrazione in entrambi i passaggi, e la regola predefinita sceglie A. Gli importi netti OOS assegnati sono A +5 e −2; B −1 e +6. La regola fissata dà +3. Scegliere ogni vincitore dopo l’esito dà +11; scegliere B dopo aver ispezionato tutta la storia dà +5. Sono tre esperimenti diversi. Salva candidati a pari merito e ID scelto prima di ogni valutazione. Una nuova politica elaborata dopo OOS richiede versione e valutazione successiva proprie.
Tre selezioni differenti non sono tre stime dello stesso esperimento.
- A scelto prima
- +3 unità nette – +5 − 2, senza capitalizzazione.
- Vincitore di ogni blocco dopo
- +11 unità nette – +5 + 6: usa informazioni future rispetto alla scelta.
- B scelto dopo tutta la storia
- +5 unità nette – −1 + 6; nuova politica richiede test successivo.
Cosa il walk-forward non può fare
Decidi trattamento delle posizioni aperte al cambio: chiusura con costi oppure gestione continuata secondo regola esplicita. Non cancellare perdite aperte azzerando il conto al confine. Escludi profitti di calibrazione, risolvi eventuale esposizione sovrapposta e non contarla due volte. Registra finestre senza trade e concentrazione dei risultati. Confronta la procedura con una baseline non aggiornata scelta prima, sugli stessi dati, costi e sizing.
Nuovo esempio EUR con nessun flusso esterno e percorso netto assegnato: primo blocco OOS 1000 → 900 → 1000, secondo 1000 → 800 → 1000. Drawdown dei blocchi 10% e 20%; media 15%, ma massimo drawdown dell’equity unita è 20%. Le finestre tornano allo stesso saldo nel caso, non vengono resettate arbitrariamente. Media dei rischi locali e rischio della sequenza completa sono misure diverse, anche con risultato finale zero.
Hold-out storico, osservazione demo successiva e Monte Carlo nel trading:percorsi,arresti e dipendenze rispondono a domande diverse. Una permutazione conserva gli esiti in ingresso e cambia ordine, non descrive tutti i futuri regimi o costi. Il Forward di MT5 usa una parte successiva del periodo storico dopo l’ottimizzazione: non è automaticamente walk-forward multi-finestra o prova demo prospettica. Documenta calendari e criteri tentati.
Preparare il prossimo esperimento
- Scegli finestre adatte alla domanda e dati realmente disponibili. Conta esplicitamente training iniziale e blocchi OOS: cinque passi annuali dopo quattro anni richiedono nove anni, senza garantire indipendenza.
- Per il caso 2018–2023 salva candidati e scelta 2018–2021 prima del 2022; poi 2019–2022 prima del 2023. Mantieni tutti gli esiti netti.
- Calcola WFE con annualizzazione coerente e denominatore interpretabile. Analizza anche rendimenti sottostanti, drawdown unito e versioni della procedura.
- Prova limiti e condizioni di esecuzione senza usare WFE sopra 0,5 come semaforo. Durata demo, percentile simulato e criterio di rischio richiedono motivazione: tre-sei mesi e drawdown al 95° percentile sotto 25% non garantiscono profitto.
Verifica ciò che hai imparato
Circa 2 minuti di esercizio.
Mostra risposta e spiegazione
Dopo close 9, le chiusure 8 e 9 necessarie al campione 7 sono note. Vale per questo orizzonte, non per ogni modello.
Altre domande
Che differenza c’è rispetto a un solo hold-out?
Un hold-out riserva un blocco per una configurazione; walk-forward ripete una procedura di aggiornamento predefinita. In 2018–2023 con quattro anni di training e uno OOS ottieni 2022 e 2023,due blocchi. Cinque valutazioni annuali richiedono nove anni; più finestre non eliminano dipendenza o caso.
Come interpreto WFE pari a 0,5?
Dichiara la convenzione: rendimenti annualizzati OOS/IS con costi ed esposizione coerenti. 10/20 e −5/−10 danno 0,5, ma solo il primo esempio ha rendimenti positivi. Con IS zero il rapporto non è definito. Il 50% di TradeStation è orientativo, non permesso a rischiare capitale.
Meglio rolling o expanding?
Rolling conserva una lunghezza fissa; expanding mantiene inizio e amplia il training. Memoria breve riduce dati vecchi e campione; memoria lunga può mescolare regimi. Nessuna garantisce adattamento o stabilità. Scegliere tra calendari dopo OOS è un’altra selezione.
Un test pulito garantisce profitto live?
No. Verifica dati, costi, fill, esposizione e selezioni precedenti. Forward storico MT5 non è osservazione futura demo; simulazioni dipendono da input e modello. Nessun insieme fisso di WFE, durata demo o percentile di drawdown dà certezza.
Un gap 2 evita sempre leakage?
No: nel caso il target t usa due close futuri e il fit avviene dopo 9; l’ultimo campione 7 termina a 9. Cambiare orizzonte, disponibilità o feature richiede nuova verifica. TimeSeriesSplit esclude campioni ma non interpreta il significato economico di ogni campo.
Posso mediare i drawdown OOS?
È una misura diversa dal drawdown della sequenza unita. Nel nuovo caso EUR i blocchi 1000 → 900 → 1000 e 1000 → 800 → 1000 hanno drawdown del 10% e 20%, media 15%, ma l’equity intera scende al massimo del 20%. Non cancellare posizioni o perdite ai confini.
Fonti e verifica
- scikit-learn — TimeSeriesSplit
Sezioni 633–674 e esempi 679–738 letti: indici cronologici e gap in campioni. Esiti a durata variabile richiedono verifica della disponibilità effettiva.
- scikit-learn — Common pitfalls
Sezione 120–141 letta: informazioni indisponibili al momento della previsione, separazione train/test e trasformazioni apprese soltanto sul training. Esempi del progetto distinti da una ricerca di trading.
- TradeStation — Walk-forward Summary
TradeStation descrive l’analisi walk-forward e una soglia orientativa di efficienza tra campione e periodo successivo. La soglia non certifica profitti futuri.
- MetaQuotes — Strategy Optimization
Il test forward di MetaTrader 5 usa una parte più recente della storia nell’ottimizzazione; va distinto da una prova prospettica su un conto demo.
I calcoli usano ipotesi esplicite. Non sostituiscono i dati attuali di mercato o le condizioni dell’intermediario.
