Backtesting & verifica intermediate 13 min di lettura

Leggere il report di backtest MT5: 23 report e cosa omette ogni cifra

Un report di backtest MT5 parla di un insieme di operazioni e di uno storico dei prezzi: togline una metà e i numeri cambiano. Abbiamo letto i 23 report pubblicati qui: in 14 delle 20 con entrambe le fette il profit factor in evidenza lusinga il periodo di selezione dell'EA, uno ne copre 303 su 315, e lo stesso EA su un'altra fonte dati è sceso da 1,35 a 1,13, da promosso a bocciato.

Pubblicato · Revisionato

Un report di backtest MT5 è un’affermazione su un insieme specifico di operazioni, prodotto su uno specifico storico dei prezzi. Quasi ogni lettura sbagliata nasce dal lasciar cadere metà di quella frase. Il profit factor in evidenza viene letto come una proprietà dell’expert advisor. È invece una proprietà di altre due cose: la popolazione di operazioni che il report ha coperto, e i tick con cui il tester è stato alimentato.

Questo articolo è l’ordine di lettura che produce una decisione. Cosa aveva dato per assunto il report prima di stampare qualsiasi cosa, quale metrica risponde a quale domanda, dove ogni numero ti mente, e cosa ti dice di cambiare ciascuna lettura. La procedura per produrre un report è un lavoro a parte — come fare un backtest lo copre dall’inizio alla fine.

