Conti demo, backtesting, test forward e riproduzione del mercato
Puoi provare una strategia su demo, su dati storici, in tempo reale o riproducendo il mercato. Ogni ambiente risponde a una domanda diversa e ha limiti propri. Spieghiamo che cosa dimostri un risultato, come includere costi e separare scelta dei parametri e valutazione indipendente. Mostriamo anche come errori di dati e simulazione migliorino una curva prima dell'esecuzione reale.

- Un test senza ambiente descritto non è verificabile. Senza strumento, periodo, fonte e qualità dei dati, modello di tick e costi e divisione dentro/fuori campione, il risultato è un numero senza unità
- Un backtest senza costi descrive un sistema diverso da quello che userai. Il calcolo seguente dà +12.000 USD senza costi ed esattamente 0 USD aggiungendo spread, commissioni e slippage
- Ottimizzare è cercare, non validare. Il migliore fra mille tentativi è il migliore su quella storia; il numero di varianti appartiene al risultato quanto il valore stesso
- Walk-forward funziona solo se il campione esterno resta intatto. Se cambi la strategia dopo aver visto il risultato esterno, quel tratto non è più esterno per tutte le iterazioni successive
- L'informazione futura entra dalla porta di servizio: ingresso alla chiusura della candela del segnale, indicatori ricalcolati a ritroso o dati macro già rivisti
- Demo e paper trading non verificano l'esecuzione. Verificano la meccanica e il rispetto delle regole. È il broker a decidere quanto del costo di esecuzione riproduca il server demo: occorre leggerlo nella documentazione di quello specifico conto. Il resto si misura soltanto su un conto con capitale reale, e la misurazione vale per la dimensione della posizione utilizzata
- Un forward test positivo non è una garanzia. Conferma che le regole hanno superato dati mai visti, non il prossimo regime
1. Demo, paper trading, backtest, forward, riproduzione e reale: sei domande
Molti equivoci nascono da «ho verificato la strategia». Dove e sotto quale aspetto? Non sono gradini di una scala di precisione: misurano cose diverse.
Un conto demo opera sul server del broker con denaro virtuale. Le quotazioni condividono di solito il flusso del reale, ma il server demo simula con regole semplificate. Le fissa il broker, non la piattaforma, e variano per conto. Dire che cosa «non riproduce» richiede la documentazione specifica, non una regola universale (voce 16 della bibliografia mostra un esempio). Modelli di esecuzione e trattamento del flusso di ordini sono nella sezione sulla scelta del broker.
Il paper trading registra decisioni senza ordini per l'esecuzione reale. Un foglio, script o emulatore dell'ambiente grafico assegna gli eseguiti. La distinzione conta: se assegna l'emulatore, decidono le sue regole, non il mercato. Esamina la logica decisionale, non la qualità di esecuzione, salvo descrivere e giustificare separatamente le regole dell'emulatore.
Un backtest riproduce regole sulla storia. Risponde condizionalmente: che cosa sarebbe accaduto se dati, tick e costi riflettessero la realtà. La risposta non supera la qualità delle ipotesi.
Un forward verifica fuori dal periodo di adattamento: storia riservata mai vista dall'ottimizzatore o osservazione in tempo reale, barra per barra, senza tornare indietro.
La riproduzione del mercato riproduce storia nascondendo il futuro e permette decisioni manuali. Allena strategie discrezionali, non equivale a capitale reale.
Un conto reale è l'unico ambiente in cui si misura il costo effettivo di esecuzione: slippage, ampliamento dello spread, rifiuti ed esecuzioni parziali.
| Ambiente | A che cosa risponde | Che cosa non chiarisce | Chi fissa le condizioni |
|---|---|---|---|
| Conto demo | Uso della piattaforma e sistema automatico senza blocchi nel lavoro normale | Costo di esecuzione e comportamento con poca liquidità | Broker (server demo) |
| Paper trading | Applicazione coerente delle regole | Prezzo di esecuzione: lo assegna l'emulatore o la tua convenzione | Tu o l'emulatore |
| Backtest | Risultato storico con ipotesi esplicite | Futuro, costi reali e accuratezza delle ipotesi | Autore: dati, tick e costi |
| Forward | Regole che superano dati mai visti | Prossimo regime; non risolve un campione piccolo | Divisione dei dati o passaggio del tempo |
| Riproduzione del mercato | Riconoscere situazioni in sequenza senza guardare a destra | Costi e pressione di una perdita reale | Autore della sessione |
| Conto reale con esposizione minima | Costo reale a quella dimensione | Costo con dimensione molto maggiore | Broker e stato del mercato |
2. Che cosa non misurano demo e paper trading
Il demo viene descritto come «reale senza denaro», ma è falso su punti verificabili. La tabella mostra elementi assenti o semplificati che incidono sul risultato reale. Sono semplificazioni tipiche, non regole universali: il fornitore decide l'ambito, anche diverso tra conti dello stesso broker.
| Elemento | Su demo | Sul reale |
|---|---|---|
| Slippage | In molti, zero o valore fisso; il fornitore decide la simulazione | Variabile per momento e liquidità; maggiore con dati e aperture |
| Ampliamento dello spread | Spesso fisso o poco variabile | Cresce con poca liquidità ed eventi; il demo spesso attenua il profilo |
| Rifiuti e riquotazioni | Rari o assenti | Dipendono da modello e conto: proprietà del broker, non della piattaforma |
| Eseguiti parziali | Di solito complete | Possibili con dimensione maggiore e poca liquidità; solitamente irrilevanti nelle microposizioni |
| Liquidità disponibile | Il demo di solito accetta; eventuali rifiuti dipendono dalle regole specifiche | Limitata: su esotici e fuori sessione può sparire al tuo livello |
| Salti di prezzo (gap) | Talvolta diversi dal reale | Stop loss nel gap agisce a mercato: primo prezzo disponibile, non livello dello stop |
| Posta psicologica | Zero: perdere non ha conseguenze | Reale: incide sul rispetto del piano |
L'ultima riga può trasformare un piano sensato in improvvisazione, ma non è il tema. Il comportamento sotto pressione è nel articolo su processo e risultato. Qui interessa ciò che si misura: il costo di esecuzione.

