Categoria
Performance
Livello
Avanzato
Si usa in
BacktestingProgettazione della strategiaOperatività su MT5

Analisi walk-forward

Analisi walk-forward: metodo di validazione che riottimizza una strategia su una finestra di storico, opera con quelle impostazioni intatte sulla finestra immediatamente successiva, poi fa scorrere in avanti entrambe le finestre e ripete — citando soltanto i segmenti mai toccati.

anche: WFA, ottimizzazione walk-forward, WFO, test out-of-sample progressivo

Aggiornato · Revisionato · Revisionato da mt5depot research desk

In parole semplici

Tari le regole su un tratto di storico, operi con quelle regole intatte sul tratto che segue, poi fai scivolare avanti entrambi i tratti e rifai tutto da capo. Solo i tratti mai toccati contano nel numero che citi.

Perché conta

Un singolo test out-of-sample risponde a una domanda una volta sola. Il walk-forward la ripropone a ogni passo, ed è l'unico modo per vedere se un vantaggio continua a sopravvivere alla riottimizzazione invece di esserne uscito indenne una volta per fortuna. Inoltre mette in scena ciò che fa davvero chi impiega una strategia: scegliere i parametri dal passato recente e poi lanciarli dentro un futuro che nessuno ha visto.

  • Valuta la procedura, non un'impostazione. «Riottimizza in questo modo, poi opera» è ciò che farai realmente, quindi è quella la cosa che vale la pena validare.
  • Restituisce una serie di risultati out-of-sample invece di un numero solo, così un singolo trimestre lusinghiero non può reggere da solo l'affermazione.
  • Mette in luce i parametri che si rifiutano di stare fermi. Quando ogni riottimizzazione atterra in un punto nuovo, le regole inseguono il campione e non il mercato.
  • Un solo hold-out nasconde la questione dei regimi. Due delle nostre otto ricerche registrate hanno superato la finestra successiva alla ricerca e sono poi fallite sulla finestra che la precedeva.

Usarlo per validare una strategia

Dove si usa

  • Validare una strategia i cui parametri hai davvero intenzione di riottimizzare a scadenze regolari.
  • Scegliere l'intervallo di riottimizzazione — per quanto tempo un set di parametri resta utilizzabile prima di aver bisogno di un aggiornamento.
  • Distinguere un vantaggio che sopravvive a più regimi da uno che è esistito soltanto nella finestra su cui è stato tarato.
  • Costruire un record out-of-sample difendibile quando lo storico è troppo corto per rinunciare a un unico grande blocco riservato.

Come si presenta un risultato affidabile

  • Solo i segmenti out-of-sample compongono il dato di testa, uniti uno di seguito all'altro, con le cifre in-sample accanto e non mescolate dentro.
  • Hai fissato la lunghezza di addestramento, la lunghezza di test e il passo prima della prima esecuzione, e tutti e tre viaggiano insieme al risultato.
  • Il resoconto cita l'efficienza out-of-sample — la performance out-of-sample come quota di quella in-sample — e non solo il profitto.
  • Ogni passo elenca i parametri che ha selezionato, così chi legge può giudicare quanto vagano.
  • Da qualche parte compare il numero di configurazioni walk-forward provate, perché provarne molte è già di per sé una forma di adattamento.

Segnali d'allarme

  • Una cifra unica e combinata, senza alcuna separazione fra la metà in-sample e quella out-of-sample.
  • Lunghezze delle finestre che sembrano tarate: un rapporto fra addestramento e test bizzarro che nessuno spiega.
  • Parametri che saltano a ogni riottimizzazione, il che significa che ogni adattamento insegue il rumore della finestra precedente.
  • Efficienza vicina o superiore al 100 %, che indica molto più spesso una fuga di informazione fra le finestre che una strategia insolitamente robusta.
  • Varianti anchored e rolling citate come se fossero intercambiabili, dato che una finestra che cresce e una fissa rispondono a domande diverse.

Backtest e operatività reale

  • Il walk-forward chiude una parte del divario con i risultati reali, perché la procedura testata è la procedura impiegata.
  • Lascia intatto il rischio di esecuzione. Slippage, allargamento dello spread e latenza restano tutti fuori dall'esercizio.
  • Non può inventare regimi che lo storico non ha mai contenuto, quindi una strategia che sopravvive a venti riottimizzazioni dentro un unico decennio tranquillo resta non testata contro un decennio sotto stress.
  • Aspettati risultati reali vicini alla serie out-of-sample, non a quella in-sample. Le cifre in-sample diagnosticano la ricerca; non prevedono nulla.

