Fai un backtest su MT5 aprendo lo Strategy Tester con View > Strategy Tester (oppure Ctrl+R), scegliendo l’Expert Advisor, il simbolo, il timeframe, l’intervallo di date e il modello di tick, e premendo poi Start. Cinque minuti dopo hai un report. La domanda che scotta non è come arrivarci: è quali dei numeri stampati su quel report significano davvero ciò che pensi.
Questa guida copre entrambe le metà: la procedura e la lettura. È dalla lettura che vengono le prove di questa pagina, perché abbiamo 23 test finiti in archivio e i loro report si contraddicono da soli in un modo che quasi nessuno controlla.
Cosa ottieni da un test finito
L’artefatto è un report in due metà: un blocco di risultati (operazioni, profit factor, drawdown, netto) e l’elenco delle operazioni che ci sta dietro. Contano entrambe, e solo la prima viene citata.
Quello che dovresti poter dire alla fine non è «ha guadagnato 3.023 $». È: questo insieme di regole, su questo simbolo e questo timeframe, su questa finestra, con questo modello di tick, su un conto da 10.000 $, ha prodotto questo numero di operazioni, a questo profit factor, essendo arrivato al massimo così sott’acqua. Ogni pezzo di quella frase è un’impostazione che hai scelto tu, e cambiarne una qualsiasi cambia la risposta. È per questo che qui le impostazioni vengono prima della procedura.
Preparazione: i dati e le impostazioni che decidono la risposta
Ecco un’esecuzione reale che abbiamo lanciato e pubblicato, citata in modo che tu possa tenere gli input e l’output uno accanto all’altro. È il registro dietro Stillwater, una strategia solo long su USD/JPY sul grafico a 5 minuti.
| Impostazione | Questa esecuzione | Perché è impostata così |
|---|---|---|
| Expert | Stillwater (19 input) | Ogni input che il report è stato verificato portare — la superficie che dovresti reinserire per riprodurla |
| Simbolo | USDJPY_DUKA | Un simbolo dedicato allo storico dei tick, tenuto separato da quello quotato in tempo reale perché l’esecuzione sia ripetibile |
| Periodo | M5 | Il grafico su cui le regole vengono valutate; il filtro di tendenza legge M30 da dentro l’EA |
| Intervallo di date | 2019-01-01 → 2026-07-01 | 7,5 anni, abbastanza da contenere più di un regime |
| Modelling | Every tick based on real ticks (Model 4) | Tutto ciò che opera dentro la giornata ha bisogno che il percorso intra-barra sia misurato, non interpolato |
| Deposit | 10.000 USD | Fisso su ogni esecuzione qui, così le percentuali di drawdown restano confrontabili |
| Leva | Richiesta 1:500 — girata a 1:100 | Vedi sotto. Questa riga non è ciò che sembra |
| Optimisation | Disattivata | Un singolo passaggio. Cercare parametri è un altro lavoro, con altre trappole |
Due di quelle righe meritano più di una cella di tabella.
La qualità dei dati è l’impostazione su cui poggia il risultato. Ogni altra cifra del report viene calcolata sopra la serie di prezzi che il tester ha usato, quindi il valore della qualità di modellazione delimita quanto il resto del report parli davvero della tua strategia. Il registro pubblicato dell’esecuzione qui sopra dichiara il 100% di qualità dello storico su 229 milioni di tick reali, letto direttamente dal report del tester. Un test su dati di barre interpolati avrebbe prodotto un insieme di operazioni diverso, non semplicemente esecuzioni diverse: il tester presume un percorso liscio tra i prezzi che conosce, e una strategia con uno stop stretto opera proprio su quella presunzione. Se non hai letto quali dati tick il tuo terminale possiede davvero per quel simbolo, è la prima cosa da controllare, prima ancora della strategia.
Il campo della leva è una richiesta, non un’impostazione. In tutti e 23 i test in archivio al tester è stato chiesto 1:500 e il test è girato a 1:100 — 0 volte su 23 la cifra richiesta ha avuto effetto. Non è una supposizione ricavata rileggendo il campo: è stata inchiodata misurando il margine che una posizione ha davvero consumato dentro il test, 126,39 USD, che corrisponde al calcolo con leva 100 e non a quello con leva 500. La conseguenza pratica è che un progetto sensibile al margine — una griglia, una martingala, qualunque cosa impili posizioni — può superare un backtest a una leva che non vedrà mai, oppure fallirne uno a una leva che non avrebbe usato. Confronta la cifra del margine nel report con la tua aritmetica, invece di fidarti della casella che hai compilato.
Passo dopo passo: lanciare il test in MT5
- Apri View > Strategy Tester (
Ctrl+R). Il pannello si aggancia in basso nel terminale, con Settings, Inputs, Agents e Journal come schede. - Nella scheda Settings scegli l’Expert Advisor, poi il Symbol e il Period. Scegli il simbolo che opererai davvero: da lì arriva la specifica, non solo il prezzo, e la dimensione del contratto e le regole di margine cambiano tra le varianti che un broker offre della stessa coppia.
- Imposta l’intervallo di date. Usa un periodo personalizzato con date From e To esplicite invece di «Last month», così l’esecuzione è riproducibile da chi legge soltanto il tuo report.
- Scegli il modello in Modelling. Every tick based on real ticks per qualsiasi cosa intraday; Every tick generato da barre M1 per i sistemi più lenti; i modelli più grossolani servono a scandagliare parametri, mai a produrre una cifra che pubblichi.
- Imposta Deposit, valuta e leva, e lascia Optimisation disattivata al primo passaggio. Annota la leva che hai chiesto: la verificherai contro le cifre di margine del report invece di darla per buona.
- Apri la scheda Inputs e leggi ogni valore. È la scheda che si porta dietro in silenzio le modifiche dell’esecuzione precedente, ed è il motivo per cui i nostri registri verificano gli input contro il report finito e non contro il file che credevamo di aver caricato. Un’esecuzione di questo insieme ne porta 362.
- Premi Start. Lascia Visual mode spento, a meno che tu non stia facendo il debug della logica d’ingresso: è molto più lento e ti spinge a guardare invece che a misurare.
- Quando finisce, apri le schede Results, Graph e Backtest, poi fai clic destro dentro il report e salvalo. È il report salvato, non uno screenshot della curva di equity, la cosa che confronterai più avanti.
- Annota la build del terminale insieme al risultato. I nostri 23 test coprono le build 6090 e 6140; due esecuzioni della stessa strategia sotto build diverse non sono automaticamente lo stesso esperimento.
- Controlla quale storico possiede davvero il simbolo
- Scegli il modello di tick in base alla durata delle posizioni
- Imposta simbolo, periodo e un intervallo di date esplicito
- Leggi ogni valore nella scheda Inputs
- Lancia un solo passaggio con l’ottimizzazione disattivata
- Salva il report, non uno screenshot
- Leggi entrambe le righe di drawdown prima della riga del profitto
Leggere i risultati: cosa significano davvero i numeri del report
Prendi l’output della stessa esecuzione. Ecco cosa è tornato indietro:
| Risultato | Valore | Cosa deve superare prima che tu prosegua |
|---|---|---|
| Operazioni totali | 416 | Abbastanza perché la media descriva un campione, non un aneddoto |
| Profit factor | 1,28 | Sopra 1,0 con un margine che sopravvive ai costi che non hai modellato |
| Profitto netto | 3.023,01 USD | Su un deposito da 10.000 — un rendimento, non un voto |
| Drawdown di saldo | 5,82% (747,57) | Il calo peggiore sulle operazioni chiuse |
| Drawdown di equity | 6,11% (787,60) | Il calo peggiore incluse le posizioni aperte — quello che avresti guardato |
| Win rate | 60,82% | Da solo non significa nulla; leggilo insieme allo stop e al target, qui 100 e 200 pip |
| Condizioni del test | |
|---|---|
| ID esperimento | EXP-BACKTEST-RUNBOOK-001 |
| ID esecuzione | stillwater__gate_v2_duka_realticks__2019-01-01_2026-07-01 |
| Build MT5 | 6140 |
| Specifiche di contratto | Exness-MT5Trial5 |
| Simbolo / timeframe | USDJPY_DUKA M5 |
| Periodo | 2019-01-01 – 2026-07-01 |
| Modello | Every tick based on real ticks (Model 4) |
| Deposito | 10,000 USD |
| Leva richiesta | 1:500 |
| Leva effettiva | 1:100 |
| Misurato | 2026-08-23 |
| Ultima verifica | 2026-08-25 |
Tre cose di quel report vengono fraintese di continuo.
Le due righe di drawdown rispondono a due domande diverse. Il drawdown di saldo misura la curva dell’equity sulle sole operazioni chiuse; il drawdown di equity include il flottante sulle posizioni ancora aperte. Sui nostri 23 test la riga dell’equity è stata la più profonda ogni volta, e l’ampiezza dello scarto non è prevedibile dalla descrizione della strategia: il più stretto è stato di 0,04 punti (0,67% contro 0,71%) e il più largo di 11,10 punti (14,52% contro 25,62%, un rapporto di 1,76). Una strategia che chiude in fretta ha uno scarto piccolo. Una che resta dentro un movimento avverso ce l’ha grande, ed è esattamente la strategia di cui hai più bisogno di conoscere il drawdown prima di metterci dei soldi.
MT5 stampa ogni drawdown due volte, sotto due definizioni. Il drawdown Maximal è misurato nel momento in cui l’importo era più grande; quello Relative nel momento in cui la percentuale era più grande. Sono istanti diversi della stessa esecuzione, quindi le due cifre non sono due viste dello stesso evento. Dei nostri test, 16 sono registrati sotto la definizione Maximal e 5 sotto Relative — e la pipeline che scrive quei registri si rifiuta di accoppiare una cifra di saldo Maximal con una di equity Relative, perché una pagina che le mostrasse entrambe starebbe confrontando due istanti diversi. Quando citi un drawdown, dichiara insieme a esso la definizione.
I totali del report sono arrotondati, e la sua finestra può non essere la finestra che intendi tu. Ricalcolato dall’elenco pubblicato delle operazioni, il profit factor della stessa esecuzione è 1,2843 e non l’1,28 stampato nel report — innocuo qui, tutt’altro che innocuo quando confronti due candidati che distano tre decimali. Più importante ancora, quell’esecuzione da 416 operazioni si divide in 404 operazioni fino alla data di taglio della pubblicazione, il 2026-04-01, e 12 dopo. Le ultime 12 hanno reso un profit factor di 2,3317. Nessuno dei due numeri è sbagliato: rispondono a domande diverse, e la data di taglio è una data scelta da una persona, non qualcosa che il tester ha stampato. Se hai intenzione di dividere un’esecuzione tra «la parte su cui ho adattato» e «la parte su cui non l’ho fatto», scrivi dove passa la linea prima di guardare la seconda metà. Leggere un report di backtest MT5 fa quella divisione su tutte e 23 le esecuzioni e mostra di quanto si sposta la cifra in evidenza.
Trappole che invalidano un test in silenzio
Migliorarlo: cambia una cosa sola, rilancia, confronta
Il ciclo è volutamente noioso. Cambia una variabile, rilancia e scrivi entrambi i risultati. Due variabili insieme e non puoi attribuire la differenza a nessuna delle due.
L’ordine che ti dà più informazione per esecuzione è questo:
- Fai variare la finestra prima della strategia. Lancia 2019–2022 e 2022–2026 separatamente. Se le due metà non concordano, i parametri stanno descrivendo un solo periodo, e nessuna quantità di messa a punto lo risolve.
- Fai variare il simbolo. Una regola che funziona su una sola coppia è un fatto su quella coppia. Il nostro insieme comprende gli stessi approcci generali su USD/JPY, EUR/GBP, AUD/CAD, NZD/USD, un indice e una coppia crypto esattamente per questo motivo.
- Fai variare il modello di tick. Rilancia il candidato sopravvissuto su un modello più grossolano. Se il risultato crolla, il vantaggio viveva dentro la barra, e il percorso intra-barra è la parte meno affidabile di qualunque simulazione.
- Solo a quel punto fai variare i parametri — e tratta ogni impostazione che hai dovuto cercare come un’affermazione più debole di una che hai scelto in anticipo.
Smetti di iterare quando un cambiamento smette di spostare il risultato fuori dal rumore delle esecuzioni precedenti, oppure quando ti accorgi che stai scegliendo le impostazioni per via di ciò che diceva l’ultimo report. La seconda è la vera condizione di arresto, e arriva prima di quanto la gente si aspetti. L’analizzatore di backtest è utile qui perché rilegge le cifre principali di un report salvato, il che rende il confronto tra due esecuzioni un fatto di aritmetica invece che di memoria.
Prossimi passi: fai un forward test prima di andare in reale
Un singolo backtest pulito è il primo di quattro passi, non il traguardo.
Ottimizza, se la regola ha parametri che valga la pena cercare. Registra tutto l’intervallo di ricerca, non il passaggio vincente: un risultato che hai dovuto cercare è una prova sulla ricerca, e l’intervallo è ciò che dice a chi legge quanto a fondo hai guardato. L’ottimizzazione dei parametri percorre quel passaggio e legge le nostre otto ricerche registrate: 116 combinazioni, e nemmeno un’impostazione che fossimo disposti ad adottare.
Poi fai walk-forward. Adatta su un segmento, misura sul successivo, e ripeti. È l’unico dei quattro passi che attacca direttamente l’overfitting, ed è per questo che vale più di un backtest più lungo.
Poi fai un forward test su un conto demo. È qui che latenza, requote e vero allargamento dello spread entrano finalmente nell’esperimento. Fallo girare abbastanza a lungo da vedere la strategia perdere e recuperare, perché il numero che ti serve davvero non è il rendimento: è se riesci a restare seduto attraverso il drawdown che hai misurato qui sopra.
Poi decidi. Scrivi in anticipo la perdita che ti farebbe spegnere tutto. Uno stop che imposti prima di versare è una decisione; uno che imposti durante un drawdown è una reazione.
Se prima di lanciare il tuo vuoi un riferimento già lavorato, ogni scheda del catalogo di EA pubblicati porta l’elenco completo delle operazioni chiuse, entrambe le righe di drawdown e il manifesto di esecuzione che ci sta dietro, e come testiamo descrive lo standard a cui quei registri sono tenuti. Il resto delle guide al backtesting entra più a fondo nei passi di ottimizzazione e di walk-forward che questa pagina si limita a indicare. Qui niente promette un risultato: ogni cifra di questa pagina descrive esecuzioni che sono già avvenute.