Misurare lo slippage, non stimarlo. Per ogni operazione registrare: prezzo al segnale, prezzo richiesto, prezzo di esecuzione, spread al clic, spread all'esecuzione, latenza, sessione, informazioni su eventuali eventi macroeconomici e ora del server del broker. Raccolto un campione, calcolare mediana e coda della distribuzione, non soltanto la media: poche esecuzioni estreme possono rendere la media fuorviante in entrambe le direzioni. Solo un numero così ottenuto è adatto al modello dei costi di un backtest.
Caso di riferimento: 3 gennaio 2019, salto dello yen. Con poca liquidità asiatica, le coppie yen si mossero a salto in minuti; la banca centrale australiana lo descrive in un riquadro (voce 12 della bibliografia, consultato il 22.08.2026). Alle 9:36 AEDT, in circa 30 secondi e senza notizie rilevanti, lo yen salì del 3 per cento sul dollaro. Bid-ask passò da circa 2 pip a 100–300 pip. Il riquadro aggiunge che la liquidità era stagionalmente bassa a quell'ora e periodo e che i broker al dettaglio chiudono automaticamente con stop loss superata una perdita fissata. Si attivò proprio il meccanismo il cui costo è riprodotto solo secondo il modello scelto; i modi semplificati non lo fanno, eseguendo al prezzo dell'ordine (vedi ordini pendenti). Movimento e prezzi variarono tra fornitori e broker: non esiste un'unica cifra «vera» di pip. La conclusione è concreta: spread fisso e slippage zero non riproducono quelle finestre; gli stop stretti sono i più sensibili. Evento e contesto appartengono alla sezione su sessioni e orari.
3. Risultato del backtest: dati, tick e costi
Il risultato di un tester dipende da tre cose che l'utente può decidere senza rendersene conto: quali dati sono stati caricati, come è stato riprodotto il movimento all'interno della candela e cosa è stato aggiunto a ogni operazione.
Modello di generazione dei tick
MetaTrader 5 documenta cinque modalità: Ogni tick, Ogni tick basato su tick reali, OHLC a 1 minuto, Solo prezzi di apertura e Calcoli matematici. La differenza principale è tra i primi due. In Ogni tick sono generati algoritmicamente dai dati al minuto. In Ogni tick basato su tick reali si usano tick del broker: un flusso specifico, non la ricostruzione completa del mercato. OHLC a 1 minuto emula quattro prezzi al minuto, Solo prezzi di apertura esegue all'apertura della barra e Calcoli matematici non carica cronologia e ottimizza funzioni matematiche. Nomi e ordine sono confermati nelle impostazioni del tester (voce 2 della bibliografia, consultato il 22.08.2026). Le modalità cambiano con le versioni: verifica la guida della tua prima di usarle.
Scegliere tick reali non garantisce che nessuno sia calcolato. Se esiste una barra al minuto senza tick, il tester li genera in «Ogni tick»; se esistono tick senza barra, li ignora, secondo la documentazione (voce 1 della bibliografia, consultato il 22.08.2026). Lacune o incoerenze dell'archivio producono tratti modellati senza indicazione separata. Con tick reali lo spread può cambiare nella barra; con quelli generati si usa il fisso della barra. La modalità cambia percorso e spread.
La conseguenza è scomoda: se conta se massimo o minimo sia stato toccato prima —come con stop e obiettivo attivi insieme—, i tick da minuti indovinano l'ordine. È proprietà del modello, non errore. MetaTrader 4 riporta separatamente la copertura storica, ma calcola il movimento intrabarra anziché leggere un flusso reale. Documenta tre modalità: Solo prezzi di apertura, Punti di controllo e Ogni tick — l'ultima genera con dati dell'intervallo inferiore più vicino e di tutti quelli vicini disponibili; se mancano inferiori usa modelli di onde (voce 14 della bibliografia, consultato il 22.08.2026). La barra di qualità mostra l'intervallo usato: più breve, meno si indovina. Tick reali e profondità dipendono dal broker e dalla conservazione.
Come esegue il tester gli ordini pendenti
Il modello decide quali prezzi vede il tester. Un altro livello è come li usa con un pendente, spesso invisibile nelle impostazioni e da cercare nella documentazione. Per calcolare bene separa: quando si esegue e a quale prezzo. Il prezzo dipende in MetaTrader 5 da due assi: strumento e modalità dei dati. Confonderli fa applicare una frase vera dove non vale.
Latenza. La latenza del tester MetaTrader 5 riguarda il collocamento dal sistema, non l'esecuzione successiva sul server. Per i pendenti si ritarda solo il collocamento; l'esecuzione reale è sul server senza ritardo di rete, secondo la documentazione (voce 2 della bibliografia, consultato il 22.08.2026). Un ordine già collocato si esegue senza ritardo di rete, correttamente: non lo ha nemmeno nella realtà.
Primo asse: strumento. Senza latenza non significa eseguire al livello richiesto. La documentazione distingue strumenti: gli FX/CFD OTC sono fuori borsa; i contratti valutari di borsa sono un'altra categoria. Nei primi, ogni pendente e SL/TP si attiva tramite bid/ask e si esegue al bid/ask corrente all'attivazione (voce 13 della bibliografia, sezione Attivazione ed esecuzione degli ordini, primo paragrafo, consultato il 22.08.2026). Tutti i tipi di ordine pendente, compresi gli ordini limite, nonché stop loss e take profit, vengono quindi eseguiti al bid o all'ask corrente al momento dell'attivazione, non al livello scritto nell'ordine. Per un ordine limite, una differenza favorevole rispetto al prezzo indicato è un miglioramento di prezzo, non un'autorizzazione a eseguire oltre il limite in direzione sfavorevole.
Il limite senza slippage riguarda gli strumenti di borsa. Il paragrafo seguente separa azioni e contratti di borsa: grafici e stop usano l'ultimo prezzo eseguito (Last); i limiti bid/ask. Si eseguono limiti al prezzo scritto senza slippage; gli altri al bid/ask corrente con possibile slippage (voce 13, secondo paragrafo e stessa consultazione). Citarlo come regola universale è errore d'ambito, non di citazione: «limite senza slippage» vale in borsa. Per FX fuori borsa vale il paragrafo precedente; il contratto valutario di borsa segue quelle regole.
Secondo asse: la modalità di modellazione. Il tipo di strumento determina ciò che accade nelle modalità accurate — Ogni tick e Ogni tick basato su tick reali. La modalità di modellazione è un asse separato e, nelle modalità semplificate, disattiva del tutto questa regola: «Nelle modalità di test “Solo prezzi di apertura” e “OHLC a 1 minuto”, gli ordini pendenti, nonché SL e TP, vengono eseguiti ai prezzi specificati negli ordini. L'algoritmo di esecuzione ai prezzi di mercato utilizzato nelle modalità accurate (ogni tick e tick reali) non è adatto alle modalità meno accurate» (voce 13, stessa data di consultazione). Il fornitore spiega anche il motivo e la conclusione: «In alcune modalità non vengono generati tick intermedi, quindi la differenza tra il prezzo richiesto nell'ordine e il prezzo corrente (Open o OHLC) può essere significativa. L'esecuzione degli ordini al prezzo richiesto in “Solo prezzi di apertura” e “OHLC a 1 minuto” produce risultati di test più accurati». Qui la logica è opposta a quella intuitiva: nella modalità semplificata il tester non ha un prezzo di mercato da utilizzare dopo l'attivazione, quindi esegue al prezzo scritto nell'ordine, perché un'esecuzione all'apertura della barra successiva introdurrebbe un errore maggiore rispetto a un'esecuzione al livello dell'ordine.
Combinare i due assi. Per un simbolo FX non negoziato in borsa, nel tester di MetaTrader 5 si creano così due ambienti di esecuzione diversi, facili da confondere perché il report ha lo stesso aspetto in entrambi:
- Modalità accurate (Ogni tick, Ogni tick basato su tick reali) — tutti gli ordini pendenti, nonché SL e TP, vengono eseguiti al bid o all'ask corrente al momento dell'attivazione. Lo slippage viene modellato, ma soltanto all'interno del percorso dei prezzi riprodotto dal tester, generato dai dati al minuto oppure ricavato dall'archivio tick del broker
- Modalità semplificate (OHLC a 1 minuto, Solo prezzi di apertura) — tutti gli ordini pendenti, nonché SL e TP, vengono eseguiti esattamente al prezzo scritto nell'ordine. Lo slippage scompare completamente dal calcolo, per tutti i tipi di ordine contemporaneamente
Il meccanismo di questa semplificazione differisce tra i due tipi di ordine, anche se l'effetto va nella stessa direzione. Dopo l'attivazione, un ordine stop si comporta come un ordine a mercato: nella realtà il suo prezzo di esecuzione è il primo prezzo disponibile dopo il superamento del livello, non il livello stesso. L'esecuzione al livello, prevista dai modi semplificati, elimina quindi dal calcolo l'intero costo del salto e gonfia il risultato. Un ordine limite acquista sotto il mercato o vende sopra: eseguirlo al livello indicato presuppone liquidità sufficiente per l'intera posizione esattamente a quel prezzo, mentre il semplice tocco del prezzo non garantisce liquidità sufficiente per l'esecuzione. In borsa conta anche la posizione in coda; per FX/CFD OTC si applicano le regole di esecuzione del fornitore. Il tester non modella né la coda né il volume disponibile al livello: conosce soltanto il percorso dei prezzi. Entrambe le semplificazioni favoriscono dunque il risultato, ma entrano nel calcolo solo quando la modalità scelta le consente.
Un'altra condizione è il lato del mercato: un livello viene toccato dalla serie di prezzi corrispondente al lato dell'ordine, quindi un acquisto reagisce all'ask e una vendita al bid. Un test su una sola serie, solitamente il bid, riproduce l'altro lato aggiungendo lo spread; la documentazione MQL5 precisa che «durante il test lo spread non viene modellato, ma ricavato dai dati storici» (voce 3 della bibliografia, consultata il 22.08.2026): il momento dell'attivazione dipende quindi dallo spread registrato nei dati, non da quello che si sarebbe verificato sul proprio conto. Conta anche la densità del percorso dei prezzi: la pagina sui tick avverte che «i livelli stop e gli ordini pendenti possono attivarsi a un prezzo diverso da quello specificato, soprattutto nei test su timeframe più elevati» (voce 1 della bibliografia).
Cosa significa per la lettura del report. Il report del tester non indica quale dei due ambienti l'abbia prodotto: occorre ricavarlo dalle impostazioni del test. Le stesse regole eseguite in modalità accurata e semplificata danno calcoli diversi, e la differenza non riguarda la precisione numerica, ma la regola di esecuzione. Le strategie più sensibili sono quelle con risultato medio per operazione ridotto e stop stretto, perché il costo del salto eliminato costituisce una parte rilevante del risultato. La regola di esecuzione adottata per gli ordini pendenti deve quindi figurare nella descrizione dell'ambiente di test al pari del modello dei tick e di quello dei costi; se il report non la esplicita, va verificata nella documentazione dello strumento. Il controllo costa poco: ripetere il test in modalità accurata e poi ancora una volta peggiorando le esecuzioni di un importo nell'ordine dello slippage medio, per vedere quanto rimane del risultato.
Il modello dei costi
A ogni operazione si aggiungono quattro voci con unità diverse, che non vanno confuse:
- Spread — in pip o punti. La domanda decisiva è se il test utilizzi uno spread fisso, quello registrato nei dati o quello corrente all'avvio della prova. Tre risposte diverse, tre risultati diversi: nel tester di MetaTrader 5 la documentazione citata sopra risolve la questione; negli altri strumenti occorre cercare la risposta nella descrizione dello specifico tester
- Commissione — nella valuta del conto, solitamente per lotto e per lato. Per confrontarla con lo spread bisogna convertirla in pip utilizzando il valore del pip per lo strumento e la dimensione della posizione
- Punti swap — addebitati per mantenere una posizione oltre il cambio del giorno di regolamento, con un addebito triplo in un determinato giorno della settimana. Irrilevanti per una strategia intraday, talvolta superiori allo spread per una strategia di posizione
- Slippage — in pip o punti, come differenza fra prezzo richiesto e prezzo di esecuzione. Nel tester entra soltanto dove la regola di esecuzione lo consente: per una coppia valutaria nel tester di MetaTrader 5, nelle modalità accurate riguarda tutti i tipi di ordine pendente, compresi SL e TP, mentre nelle modalità OHLC a 1 minuto e Solo prezzi di apertura non entra affatto, perché le esecuzioni avvengono ai prezzi scritti negli ordini (voce 13 della bibliografia)
La latenza è esclusa deliberatamente da questo elenco, anche se talvolta viene aggiunta come quinta voce. Si misura in millisecondi, non in pip, e non si somma all'operazione: è un parametro del modello di esecuzione, cioè influisce su quale prezzo viene utilizzato, non su quanto viene sottratto. Il tester di MetaTrader 5 permette di emularla nelle modalità Nessun ritardo e Ritardo casuale e anche con un ritardo fisso. Come mostra la sezione sull'esecuzione degli ordini pendenti, l'emulazione riguarda l'invio dell'ordine da parte del sistema automatizzato, non l'esecuzione di un ordine già presente sul mercato (voce 2 della bibliografia). Mescolare queste due grandezze nella stessa riga del calcolo dei costi è un errore di unità, non un arrotondamento.
Occorre distinguere due errori apparentemente simili. La latenza di rete misurata con un comando ping all'indirizzo del server non è il tempo necessario a eseguire un ordine: fra i due intervengono la validazione del broker, la coda e il momento dell'esecuzione stessa. Infrastruttura, server virtuali e continuità operativa di un sistema automatizzato sono approfonditi nell'articolo su automazione, EA e VPS; qui conta soltanto che la latenza debba essere un'ipotesi esplicita del test, anziché essere tacitamente considerata nulla.
La qualità dei dati stessi
Prima che un risultato abbia un significato, i dati devono superare una verifica: lacune e discontinuità nella serie, duplicati, valori anomali, ordine cronologico, fuso orario e cambio dell'ora legale, convenzione del timestamp delle candele (apertura o chiusura), nonché costruzione della serie a partire da bid, ask o prezzo medio. Quest'ultimo punto viene spesso trascurato, ma decide se un livello sia stato effettivamente toccato: una posizione short si chiude all'ask, quindi una candela costruita sul bid potrebbe non mostrare mai il prezzo che ha attivato lo stop.
4. Backtest perfetto e irrealistico: anatomia di una bella curva
Un bel risultato del tester nasce di solito non da un unico grande inganno, ma da quattro piccole concessioni, ciascuna apparentemente innocua. Di seguito vengono illustrate insieme al modo per individuarle.
Prima concessione: un ingresso a un prezzo che non poteva essere noto
La regola dice «entrare quando la candela chiude sopra la media» e il test entra al prezzo di chiusura di quella stessa candela. Un segnale che richiede la chiusura definitiva può generare un ordine solo dopo la conferma della chiusura, a un prezzo disponibile in quel momento. In un modello tipico che calcola una sola volta alla chiusura, significa il primo tick della barra successiva. Il prezzo di esecuzione può coincidere con la chiusura precedente, ma non se ne può presupporre la disponibilità senza specificare il modello. Correggere questa ipotesi può cambiare sensibilmente il risultato.
Un test di sensibilità, non un verdetto: spostare l'ingresso di una candela e ripetere il test. Se il risultato scompare, si sa soltanto che il sistema non tollera uno spostamento dell'ingresso di un periodo. Un'informazione proveniente dal futuro è una possibile spiegazione, ma non l'unica: il segnale può anche essere semplicemente breve o sensibile al prezzo di esecuzione. A chiarire la questione è la verifica della disponibilità di ogni variabile al momento della decisione; la procedura completa, con ciò che non dimostra, si trova nel riquadro alla fine della sezione sul look-ahead.
Seconda concessione: nessun costo
Un test senza spread, commissioni e slippage non è una versione semplificata del sistema. È un sistema diverso, con valore atteso e soglia di redditività diversi. L'entità di questo cambiamento si può calcolare, come mostra la sezione successiva.
Terza concessione: un insieme di parametri fra mille tentativi
Un ottimizzatore restituisce una graduatoria. Prenderne la prima riga e presentarla come risultato della strategia omette l'informazione sul numero di varianti esaminate. Con un numero sufficiente di tentativi, il risultato migliore è alto per la sola statistica della ricerca, anche con regole prive di senso; il trattamento formale del fenomeno si trova nella voce 8 della bibliografia. Il numero di varianti testate appartiene alla descrizione del risultato quanto il periodo e i costi.
Quarta concessione: valutare sui dati utilizzati per la messa a punto
Se i parametri sono stati scelti sullo stesso periodo del quale viene poi riportato il risultato, non c'è alcuna validazione: c'è la descrizione di un adattamento ai dati. È anche l'errore più facile da individuare: basta chiedere quale tratto di dati sia stato utilizzato per la messa a punto e quale esclusivamente per la valutazione.
Quattro concessioni in un calcolo: quanto resta della bella curva
Elencare le quattro concessioni non ne mostra ancora la portata. Lo fa il calcolo seguente, costruito in modo che ogni passaggio possa essere verificato con una sola operazione.
L'ambiente è lo stesso del calcolo nella sezione Test di sensibilità ai costi: EUR/USD, posizione di 1,00 lotto standard, valore del pip di 10,00 USD, valuta del conto USD.
Dati: 36 mesi di quotazioni al minuto di un broker, di cui 24 mesi in-sample e 12 mesi out-of-sample, con il confine fissato prima della messa a punto.
Operazioni in-sample: 1.000; out-of-sample circa 500, perché a parità di frequenza operativa il periodo di validazione è lungo la metà. La colonna in dollari normalizza ogni riga a 1.000 operazioni per renderle confrontabili: per la quarta riga si tratta quindi di un valore normalizzato, non dell'importo che sarebbe risultato nel campione out-of-sample effettivo. Varianti dei parametri esaminate: 1.200.
Costo di un'operazione completa di apertura e chiusura nella variante dell'esempio: spread 0,30 + commissione 0,70 + slippage 0,20 = 1,20 pip. Non sono valori misurati né tipici del mercato: sono stati scelti affinché il calcolo sia verificabile a mente.
Punti swap: zero, perché l'esempio presuppone esplicitamente una strategia intraday nella quale ogni posizione viene chiusa prima del cambio del giorno di regolamento. Per una strategia che supera il rollover, questa voce non è più nulla e deve essere aggiunta separatamente.
Nessuno di questi numeri proviene da un test effettivamente eseguito. È una costruzione che mostra direzione e ordine di grandezza di ciascuna delle quattro concessioni: verificabile con una calcolatrice, ma non sostitutiva di un proprio test.
| Passaggio | Cosa viene eliminato | Risultato (pip/operazione) | 1.000 operazioni (USD, 1 lotto) |
|---|---|---|---|
| 0. Report dell'ottimizzatore | nulla: ingresso alla chiusura della candela del segnale, costi nulli, primo posto della graduatoria, valutazione sul periodo di messa a punto | +2,60 | +26.000 |
| 1. Un ingresso effettivamente eseguibile | look-ahead: ingresso spostato all'apertura della candela successiva | +1,20 | +12.000 |
| 2. Costi aggiunti | l'ipotesi di spread, commissione e slippage nulli | 0,00 | 0 |
| 3. Senza il privilegio del primo posto | mediana di 1.200 varianti anziché la migliore, con lo stesso periodo e gli stessi costi | −0,45 | −4.500 |
| 4. Valutazione fuori dal periodo di messa a punto | lo stesso insieme di parametri congelato sui dati out-of-sample | −0,30 | −3.000 |
Come verificare ogni riga. La colonna in dollari è il risultato in pip moltiplicato per 10,00 USD e per 1.000 operazioni. I passaggi 0, 1 e 2 utilizzano la stessa variante dei parametri, dalla quale viene eliminata un'ipotesi alla volta, quindi la sottrazione procede in verticale: 2,60 − 1,40 = 1,20 e 1,20 − 1,20 = 0,00. I passaggi 3 e 4 non sono ulteriori sottrazioni, ma risposte a due domande diverse poste allo stesso risultato: per questo si calcolano separatamente anziché aggiungerli al passaggio 2.
Passaggio 1 elimina 1,40 pip, cioè la parte del movimento della candela del segnale che la regola si attribuiva entrando a un prezzo noto solo al momento della chiusura. Non è casuale che, dopo la correzione, rimangano esattamente 1,20 pip lordi: è lo stesso sistema la cui sensibilità ai costi viene analizzata nella sezione successiva. Passaggio 2 mostra dove conduce questa sensibilità: aggiunti 1,20 pip di costo complessivo di apertura e chiusura, il risultato si azzera al centesimo.
Passaggio 3 mostra il divario fra il risultato selezionato e la mediana delle varianti testate. Il primo posto di una graduatoria di 1.200 varianti è il massimo di 1.200 valori; il suo vantaggio sulla mediana, qui 0,45 pip per operazione, illustra la selezione, ma da solo non misura l'overfitting. Neppure una mediana negativa dell'intera graduatoria dimostra che il punto scelto sia un picco isolato: occorre valutarne l'intorno e i dati indipendenti. Passaggio 4 valuta lo stesso insieme di parametri congelato su 12 mesi mai visti dall'ottimizzatore, ottenendo −0,30 pip per operazione.
In questo calcolo ipotetico, eliminare tre delle quattro concessioni ha trasformato +26.000 USD in −3.000 USD, riportati alle stesse 1.000 operazioni, senza cambiare una sola regola della strategia. La quarta concessione, il privilegio di mostrare il primo posto della graduatoria, resta intatta nella quarta riga, perché sui dati out-of-sample opera lo stesso insieme di parametri congelato. Il suo divario rispetto alla mediana è mostrato separatamente nella terza riga, che risponde a una domanda diversa. Sono cambiate soltanto le ipotesi su quando si possa entrare, quanto costi un'operazione, quale variante si possa mostrare e su quali dati la si possa valutare.
5. Sensibilità ai costi: calcolo passo per passo
È qui che la maggior parte delle strategie smette di esistere. Il calcolo seguente non è il risultato di un test eseguito, ma una costruzione basata su ipotesi esplicite, verificabile con una calcolatrice. Proprio per questo è adatto a mostrare il meccanismo: non c'è numero di cui non si possa ricostruire l'origine.
Strumento: EUR/USD, 1 pip = 0,0001 del prezzo. Valuta del conto: USD.
Dimensione della posizione: 1,00 lotto standard, cioè 100.000 EUR di nozionale. Valore del pip = 100.000 × 0,0001 = 10,00 USD (per EUR/USD la valuta quotata è USD, quindi il valore del pip è fisso nella valuta del conto).
Distribuzione dei risultati lordi, prima dei costi: 1.000 operazioni, di cui 600 vincenti da +8,00 pip e 400 perdenti da −9,00 pip.
Profitto lordo complessivo: 600 × 8,00 − 400 × 9,00 = 4.800 − 3.600 = 1.200 pip, cioè 1,20 pip per operazione.
Profit factor lordo = 4.800 / 3.600 = 1,33 (somma dei profitti lordi divisa per il valore assoluto della somma delle perdite lorde).
Il costo è calcolato per un ciclo completo di apertura e chiusura e applicato a ogni operazione.
Commissione convertita in pip: 3,50 USD per lotto e per lato danno 7,00 USD per apertura e chiusura, cioè 7,00 / 10,00 = 0,70 pip. La tariffa dipende dal broker e dal tipo di conto: qui è un valore ipotizzato, non misurato.
Punti swap: zero, ed è un'ipotesi, non una misurazione. L'esempio riguarda una strategia intraday in cui la posizione non supera il cambio del giorno di regolamento. Altrimenti andrebbe aggiunta una voce distinta alla colonna dei costi, che con l'addebito triplo in un determinato giorno della settimana può superare lo spread.
Nessun numero della tabella proviene da un test eseguito o da una misurazione su un conto. Sono tutti illustrativi e servono soltanto a mostrare quanto rapidamente i costi consumino un piccolo vantaggio per operazione.
| Modello dei costi | Spread (pip) | Commissione (pip) | Slippage (pip) | Costo totale (pip) | Risultato netto (pip/operazione) | Profit factor netto | 1.000 operazioni (USD, 1 lotto) |
|---|---|---|---|---|---|---|---|
| Nessun costo | 0,00 | 0,00 | 0,00 | 0,00 | +1,20 | 1,33 | +12.000 |
| Solo spread | 0,30 | 0,00 | 0,00 | 0,30 | +0,90 | 1,24 | +9.000 |
| Spread e commissione | 0,30 | 0,70 | 0,00 | 1,00 | +0,20 | 1,05 | +2.000 |
| Spread, commissione, slippage | 0,30 | 0,70 | 0,20 | 1,20 | 0,00 | 1,00 | 0 |
| Condizioni peggiori del previsto | 0,60 | 0,70 | 0,50 | 1,80 | −0,60 | 0,86 | −6.000 |
Come verificare ogni riga. La colonna «costo totale» somma le tre colonne alla sua sinistra. Il «risultato netto» è 1,20 pip meno il costo totale. La colonna in dollari moltiplica il risultato netto per 10,00 USD e per 1.000 operazioni. Il profit factor netto è calcolato sulla stessa distribuzione dopo aver applicato il costo a ogni operazione: per esempio, con un costo di 1,20 pip il profitto unitario scende da 8,00 a 6,80 pip e la perdita sale da 9,00 a 10,20 pip. Si ottengono così 600 × 6,80 = 4.080 pip di profitti e 400 × 10,20 = 4.080 pip di perdite, cioè un profit factor esattamente pari a 1,00. I costi complessivi della riga sono 1.000 × 1,20 = 1.200 pip, pari all'intero profitto lordo: ecco perché il risultato si azzera al centesimo.
Vale la pena ricordare due numeri di questo calcolo. Primo: fra la terza e la quarta riga ci sono soltanto 0,20 pip di slippage, ma 2.000 USD di differenza nel risultato finale. Secondo: fra un test senza costi e uno con i costi adottati nell'esempio non c'è una piccola correzione, ma la differenza fra un sistema redditizio e uno che non lo è. Solo una misurazione sul proprio conto stabilisce se 1,20 pip siano realistici per la propria strategia: qui il numero è stato scelto per il calcolo, non rilevato sul mercato. Quanto più piccolo è il risultato lordo medio per operazione e quanto più alta è la frequenza operativa, tanto più brusco è il passaggio. Per una strategia di posizione con un risultato medio di alcune decine di pip, la stessa variazione di costo è marginale: ecco perché la sensibilità ai costi va calcolata sulla propria strategia, non ricavata dall'esempio altrui.
6. Informazione futura e fuga di dati
Il look-ahead bias è l'impiego in una decisione di informazioni che in quel momento non erano disponibili. La fuga di dati è un concetto più ampio: qualsiasi modo in cui la conoscenza del futuro entra nel processo di costruzione o valutazione delle regole. Entrambi sono pericolosi perché non sembrano un errore: sembrano un buon risultato.
Dove si manifesta una fuga di informazioni:
- Ingresso al prezzo di chiusura della candela del segnale. Descritto nella quarta sezione. La correzione: ingresso non prima dell'apertura della candela successiva, oppure segnale calcolato esclusivamente su dati già chiusi
- Un indicatore ricalcolato retroattivamente. La documentazione Pine Script definisce il repainting come una situazione in cui il comportamento di uno script fa sì che «calcoli o rappresentazioni storici e in tempo reale» si comportino diversamente (voce 4 della bibliografia, consultata il 22.08.2026). Non ogni comportamento del genere è un inganno, ma va sempre descritto prima di considerare credibile il risultato. Il meccanismo degli avvisi e la differenza fra storico e tempo reale sono approfonditi nell'articolo su TradingView
- Un indicatore centrato. Qualsiasi costruzione che utilizzi osservazioni di t+k per il valore al punto t è inutilizzabile per il trading, anche se su un grafico storico appare eccellente
- Dati macroeconomici dopo una revisione. Il valore di un indicatore in una versione rivista anni dopo non è ciò che era noto al momento della pubblicazione. Se una regola utilizza dati macroeconomici, deve usare la versione disponibile al momento della decisione, comprese le revisioni già pubblicate, e l'orario effettivo di pubblicazione. L'interpretazione delle pubblicazioni è approfondita nell'articolo sul trading in occasione dei dati
- Selezione degli strumenti conoscendo il futuro. Testare soltanto strumenti sopravvissuti fino a oggi o notoriamente saliti introduce una selezione basata sul futuro. Nelle valute riguarda soprattutto le coppie esotiche e i periodi in cui è cambiato il regime di cambio
- Preparazione dei dati prima della divisione del campione. Normalizzazione, ridimensionamento o selezione delle caratteristiche calcolati sull'intero insieme trasferiscono informazioni dalla parte out-of-sample a quella in-sample. La divisione in in-sample e out-of-sample deve essere la prima operazione, non l'ultima
Ipotesi. Stesse regole e parametri, stesso strumento, periodo, modalità di generazione dei tick e modello dei costi del test di riferimento. Cambia una sola cosa: il momento dell'ingresso. Registrare la versione del codice, quella della piattaforma e gli identificativi di entrambi i report; altrimenti il confronto non è riproducibile.
Procedura. Ritardare l'intero segnale di un periodo decisionale completo e ripetere il test senza cambiare altro. Ripetere con un ritardo di due periodi: un solo punto non mostra la forma della relazione.
Risultato osservato. Si interpreta il confronto fra tre numeri: risultato per operazione senza ritardo, dopo un periodo e dopo due. Qui non vengono forniti valori specifici, perché per questo articolo non è stato eseguito alcun test: i tre campi vanno compilati con i propri numeri ricavati dai propri report.
Limite. La scomparsa del risultato dopo un ritardo non dimostra una fuga di informazioni dal futuro. Lo stesso quadro è prodotto da un segnale breve il cui vantaggio si esaurisce in pochi minuti e da un segnale sensibile al prezzo di esecuzione, per il quale una candela di differenza rappresenta l'intero movimento atteso all'ingresso. Il test distingue i sistemi robusti al momento dell'ingresso da quelli che non lo sono: non consente di affermare altro.
Cosa chiarisce davvero la questione. Una fuga viene esclusa mediante una verifica della disponibilità: per ogni variabile che entra nella decisione si annota quando il suo valore era noto e lo si confronta con il momento della decisione. Una variabile con timestamp successivo alla decisione costituisce una fuga, indipendentemente dall'esito del test di ritardo; viceversa, una verifica senza riserve chiude la questione anche se il risultato è sceso con il ritardo.
7. Dentro/fuori campione e walk-forward
Il principio si riassume in una frase ed è implacabile: i dati utilizzati per la messa a punto non possono fungere contemporaneamente da validazione indipendente. Tutto il resto ne consegue.
L'insieme in-sample (IS) è il tratto storico sul quale si possono scegliere parametri, testare varianti e modificare regole. L'insieme out-of-sample (OOS) è il tratto che non si guarda durante quel lavoro. I due devono essere separati nel tempo: mescolare casualmente le osservazioni dell'intero periodo non è una divisione IS/OOS, perché una serie temporale ha memoria e il mescolamento trasporta informazioni in entrambe le direzioni.
La conseguenza più importante della divisione: l'insieme out-of-sample perde l'indipendenza quando il suo risultato influenza le modifiche successive. Se si guarda il risultato OOS, lo si giudica debole e si cambia la strategia, quel tratto di dati cessa di essere OOS per tutto ciò che si farà dopo. Lo si può ancora usare, ma come parte dell'in-sample, non come prova indipendente. Non ci sono dati su quanto spesso questo meccanismo rovini le validazioni nella pratica e non serve fingere il contrario: basta che l'effetto sia inequivocabile. Un periodo OOS utilizzato per cambiare i parametri non è più una prova indipendente del modello rivisto.
Il tester di MetaTrader 5 integra questa divisione. L'impostazione Forward accetta i valori No, 1/2, 1/3, 1/4 e Personalizzato, e viene sempre riservata la seconda parte del periodo, quella successiva (voce 2 della bibliografia). È comodo perché rende più difficile sbirciare accidentalmente l'out-of-sample, ma non sposta automaticamente la finestra: un walk-forward con più cicli va assemblato manualmente o con uno strumento esterno. Stato della documentazione verificato il 22 agosto 2026.
Walk-forward: una finestra che si sposta
Il walk-forward ripete la stessa procedura su tratti storici successivi e spostati in avanti. Anziché un unico verdetto se ne ottiene una serie, e i segmenti di validazione concatenati formano un percorso che l'ottimizzatore non ha mai visto nel suo insieme.
- Fissare la lunghezza delle finestre prima del primo test — per esempio 12 mesi in-sample e 3 mesi out-of-sample. Scegliere le durate dopo aver visto i risultati è un'altra forma di messa a punto
- Ottimizzare esclusivamente sulla finestra in-sample e registrare il numero di varianti esaminate
- Applicare i parametri scelti alla finestra out-of-sample senza alcuna modifica
- Spostare entrambe le finestre della durata della finestra out-of-sample e ripetere
- Valutare i segmenti di validazione concatenati, non i risultati dell'ottimizzazione: quanti sono positivi, com'è il peggiore e se i parametri scelti nei cicli successivi si assomigliano.
Efficienza walk-forward, una misura introdotta da Pardo (voce 7 della bibliografia), viene talvolta utilizzata come indicatore sintetico della tenuta del risultato al di fuori dell'in-sample:
WFE = rendimento OOS annualizzatorendimento IS annualizzato × 100%
Perché il numero abbia significato, entrambi i rendimenti devono essere calcolati al netto degli stessi costi, nella stessa valuta e con la stessa regola di dimensionamento delle posizioni. Con rendimento IS nullo il rapporto non è definito; con rendimento negativo non descrive utilmente la conservazione di un vantaggio positivo. Confrontare WFE di sistemi con definizioni di rendimento diverse non ha senso. Ancora più importante: la WFE non è un criterio binario di ammissione. Una WFE alta su dodici operazioni out-of-sample dice meno di una moderata su quattrocento. Va letta insieme al numero di operazioni, alla distribuzione dei risultati fra i singoli cicli, al drawdown e al comportamento all'aumentare dei costi.
8. Ottimizzazione, stabilità e Monte Carlo
L'ottimizzazione risponde alla domanda su quale insieme di parametri abbia dato il miglior risultato su questi dati, non su quale funzionerà bene in seguito. Non è una sfumatura linguistica: è la differenza fra descrivere il passato e fare una previsione. Senza un registro degli impieghi effettivi, questo articolo non può dire quanti sistemi falliscano per questa ragione. Un ottimizzatore ordina i risultati sui dati forniti; quei risultati non dimostrano prestazioni future.
Picco e plateau
Invece della prima riga della graduatoria, osservarne l'intorno. Se valori vicini del parametro danno risultati simili, si ha un plateau: un'area in cui la regola si comporta in modo simile nonostante piccole variazioni delle impostazioni. Se il risultato crolla spostando il parametro di un passo, si ha un picco, molto probabilmente un incontro casuale con una configurazione dei dati storici. Scegliere un punto al centro del plateau è di solito più sensato che scegliere la cima; questa distinzione e l'intera metodologia walk-forward derivano dal lavoro di Pardo (voce 7 della bibliografia).
Lo stesso test va eseguito sui parametri che di solito nessuno ottimizza: orari operativi, distanza minima dello stop, filtro per giorno della settimana. Se il risultato dipende dall'operare fino alle 22:00 o alle 23:00 del server, verificare la motivazione economica del filtro e la stabilità fuori dal periodo di messa a punto; la sola differenza fra gli orari non dimostra overfitting.
Il numero di varianti fa parte del risultato
Nel presentare un backtest, indicare il numero di combinazioni esaminate insieme al risultato. Questa sola abitudine distingue la descrizione di un test da una pubblicità. Il lavoro di Bailey, Borwein, López de Prado e Zhu tratta metodicamente il problema dei test multipli e la probabilità che il risultato migliore sia un artefatto della ricerca (voce 8 della bibliografia); Aronson descrive sistematicamente la selezione basata sul risultato (voce 9).
Monte Carlo come test di robustezza, non come previsione
Una variante semplice e utile, descritta fra gli altri da Tomasini e Jaekle (voce 10 della bibliografia): prendere i risultati delle operazioni dei segmenti di validazione, estrarre ripetutamente nuovi ordinamenti e calcolare la distribuzione del drawdown massimo. Interessa la coda destra della distribuzione — per esempio il 95º percentile del drawdown massimo, cioè il valore non superato dal 95 per cento dei percorsi simulati. Se supera il limite di drawdown previsto dal piano di rischio, il modello e la dimensione della posizione ipotizzati non soddisfano quel criterio di rischio, anche se la media appare favorevole.
Occorre esplicitare due limiti. Il rimescolamento presuppone operazioni indipendenti, cosa non vera se la strategia apre posizioni correlate o adegua la dimensione ai risultati recenti. Inoltre, un secondo punto spesso formulato troppo genericamente: il rimescolamento attinge a risultati già verificatisi, quindi non genererà una singola operazione al di fuori della distribuzione osservata. Questo non limita il drawdown massimo: il senso della simulazione è proprio che un ordine diverso può concentrare perdite esistenti in un'unica sequenza e produrre un drawdown maggiore di quello osservato. Monte Carlo esamina quindi la sensibilità all'ordine degli eventi, non la gamma dei possibili eventi individuali. Il limite di drawdown e il meccanismo di arresto del trading sono descritti nell'articolo su drawdown e interruttore di emergenza.
9. Che cosa confermano forward, demo e riproduzione
Il forward test viene talvolta descritto come la prova definitiva. Non lo è: è una fase di validazione che conferma qualcosa di circoscritto e molto specifico.
Un forward test su un tratto storico riservato conferma che le regole con parametri fissi hanno dato un determinato risultato su dati mai visti dall'ottimizzatore. Non conferma il costo di esecuzione né il comportamento in un diverso regime di mercato.
Un forward test in tempo reale su un conto demo aggiunge due verifiche: che l'implementazione funzioni correttamente durante il normale utilizzo del terminale e che si riescano ad applicare le regole senza improvvisare. Non misura il costo di esecuzione nella misura in cui il server demo non lo riproduce: ciò che riproduce esattamente è stabilito dalla documentazione di quel broker e di quel tipo di conto, non da un principio generale. Finché non lo si verifica, il risultato demo descrive una simulazione con ipotesi di esecuzione non ancora verificate.
Un forward test su un conto con capitale reale, alla dimensione minima aggiunge una misurazione del costo di esecuzione. Con la riserva della seconda sezione: lo misura per la dimensione effettivamente negoziata. La decisione di aumentare l'esposizione non appartiene alla procedura di test, ma al piano di gestione del rischio, e solo se il piano lo consente.
Replay del mercato
Il replay riproduce la storia nascondendo il futuro: si avanza barra per barra, si prende una decisione e solo dopo si vede cosa è successo. Per le strategie discrezionali permette molte ripetizioni senza attendere in tempo reale e senza programmare le regole. Gli ambienti comprendono simulatori dedicati con pannello ordini e statistiche e modalità integrate nelle piattaforme grafiche, che ormai non si limitano a scorrere il grafico. TradingView descrive oggi una modalità Replay Trading separata in cui «è possibile aprire posizioni e inserire ordini limite, stop e stop-limit, proprio come con un broker reale». I risultati della sessione sono raccolti nelle schede Panoramica, Prestazioni, Analisi delle operazioni, Rapporti rischio/prestazioni e Elenco delle operazioni; di queste, «Prestazioni ed Elenco delle operazioni possono essere esportati anche per ulteriori analisi o per la tenuta dei registri» (voce 5 della bibliografia, consultata il 22.08.2026).
Cosa non offre il replay: non offre il costo di esecuzione, perché il simulatore assegna le esecuzioni secondo regole proprie, che vanno conosciute prima di considerare il risultato di una sessione qualcosa di più di un esercizio. Non offre neppure la pressione di una perdita reale. Ha inoltre un difetto specifico: è facile barare senza accorgersene. Annullare l'ultima decisione, ripetere un tratto, «ancora una volta, perché stavolta l'ho visto diversamente»: ogni operazione del genere trasforma il test in un racconto. Per essere un dato, una sessione di replay deve avere regole scritte prima dell'inizio e un registro di tutte le decisioni, comprese quelle sbagliate.
10. Strumenti di test: confronto per criteri
Nessuno strumento copre tutte le fasi. La tabella seguente li confronta secondo i criteri che determinano davvero la scelta, anziché per numero di funzioni.
| Strumento | Cosa testa | Fonte dei dati | Divisione in-sample/out-of-sample | Richiede codice | Limite principale |
|---|---|---|---|---|---|
| MetaTrader 4 — tester di strategie | Un sistema automatizzato in MQL4 su un singolo strumento | Tre modalità di modellazione: Solo prezzi di apertura, Punti di controllo, Ogni tick (voce 14) | Manuale, tramite l'intervallo di date | Sì (MQL4) | Il movimento all'interno della candela è calcolato da dati di timeframe inferiori, non letto da un flusso di tick; la barra della qualità di modellazione indica il timeframe utilizzato |
| MetaTrader 5 — tester di strategie | Un sistema automatizzato in MQL5, anche multistrumento | Cinque modalità di generazione dei tick, compresi quelli raccolti dal broker (voce 2) | Integrata (Forward: 1/2, 1/3, 1/4, Personalizzato) (voce 2) | Sì (MQL5) | Disponibilità e profondità storica dei tick reali dipendono dal broker; dove l'archivio presenta lacune, il tester integra il percorso con tick modellati (voce 1); la finestra walk-forward non si sposta da sola |
| cTrader — backtest di cBot | Un sistema automatizzato nell'ambiente cTrader Algo | Quattro modalità: Dati tick dal server, Barre M1 dal server, Barre M1 in un file CSV, Barre H1 dal server (voce 6) | Manuale, tramite l'intervallo di date | Sì | Commissione per milione di unità negoziate, spread fisso oppure estratto casualmente da un intervallo dato: il modello dei costi è quindi semplificato e va impostato consapevolmente |
| TradingView — strategie Pine e Replay Trading | Regole in Pine Script e pratica delle decisioni sul grafico, con registrazione delle posizioni ed esportazione dei risultati della sessione (voce 5) | Dati del fornitore selezionato sul grafico | Manuale | In parte (Pine per le strategie, replay senza codice) | Le esecuzioni sono assegnate da un emulatore; il comportamento storico e quello in tempo reale possono differire (voce 4); sui grafici non standard i prezzi di esecuzione sono sintetici e il risultato solitamente non descrive il mercato (voce 15) |
| Simulatori replay dedicati | Strategie discrezionali, decisione per decisione | Pacchetti di dati forniti con lo strumento; per uno dei fornitori verificati la documentazione indica dati tick con spread variabile, mentre per gli altri la copertura può differire e va consultata separatamente (voce 11) | Manuale | No | Le esecuzioni sono assegnate da un emulatore, quindi non misura il costo reale di esecuzione, neppure quando il fornitore permette spread variabile e commissioni; la documentazione del fornitore verificato non descrive le regole di esecuzione stesse (voce 11); è inoltre facile ripetere un tratto e compromettere il campione |
| Analizzatori dei risultati (importazione dei report) | Report già prodotti da un tester o da un conto | Il file di input | Dipende dallo strumento | No | Non esegue un test: eredita tutti gli errori della fonte |
| Python (librerie di backtesting) | Qualsiasi logica, pieno controllo sulla divisione del campione | Qualsiasi fonte, con responsabilità sulla qualità | Completa, con qualsiasi schema | Sì | L'intera correttezza metodologica ricade su di voi: si veda il seguente articolo su Python nel trading |
La scelta si riduce a tre domande. Le regole possono essere scritte in codice? In caso contrario serve un ambiente replay, non un tester. Servono tick reali? Se la regola dipende dall'ordine degli eventi all'interno di una candela, sì, e questo determina la scelta. Si vuole controllare lo schema di divisione del campione? Allora prima o poi si arriverà a un proprio codice, perché le divisioni integrate sono volutamente semplici.
11. Protocollo riproducibile e lista di credibilità
Un test non ripetibile è un'opinione scritta in numeri. I campi seguenti sono il minimo necessario perché voi fra sei mesi, o un'altra persona, possiate riprodurre esattamente lo stesso test. Se un campo non può essere ricostruito, va dichiarato come limite anziché omesso.
1. Versione delle regole o del codice e data di congelamento. 2. Insieme completo dei parametri. 3. Strumento e simbolo esatto presso il broker, compreso il suffisso. 4. Fonte dei dati e modalità di acquisizione. 5. Intervallo di date. 6. Fuso orario dei dati e ora del server. 7. Convenzione del timestamp delle candele. 8. Modalità di generazione dei tick. 9. Modello dello spread. 10. Tariffa delle commissioni e modalità di addebito. 11. Punti swap, se le posizioni superano il cambio di giornata. 12. Slippage e latenza di esecuzione ipotizzati. 13. Regola dello strumento per eseguire gli ordini pendenti: quando un limite si considera eseguito, a quale prezzo e come viene gestito un salto con un ordine stop. 14. Capitale iniziale e valuta del conto. 15. Regola di dimensionamento delle posizioni. 16. Versione della piattaforma o della libreria di test. 17. Divisione in-sample/out-of-sample con le date di confine. 18. Numero di varianti dei parametri esaminate. 19. Identificativo del report o del file di output.
Lista di controllo della credibilità del backtest
Undici domande da porre allo stesso modo ai risultati altrui e ai propri. «Non lo so» equivale a una risposta negativa.
- Sono indicati strumento, simbolo esatto, periodo e fonte dei dati?
- È indicata la modalità di generazione dei tick ed è adeguata all'orizzonte della strategia?
- È noto a quale prezzo il tester esegua gli ordini limite e stop, ed è stato verificato nella documentazione dello strumento anziché presunto?
- Il risultato comprende spread, commissioni, punti swap e slippage ipotizzato, ciascuno con la propria unità?
- Il risultato resiste a un aumento dei costi nell'ordine dello slippage medio misurato sul conto?
- Per ogni variabile che entra nella decisione è scritto quando il suo valore era noto, e nessuno di tali momenti è successivo alla decisione? Un test con ingresso ritardato integra questa verifica, non la sostituisce
- È indicata la divisione in-sample/out-of-sample con le date di confine?
- L'out-of-sample è stato esaminato una sola volta, dopo aver congelato i parametri?
- È indicato il numero di varianti dei parametri esaminate?
- Il risultato tiene nell'intorno dei parametri scelti, non soltanto in un punto?
- Numero di operazioni e durata del periodo coprono più di un regime di mercato, dato che la conclusione vuole essere generale?
Il modo peggiore di compromettere la procedura non è omettere un punto, ma svolgerli nell'ordine sbagliato: prima il risultato, poi la giustificazione. L'ordine è una condizione di senso, non una preferenza: i punti sette e otto stabiliti dopo aver visto il risultato non possono più essere fissati onestamente. Scrivere le regole prima del test, fissare i confini del campione prima dell'ottimizzazione e annotare il numero di varianti durante il lavoro costa un quarto d'ora: è ciò che distingue la validazione dalla ricerca di un bel grafico.
Una volta scritta la procedura, il passo successivo è spesso passare dai clic nel tester a un codice che la esegua in modo ripetibile e tenga autonomamente traccia della divisione del campione. Da qui comincia il tema di un articolo separato: Python nel trading, dove la riproducibilità dell'ambiente conta quanto quella del test stesso.
FAQ — testare una strategia prima di entrare sul mercato
Basta un conto demo per stabilire che una strategia sia redditizia?
Quante operazioni servono perché un risultato abbia significato?
Il walk-forward elimina l'overfitting?
Cosa significa esattamente che un backtest non considera i costi?
Il replay del mercato può sostituire un test con capitale reale?
I tick reali risolvono il problema della qualità del backtest?
Fonti e bibliografia
- MetaQuotes — MetaTrader 5 Help: Real and Generated Ticks, metatrader5.com/en/terminal/help/algotrading/tick_generation (consultato il 22.08.2026) — modalità di generazione dei tick e sostituzione dei tick reali mancanti con tick modellati: «Se lo storico di un simbolo contiene una barra al minuto priva di dati tick, il tester genera i tick in modalità “Ogni tick”»
- MetaQuotes — MetaTrader 5 Help: Strategy Testing — impostazioni del tester, forward test ed emulazione del ritardo, metatrader5.com/en/terminal/help/algotrading/testing (consultato il 22.08.2026) — l'impostazione Forward nelle varianti No, 1/2, 1/3, 1/4, Personalizzato e il principio: «se un EA utilizza ordini pendenti, i ritardi vengono applicati soltanto all'inserimento dell'ordine, non alla sua esecuzione»
- MetaQuotes — MQL5 Reference: Testing Trading Strategies, mql5.com/en/docs/runtime/testing (consultato il 22.08.2026) — «Durante il test lo spread non viene modellato, ma ricavato dai dati storici»
- TradingView — Pine Script User Manual: Repainting, tradingview.com/pine-script-docs/concepts/repainting (consultato il 22.08.2026)
- TradingView — Help Center: Learn to trade on historical data (Replay Trading), tradingview.com/support/solutions/43000691889 (consultato il 22.08.2026) — «È possibile aprire posizioni e inserire ordini limite, stop e stop-limit, proprio come con un broker reale»; le schede Panoramica, Prestazioni, Analisi delle operazioni, Rapporti rischio/prestazioni e Elenco delle operazioni, dove «Prestazioni ed Elenco delle operazioni possono essere esportati anche per ulteriori analisi o per la tenuta dei registri»
- Spotware — cTrader Algo: Backtest a cBot, help.ctrader.com/ctrader-algo/documentation/cbots/backtest-a-cbot (consultato il 22.08.2026) — quattro modalità dei dati: «Dati tick dal server», «Barre M1 dal server», «Barre M1 in un file CSV», «Barre H1 dal server»; commissione come «tariffa per milione di unità negoziate»; spread nelle varianti «Valore fisso» e «Casuale»
- Pardo, R. — The Evaluation and Optimization of Trading Strategies, Wiley, 2ª ed., 2008 — walk-forward, efficienza walk-forward, plateau dei parametri, metodologia di test dei sistemi
- Bailey, D.H., Borwein, J.M., López de Prado, M., Zhu, Q.J. — The Probability of Backtest Overfitting, Journal of Computational Finance, 2017 — test multipli e probabilità che il risultato migliore sia un artefatto della ricerca
- Aronson, D.R. — Evidence-Based Technical Analysis, Wiley, 2007 — data mining bias, selezione basata sul risultato, validazione statistica
- Tomasini, E., Jaekle, U. — Trading Systems: A New Approach to System Development and Portfolio Optimisation, Harriman House, 2009 — walk-forward, Monte Carlo, test a livello di portafoglio
- Forex Tester Software — Forex Tester Online: Support Center, help.forextester.com (consultato il 22.08.2026) — copertura dei dati forniti: «Sì, forniamo dati tick e formiamo le candele a partire da essi»; «Dati sulle variazioni di prezzo al minuto, inclusi apertura, massimo, minimo, chiusura e volume (attività di negoziazione). I dati tick forniscono dettagli su ogni variazione di prezzo di un simbolo finanziario e sullo spread variabile»; parametri di costo: «Forex Tester Online supporta il test di strategie con spread variabili e commissioni». Questa documentazione non descrive le regole con cui l'emulatore assegna il prezzo di esecuzione. L'indirizzo precedentemente citato forextester.com/documentation restituisce una pagina 404 (verificato il 22.08.2026) ed è stato sostituito
- Reserve Bank of Australia — Statement on Monetary Policy, February 2019, Box B: The Recent Japanese Yen Flash Event, rba.gov.au/publications/smp/2019/feb/box-b-the-recent-japanese-yen-flash-event.html (contenuto consultato il 22.08.2026) — «Alle 9:36 del mattino AEDT, nell'arco di circa 30 secondi e senza notizie rilevanti, lo yen si è apprezzato del 3 per cento sul dollaro statunitense»; «Anche gli spread bid-ask si sono ampliati notevolmente, da circa 2 pip a 100–300 pip»; «La liquidità del mercato era stagionalmente bassa a quell'ora del giorno e in quel periodo dell'anno»
- MetaQuotes — MetaTrader 5 Help: Testing Features, metatrader5.com/en/terminal/help/algotrading/testing_features (consultato il 22.08.2026) — la sezione Attivazione ed esecuzione degli ordini: due paragrafi consecutivi con ambiti distinti. Il primo si applica al mercato valutario: «Per gli strumenti non negoziati in borsa, tutti i tipi di ordini pendenti e SL/TP vengono attivati dai prezzi Bid e Ask. L'esecuzione avviene ai prezzi di mercato Bid e Ask correnti al momento dell'attivazione». Il secondo riguarda esclusivamente strumenti di borsa: «Gli ordini limite vengono eseguiti al prezzo specificato nell'ordine (senza slippage), mentre gli altri tipi sono eseguiti ai prezzi di mercato Bid e Ask correnti (lo slippage è possibile)». La stessa pagina sulle modalità semplificate: «Nelle modalità di test “Solo prezzi di apertura” e “OHLC a 1 minuto”, gli ordini pendenti, nonché SL e TP, vengono eseguiti ai prezzi specificati negli ordini»
- MetaQuotes — MetaTrader 4 Help: Strategy Tester — Tester Settings, metatrader4.com/en/trading-platform/help/autotrading/tester/tester_parameters (consultato il 22.08.2026) — le modalità Solo prezzi di apertura, Punti di controllo e Ogni tick; l'ultima «utilizza per la generazione non soltanto i dati del timeframe immediatamente inferiore, ma anche quelli di tutti i timeframe inferiori più vicini disponibili»; la barra della qualità di modellazione indica il timeframe utilizzato
- TradingView — Help Center: Strategy produces unrealistic results on non-standard chart types, tradingview.com/support/solutions/43000481029 (consultato il 22.08.2026) — «A causa della natura intrinsecamente sintetica dei livelli di prezzo nei grafici non standard, i risultati di backtesting calcolati su di essi di norma non rappresentano condizioni di mercato reali»
- IG — How does a demo account differ from a live account?, ig.com/uk/help-and-support/articles/687034 (articolo del 29.05.2026, consultato il 22.08.2026) — la descrizione riguarda esclusivamente il conto demo di questo fornitore: «Le operazioni effettuate tramite il conto demo non saranno soggette a slippage, rettifiche di interessi e dividendi o movimenti di prezzo fuori orario» e «Le operazioni possono essere rifiutate in caso di fondi insufficienti per aprirle, ma, diversamente da un conto reale, non verranno mai rifiutate per ragioni di dimensione o prezzo»