Metodo di validazione consigliato

  1. 1MetaTrader 5 non porta con sé alcun walk-forward progressivo. Il campo Forward nella scheda Settings dello Strategy Tester taglia l'intervallo una volta sola — 1/2, 1/3, 1/4 o una data personalizzata — e valuta le passate sopravvissute sulla coda, dentro una scheda Forward Results separata. Una singola esecuzione compra un singolo passo.
  2. 2Costruisci la serie a mano: ripeti l'ottimizzazione una volta per passo, ciascuna con l'intervallo di date spostato della lunghezza del passo, e conserva la riga forward di ognuna. Venti segmenti costano venti esecuzioni, quindi stabilisci il numero di passi prima di iniziare.
  3. 3Scegli il criterio di ottimizzazione prima di guardare la griglia, perché è lui a decidere quale passata MT5 dichiara vincente a ogni singolo passo. Custom max instrada quella decisione attraverso OnTester() quando nessun criterio predefinito corrisponde al modo in cui giudichi un'esecuzione.
  4. 4MT5 ritaglia sempre la propria fetta forward dalla fine dell'intervallo, quindi la finestra immediatamente precedente al periodo di addestramento non affronta mai un test. Falla girare tu: sul nostro insieme ha smascherato due configurazioni che il controllo forward aveva già lasciato passare.
  5. 5Annota i parametri vincenti passo dopo passo. La scheda Forward Results ti consegna una passata, mai la traiettoria delle impostazioni lungo i passi — e quella traiettoria è la scoperta.
  6. 6Tratta l'intero esercizio come un unico esperimento. Rieseguirlo con nuove lunghezze di finestra finché non passa sposta l'overfitting di un livello più in alto invece di rimuoverlo.

Esempio

Un passo, preso dal nostro lavoro registrato: le otto ricerche di parametri di EXP-PARAM-SEARCH-OUTCOMES-001. Il template ichimoku ha esplorato una griglia da 12 combinazioni su H1, ha tenuto la sua migliore passata in-sample e poi ha incontrato due finestre che la ricerca non aveva mai toccato.

Griglia esplorata
12 combinazioni
SL 30-80 x TP 60-250, H1
Fattore di profitto in-sample
1,37
Finestra successiva alla ricerca
0,89
Finestra precedente alla ricerca
0,80
Ricerche registrate / adottate
8 / 0

65 % cade dentro la fascia che la maggior parte dei resoconti definisce forte. La stessa impostazione ha comunque perso denaro su entrambe le finestre mai viste, ed è per questo che un passo si legge come un dato e mai come un verdetto.

Calcolo 0,89 diviso 1,37 = 65 % di efficienza sul passo; 0,80 diviso 1,37 = 58 % sulla finestra precedente

Risultato 65 % di efficienza — su un'impostazione che abbiamo rifiutato di pubblicare

Come interpretarlo

Leggi prima la serie out-of-sample, poi il rapporto, poi la stabilità dei parametri. Il profitto di testa è il meno informativo dei tre.

Intervallo Significato
Sotto il 40 % circa La ricerca ha per lo più adattato la propria finestra. Un piccolo vantaggio può sopravvivere, ma non quello pubblicizzato.
Circa 40-60 % Ordinario, una volta che diversi parametri si muovono. Pianifica attorno alla cifra out-of-sample, non a quella in-sample.
Sopra il 60 % su un singolo passo Incoraggiante, non un verdetto. Il nostro passo al 65 % ha comunque perso su entrambe le finestre che non aveva visto.
Sopra il 60 % sulla maggior parte dei passi, con parametri stabili Forte. Le riottimizzazioni continuano a funzionare e concordano sulle impostazioni.
Vicino o sopra il 100 % Sospetta una fuga di informazione fra le finestre, un look-ahead, oppure segmenti troppo pochi per portare significato.
  • Conta i segmenti. Quattro segmenti sono un aneddoto; venti sono una distribuzione.
  • Metti in grafico i parametri selezionati lungo i passi. Un ottimo che vaga ti sta dicendo che è rumore.
  • Non fondere mai il capitale in-sample e quello out-of-sample in un'unica curva: quella miscela è in parte compito d'esame e in parte soluzione.
  • Testa anche la finestra precedente al periodo di addestramento. Due delle nostre otto ricerche hanno superato la prova in avanti e fallito quella all'indietro.

mt5depot pubblica la finestra di dati, il modello del tester e il numero di operazioni dietro ogni esecuzione, così qualsiasi affermazione out-of-sample presente qui può essere verificata rispetto al campione che l'ha prodotta.

Errori frequenti

Chiamare walk-forward una singola esecuzione Forward di MT5

Il campo Forward divide l'intervallo una volta sola e riporta la coda. È un unico hold-out anchored con una scheda più ordinata, e risponde alla domanda una volta sola. Il walk-forward ha bisogno che la divisione si sposti, il che in MT5 significa guidare il ciclo di persona: un'ottimizzazione per passo, poi le righe forward raccolte in una serie.