Condizioni del test
ID esperimentoEXP-REPORT-READING-001
Esperimento padreEXP-BACKTEST-RUNBOOK-001
Fontedata/run-manifests/*.jsonresults, ledger_recomputed, shadow_runs
Popolazioneall 23 runs published on mt5depot at the time of derivation
Build MT56090 and 6140
ModelloEvery tick generated from M1 bars (Model 0) and Every tick based on real ticks (Model 4)
Conto10,000 USD deposit on all 23 runs
Ultima verifica2026-08-26

Ogni cifra qui sotto viene da un backtest, e tutte e 23 le esecuzioni portano un verdetto PASS — sono le esecuzioni che hanno superato il gate di pubblicazione. Questo ne fa un insieme di sopravvissuti, quindi niente di ciò che leggi qui dice quanto spesso un backtest passa. Dice che aspetto ha, visto da dentro, un report che è passato.

Preparazione: cosa aveva dato per assunto il report prima di stampare un numero

Il blocco Settings in cima a un report MT5 non è un preambolo. È l’elenco delle assunzioni che ogni numero sottostante eredita, e sei di esse decidono se valga la pena leggere il resto. Il nome del broker e la build stanno nella riga del titolo del report stesso — il nostro recita Exness-MT5Trial5 (Build 6090).

Campo di SettingsCosa fissa davveroCosa registrano i nostri
Symbol: / Period:I regimi di cui il risultato è un campione22 esecuzioni partono da gennaio 2019; cairn parte da giugno 2021
Modello (generazione dei tick)Come sono stati prodotti i tick dentro ogni barraModel 0 (generati da barre M1) su 12 esecuzioni, Model 4 (tick reali) su 11
Initial Deposit:Il denominatore di ogni percentuale della pagina10.000 USD su tutte e 23
SpreadIl costo tolto da ogni gambaMisurato su esattamente 1 esecuzione su 23 — le altre ereditano qualunque cosa si portasse dietro lo storico dei prezzi
CommissioneUn costo che il tester applica solo se lo imposti tu0 su tutte e 23
Inputs:Le impostazioni che hanno prodotto questo, per interoVerificati contro il report su ogni esecuzione

L’elenco Inputs: è la riga che la gente salta, ed è quella che rende un report riproducibile: è l’insieme completo dei valori che dovresti reinserire per riottenere la stessa pagina.

Due di quelle righe meritano un momento. Una riga di commissione a zero non significa che la commissione sia stata ignorata. Significa che sul simbolo testato non ne è stata addebitata nessuna. Sono affermazioni diverse, e solo il registro dell’esecuzione ti dice quale si applica. E uno spread non misurato non è uno spread zero: in 22 delle nostre 23 esecuzioni quel campo è vuoto perché nessun registratore girava insieme al test. Ogni gamba si è semplicemente presa lo spread che lo storico M1 si portava dietro. Solo tidewell-slack può dichiarare la propria media, 19,14 punti.

Qui va segnalata una trappola di nomenclatura. Il campo che le guide più vecchie chiamano qualità di modellazione viene stampato da MT5 come History Quality:, nel blocco Results accanto a Bars:, Ticks: e Symbols:. Cercare “modelling quality” dentro un report Build 6090 non trova niente. Nei nostri registri la cifra è presente solo su 2 dei 23 manifesti, perché viene conservata quando il report di origine ne dichiarava una — è una proprietà di questi registri, non una misura di quanto spesso MetaTrader la stampi. In pratica significa che non puoi usarla come filtro per report che non hai generato tu. La fonte dei dati tick è la domanda che ci sta sotto, e a quella si può sempre rispondere: chiedi quale storico ha usato l’esecuzione.

Leggere il report, metrica per metrica

Leggi la pagina in quest’ordine. Volutamente non è l’ordine in cui MetaTrader la stampa, perché i due criteri di esclusione più economici stanno in fondo al report.

  1. Leggi prima Settings. Modello, Initial Deposit:, spread e commissione. Ogni percentuale sottostante li eredita, e un’esecuzione con spread non misurato non è un’esecuzione senza spread.
  2. Leggi Total Trades: prima di qualsiasi rapporto. Un rapporto e la sua numerosità campionaria sono un fatto solo, non due. Scrivi il conteggio accanto al rapporto.
  3. Chiediti quali operazioni copre la cifra in evidenza. Se insieme al report è pubblicato un registro delle operazioni, controlla che il suo totale corrisponda a Total Trades:. Uno dei nostri 23 report non corrisponde.
  4. Leggi Equity Drawdown Maximal:, non la riga del saldo, e annota se hai preso la cifra Maximal o quella Relative — sono righe separate.
  5. Trova lo storico dei prezzi. Quale broker, quale fonte, quale periodo. È il campo che ha spostato un verdetto nei nostri registri; il modello di tick no.

Ecco l’intera lettura in una tabella, usando le etichette che il report stampa davvero. La colonna “nel nostro insieme” è ciò che ogni metrica ha fatto sulle 23 esecuzioni pubblicate. Batte un intervallo da manuale, perché è stata misurata sullo stesso tipo di report che hai in mano.

Etichetta del reportLa domanda a cui rispondeNel nostro insiemeSegnale d’allarme
Total Trades:Quante prove ci sonoDa 108 a 4.725 per esecuzioneSotto ~100; un rapporto su 20 operazioni è una diceria
Profit Factor:Profitto lordo diviso perdita lorda (profit factor)Da 1,22 a 1,59 su tutte e 23Sopra ~2,0 su una finestra breve; controlla prima Total Trades:
Profit Trades (% of total):Il win rate — la forma della distribuzione, non il suo segnoDal 30,80% all’82,27%, tutte in profittoCitato da solo, senza un profit factor accanto
Total Net Profit:Valuta guadagnata, prima del contestoDa 386,05 a 28.687,43 USD sullo stesso deposito da 10.000 USDCitato senza Initial Deposit: e senza il numero di anni
Balance Drawdown Maximal:Il calo peggiore sulle operazioni chiuse (max drawdown)Dallo 0,67% al 18,24%Citato mentre nella stessa pagina c’è una riga di equity
Equity Drawdown Maximal:Il calo peggiore incluse le posizioni apertePiù profondo del saldo in 23 casi su 23Ignorato — è la cifra su cui vive il tuo margine
Expected Payoff:Risultato medio per operazione, in valutaNon riportato nei nostri manifestiLetto come una previsione anziché come una media
Recovery Factor: / Sharpe Ratio:Rendimento per unità di sofferenza, in due modiNon riportati nei nostri manifestiConfrontati tra report con numeri di operazioni diversi
History Quality:Se il flusso di tick riesce a risolvere il tuo stopDichiarata su 2 esecuzioni su 23Assente e con fonte dati sconosciuta

Due convenzioni di quel blocco fregano la gente prima ancora che cominci l’interpretazione.

Total Trades: e Total Deals: sono conteggi diversi. In MetaTrader 5 un giro completo sono due deal — uno in entrata, uno in uscita — quindi un report che mostra Total Trades: 50 mostra accanto Total Deals: 100, e le chiusure parziali aggiungono deal senza aggiungere trade. Leggi i rapporti contro i trade, mai contro i deal.

Le righe di drawdown sono sei, non una. Il report stampa Absolute, Maximal e Relative sia per il saldo sia per l’equity. Peggio: in due di esse l’importo e la percentuale si scambiano di posto — Balance Drawdown Maximal: 36.84 (0.37%) mette prima la valuta, e Balance Drawdown Relative: 0.37% (36.84) mette prima la percentuale. Due report possono citare “0,37%” e “36,84” da righe adiacenti e intendere lo stesso evento — oppure eventi diversi.

Il resto del blocco Results — Z-Score:, AHPR:, GHPR:, LR Correlation:, LR Standard Error:, Margin Level: e le correlazioni MFE/MAE — descrive la forma della curva di equity più che la sua dimensione. Niente di tutto ciò salva un report il cui numero di operazioni è troppo piccolo, e niente di tutto ciò sopravvive a un cambio di storico dei prezzi meglio di quanto sopravviva il profit factor. Leggilo dopo i cinque passi qui sopra, oppure non leggerlo affatto.

Due delle righe metriche fanno in pratica gran parte del danno, quindi leggile insieme invece che in sequenza.

Il profitto netto ha bisogno del suo denominatore e del suo calendario. Tutte e 23 le nostre esecuzioni partono dagli stessi 10.000 USD, il che le rende insolitamente confrontabili. E coprono comunque un intervallo che va dallo 0,51% al 57,38% all’anno. L’estremo basso è istruttivo. orrery segna un profit factor di 1,46 con un drawdown massimo dello 0,67% — la coppia di numeri più bella del catalogo. Ha guadagnato 386,05 USD in 7,58 anni. Niente di quel report è disonesto. Sta rispondendo a una domanda diversa da quella che la maggior parte dei lettori crede di porre.

Win rate e profit factor qui sono quasi indipendenti. Sulle 23 esecuzioni pubblicate la correlazione tra i due è 0,37. Gran parte di ciò che decide se un EA guadagna è quindi invisibile alla riga del win rate. nautical vince il 30,80% delle sue operazioni e rende un profit factor di 1,22; gyre vince l’82,27% e rende 1,59. Entrambi sono in profitto, e i due win rate distano 51 punti.

Il profit factor che il tuo report non ti sta mostrando

Questa è la parte che nessun report ti mostra, ed è il motivo per cui abbiamo potuto scrivere questo articolo a partire dai nostri dati. Ogni esecuzione pubblicata conserva il registro completo delle operazioni chiuse, quindi ogni report si divide in due. C’è la fetta su cui l’EA è stato selezionato — la finestra di sviluppo contro cui la pubblicazione è stata valutata. E poi ci sono le operazioni avvenute dopo la messa online, su cui non è stato selezionato niente. Venti delle nostre 23 esecuzioni pubblicano entrambe le fette; le altre tre non pubblicano alcuna fetta post-pubblicazione.

EAFetta di sviluppoFetta post-pubblicazioneIn evidenza
orrery1,28 (195 operazioni)6,43 (15 operazioni)1,46 (210 operazioni)
windrose1,31 (101 operazioni)3,58 (7 operazioni)1,38 (108 operazioni)
cairn1,48 (4.583 operazioni)1,64 (142 operazioni)1,48 (4.725 operazioni)
gyre1,55 (136 operazioni)— (5 operazioni, nessuna in perdita)1,59 (141 operazioni)
tessera1,28 (624 operazioni)0,88 (21 operazioni)1,27 (645 operazioni)
zerqon1,53 (232 operazioni)0,72 (21 operazioni)1,43 (253 operazioni)

Leggi insieme la prima e l’ultima colonna della riga di orrery. La cifra in evidenza dice 1,46; il periodo su cui l’EA è stato davvero scelto dice 1,28; la differenza sono 15 operazioni — il 7% del registro — che girano a un profit factor di 6,43. Leggi allo stesso modo la riga di zerqon e va nella direzione opposta: 1,53 sulla fetta di sviluppo, 0,72 sulle 21 operazioni successive, e una cifra in evidenza di 1,43 che nasconde entrambe.

Sulle 20 esecuzioni che pubblicano entrambe le fette, la cifra in evidenza legge meglio della fetta di sviluppo in 14 casi e peggio in 6. Le altre tre sono escluse di proposito: avendo una sola fetta, la loro cifra in evidenza e la loro cifra di sviluppo coprono esattamente le stesse operazioni, quindi la differenza tra le due non è affatto un effetto di popolazione — è l’arrotondamento a due decimali del report stesso contro il registro ricalcolato. almanac stampa 1.52 dove il registro ricalcola 1,5153. Applica alle 20 quella stessa soglia di arrotondamento e 13 di esse mostrano comunque uno scarto che l’arrotondamento non può spiegare, 8 dei quali nella direzione lusinghiera.

Quell’asimmetria non è uno scandalo. Una cifra che copre due periodi viene trascinata verso quello dei due che è stato più fortunato. Significa però che la cifra in evidenza non è mai il numero da confrontare con un’affermazione sul comportamento futuro.

Trappole: come questi numeri ingannano

La modalità di fallimento sotto tutte e cinque è la stessa: un report è la misura di una popolazione, e ogni metrica della pagina eredita in silenzio la popolazione verso cui il tester era stato puntato.

Migliorare: cosa ti dice di cambiare ciascuna lettura

Un cambiamento per iterazione, e rileggi ogni volta le stesse tre cifre: il numero di operazioni, il profit factor e il drawdown di equity. L’ordine qui sotto è per costo — prima i controlli economici, perché due di essi chiudono regolarmente l’indagine.

  1. Se il numero di operazioni è piccolo, allunga il periodo — non toccare i parametri. Un profit factor costruito su meno di un centinaio di operazioni si sposta più con una finestra più lunga che con qualunque impostazione tu possa regolare. La nostra esecuzione pubblicata più piccola ha 108 operazioni, ed è quella i cui rapporti citiamo con più cautela.
  2. Se la cifra in evidenza e la fetta di sviluppo non concordano, rileggi solo sulla fetta di sviluppo. È la cifra contro cui le impostazioni sono state scelte. Ed è quella da confrontare con qualunque altro candidato.
  3. Se il drawdown di equity sta ben sopra quello di saldo, dimensiona sulla cifra dell’equity. Lo scarto ti dice quante posizioni l’EA tiene dentro lo stesso movimento. L’esecuzione di chrysalis lo dichiara apertamente: fino a sette per volta.
  4. Se il report arriva dai dati di qualcun altro, rilancialo su una seconda fonte prima di ogni altra cosa. È il controllo con l’effetto misurato più grande di tutto il nostro insieme, ed è l’ultimo che la gente esegue.

Cosa ha davvero spostato i numeri: la fonte dei dati, non il modello di tick

Uno dei nostri EA è stato rilanciato apposta per separare quelle due variabili, e il registro dell’esecuzione etichetta ogni shadow con ciò che isola.

Esecuzione di tidewell-slackCosa è cambiatoOperazioniProfit factorDrawdown massimoQualità dello storicoVerdetto
PubblicataStorico M1 Exness, Model 03031,359,92%99%PASS
Shadow — isola la fonte datiStorico Dukascopy, Model 03511,1318,18%99%FAIL
Shadow — isola i tick realiStorico Dukascopy, Model 43451,1118,20%100%FAIL

Leggila come due esperimenti separati. Cambiare solo lo storico dei prezzi — dalla riga uno alla riga due, stesso modello di tick — ha portato il profit factor da 1,35 a 1,13, ha quasi raddoppiato il drawdown e ha ribaltato il verdetto da promosso a bocciato. Cambiare solo il modello di tick su quel nuovo storico — dalla riga due alla riga tre — ha spostato il profit factor di 0,02 e il drawdown di 0,02 punti. E la qualità dello storico segna 99% e 100% proprio sulle due esecuzioni che hanno fallito, quindi il campo su cui la maggior parte della gente fa da filtro era eccellente in entrambi i casi.

Un secondo EA punta nella stessa direzione da un’angolazione diversa. kestrel-hover è pubblicato su tick reali Dukascopy con un profit factor di 1,33 e un drawdown del 7,11%, e la sua esecuzione shadow su storico M1 Exness a Model 0 segna 1,30 e 6,76% — sono cambiati insieme sia la fonte sia il modello, e il risultato si è mosso a malapena. La stabilità tra fonti dati diverse è possibile. Semplicemente non è una cosa che un singolo report possa dimostrare.

La regola pratica: un report è una prova trasferibile solo nella misura in cui lo è il suo storico dei prezzi. Rilanciarlo su una seconda fonte costa una serata. Nei nostri registri è l’unico controllo di questo articolo che abbia cambiato una decisione.

Prossimi passi: dal report a una decisione

Leggere bene un report è il secondo di quattro passi. La sequenza è backtest → lettura → walk-forward analysis → demo, e ciascun passo elimina un modo diverso di sbagliare. Un report che sopravvive a tutti e quattro si è guadagnato una posizione piccola; uno che sopravvive ai primi due si è guadagnato un altro test.

  • Fai pratica su registri che siano completi. Ogni scheda degli EA pubblicati porta l’elenco completo delle operazioni chiuse e il manifesto di esecuzione, così puoi ricalcolarti da solo una cifra in evidenza e vedere esattamente quali operazioni l’hanno prodotta. È l’unico esercizio che fa sedimentare la lettura.
  • Se un numero ti rimanda alla strategia invece che al test, è nell’EA Builder che cambia la regola stessa. Cercare tra le impostazioni è di nuovo un altro lavoro, coperto in ottimizzazione dei parametri.
  • Prima di dimensionare qualcosa su una cifra di drawdown appena letta, la gestione del rischio per chi usa gli EA la traduce in un deposito e in una dimensione del lotto.
  • Come produciamo, valutiamo e registriamo tutto questo è descritto nella nostra metodologia di test.

I risultati passati dentro un tester non sono una previsione, e nessuna delle esecuzioni qui sopra è una promessa sui prossimi 12 mesi. Il senso di leggere bene un report è più piccolo e più utile di una previsione. Ti dice cosa è stato dimostrato, e cosa è stato soltanto stampato.

Domande frequenti

Qual è un buon profit factor in un report di backtest MT5?
Prima di giudicare il numero, chiediti quali operazioni copre. Tutti e 23 i report pubblicati su questo sito stanno tra 1,22 e 1,59, e lo scarto dentro un singolo report è più ampio dello scarto lungo tutto il catalogo: orrery segna 1,28 sulle 195 operazioni su cui è stato selezionato e 1,46 una volta incluse 15 operazioni successive. Un profit factor diventa significativo quando sai dire quante operazioni l'hanno prodotto e se quelle operazioni sono servite a scegliere le impostazioni. Sotto le 25 operazioni circa non informa quasi di niente — 16 delle nostre 20 fette post-pubblicazione sono così piccole, e i loro profit factor vanno da 0,72 a 6,43.
Perché il mio report MT5 mostra due valori di drawdown diversi?
Perché MetaTrader misura separatamente la curva del saldo e quella dell'equity, e l'equity si porta dietro le posizioni aperte. Il drawdown di equity è il più profondo dei due in tutti e 23 i nostri report; lo scarto più grande è quello di cairn, 14,52% sul saldo contro 25,62% sull'equity, cioè 11 punti di sofferenza che una citazione del solo saldo nasconde. Lo scarto è una proprietà di come l'EA tiene le posizioni — l'esecuzione di chrysalis ne registra il motivo apertamente: l'EA può tenere fino a sette posizioni dentro lo stesso movimento. C'è anche un secondo asse: MetaTrader stampa sia la definizione Maximal sia quella Relative, e 16 delle nostre esecuzioni registrano la coppia Maximal mentre 5 registrano la coppia Relative. Cita la riga dell'equity, e dichiara da quale definizione arriva.
Un win rate alto significa che l'EA è buono?
No, e il nostro stesso insieme è il controesempio. Sui 23 report pubblicati il win rate correla con il profit factor a 0,37, il che lascia inspiegata la maggior parte della variazione. nautical vince il 30,80% delle sue operazioni e rende comunque un profit factor di 1,22; zerqon vince il 78,26% e segna 1,43. Il caso più chiaro è quello che è successo a zerqon dopo: nelle 21 operazioni da quando è stato pubblicato ha continuato a vincere il 76,19% delle volte e ha prodotto un profit factor di 0,72, perdendo 61,47 USD. Un win rate ti dice la forma della distribuzione delle operazioni, non il suo segno.
Posso fidarmi di un backtest fatto con i dati di qualcun altro?
Trattalo come un'affermazione sul loro storico dei prezzi, non sull'EA. Abbiamo un EA misurato in entrambi i modi, tenendo costante il modello di tick: tidewell-slack pubblica 303 operazioni a un profit factor di 1,35 con un drawdown del 9,92% sullo storico M1 di Exness, e lo stesso EA sullo stesso periodo con storico Dukascopy ha prodotto 351 operazioni a 1,13 con un drawdown del 18,18% — bocciato sotto lo stesso gate. Passare quell'esecuzione Dukascopy dai tick generati ai tick reali l'ha poi spostata di 0,02, a 1,11. La fonte dei dati ha spostato il verdetto; il modello di tick no. Chiedi da quale storico dei prezzi arriva un report prima di chiedere qualsiasi altra cosa.