Tarare la configurazione walk-forward stessa

Provare diverse lunghezze di addestramento e di test, e poi pubblicare l'abbinamento che ha ottenuto il punteggio migliore, si limita a spostare l'overfitting di un livello più in alto. Anche le lunghezze delle finestre sono parametri: quindi sceglile, mettile per iscritto, e solo dopo esegui.

Leggere un numero out-of-sample alto come automaticamente buono

La nostra ricerca su macd_signal ha raggiunto 1,14-1,15 sulla finestra successiva alla ricerca e 0,74-0,77 su quella che la precedeva. Numeri out-of-sample alti possono significare una fuga di informazione, un regime favorevole, oppure segmenti troppo pochi — indaga prima di festeggiare.

Dare per scontato che il walk-forward dimostri robustezza contro condizioni mai viste

Testa soltanto le condizioni che lo storico conteneva. Venti riottimizzazioni dentro un solo regime producono venti risultati di quel regime, il che non dice nulla sul prossimo.

In dettaglio

Domande frequenti

Come si esegue un'analisi walk-forward in MetaTrader 5?
MT5 ti dà i pezzi, non il ciclo. Imposta Forward nella scheda Settings dello Strategy Tester su 1/2, 1/3 o 1/4: il tester ottimizza sulla parte iniziale del tuo intervallo di date e valuta le passate sopravvissute sulla coda, elencandole in una scheda Forward Results dedicata. Questo è un passo. Per ottenere una serie, sposta in avanti l'intero intervallo di date della lunghezza del passo ed esegui di nuovo l'ottimizzazione, una volta per segmento, registrando ogni volta la riga forward e i parametri vincenti. Venti segmenti significano venti esecuzioni.
Quali lunghezze devono avere le finestre in-sample e out-of-sample?
Abbastanza lunghe perché la finestra di addestramento contenga più di un regime e quella di test contenga abbastanza operazioni da voler dire qualcosa. I rapporti predefiniti del tester di 1/2, 1/3 e 1/4 sono punti di partenza sensati, e una data forward personalizzata dà una fetta di test più corta quando il passo è piccolo. Conta più la regola dei numeri: scegli il rapporto prima della prima esecuzione, perché provarne diversi e pubblicare il migliore ripete esattamente l'errore che il walk-forward esiste per intercettare.
L'analisi walk-forward elimina l'overfitting?
No. Lo sposta e lo rende visibile. La riottimizzazione avviene comunque dentro ogni finestra di addestramento, quindi il metodo misura quanta parte di quell'adattamento sopravvive al contatto con la finestra successiva, invece di impedirlo. Le nostre otto ricerche registrate hanno percorso 116 combinazioni di parametri e non ne hanno adottata nessuna: due di esse hanno superato la finestra successiva alla ricerca e sono poi fallite su quella che la precedeva, che è esattamente lo schema che un singolo hold-out nasconde.
Che cosa conta come una buona efficienza out-of-sample?
All'incirca fra il 40 % e il 60 % è ordinario, una volta che una manciata di parametri si muove, e valori sopra il 60 % mantenuti sulla maggior parte dei passi con parametri stabili contano come forti. Tratta con sospetto qualsiasi passo singolo: la nostra ricerca dall'adattamento migliore ha segnato 65 % su un passo e l'impostazione scelta ha comunque perso denaro su entrambe le finestre che non aveva visto. Una cifra vicina o superiore al 100 % segnala molto più spesso una fuga di informazione fra la finestra di addestramento e quella di test che una strategia insolitamente robusta.
Quale criterio di ottimizzazione deve classificare le passate?
Decidilo prima che compaia la griglia, perché il criterio — la funzione obiettivo, nella letteratura più ampia — sceglie la passata vincente a ogni passo. Una classifica basata sul saldo premia la passata che ha rischiato di più, una basata sul drawdown premia quella che ha operato di meno, e Custom max consegna la decisione al tuo OnTester() quando nessuna delle due va bene. Nelle nostre ricerche registrate la classifica del tester non ha mai deciso nulla da sola: ogni passata sopravvissuta doveva poi tenere un fattore di profitto sopra 1,0 su tre finestre, e nessuna delle otto ci è riuscita.
In che cosa il walk-forward differisce da un singolo test out-of-sample?
Un test singolo mette da parte un blocco di dati e verifica i parametri finali contro di esso una volta sola. Il walk-forward ripete il ciclo tara-poi-testa lungo tutto lo storico, quindi restituisce una serie di risultati out-of-sample e mette alla prova la procedura di riottimizzazione stessa — la cosa che chi impiega una strategia esegue davvero, mese dopo mese.