Un alto tasso di successo storico non dimostra da solo un vantaggio. Il Backtesting valuta regole esplicite su dati definiti con un modello di esecuzione; anche una prova accurata non garantisce rendimenti futuri. Il primo risultato utile può essere un errore scoperto e corretto, non una curva da pubblicizzare.

Perché verificare regole sui dati passati?

Un’aspettativa storica positiva riguarda il campione esaminato. Può riflettere caso, selezione o adattamento eccessivo: servono osservazioni tenute da parte, costi e verifiche di robustezza prima di ampliare la conclusione. La domanda è anche se il test rappresenti ciò che il programma avrebbe potuto sapere e fare, non soltanto quanto renda il report finale.

Regole ambigue producono prove ambigue

Registra simbolo, timeframe, input, momento dell’ordine, uscite e calcolo della quantità. Regola giornaliera fittizia: confronta la chiusura della barra completata con il massimo precedente e invia solo dopo che quella chiusura è disponibile. Usare la chiusura finale per entrare all’apertura antecedente della stessa barra introduce informazione futura. Specifica posizione già esistente, dati non disponibili e margine insufficiente. Un parametro di indicatore non risolve queste decisioni e non garantisce un fill.

Verificare un vantaggio: campioni, costi e pesi collega test e ricerca del vantaggio: una contraddizione nelle regole può essere scoperta storicamente, ma un risultato positivo richiede ancora valutazione di selezione, incertezza e costi. Confronta singole decisioni riproducibili prima del totale.

Dati e campione: definire prima ciò che serve

I dati devono rappresentare strumento e modello esecutivo. Futures valutari, spot OTC e CFD sono contratti distinti; un archivio centralizzato futures non sostituisce automaticamente i prezzi del prodotto retail. Non esiste una soglia universale di significatività a cento operazioni: contano dispersione, dipendenza, dimensione dell’effetto, selezione e regimi. Dichiara incertezza e dimensione effettiva del campione.

Seleziona un periodo pertinente, documentando limiti, provider, prodotto, lato della quotazione, fuso e lacune. OHLC non determina se stop o obiettivo siano stati toccati per primi nella stessa barra. MT5 può generare tick per un minuto privo di storico tick anche durante un test impostato sui tick reali: controlla dati e diario, non solo il nome della modalità. Per un paniere conserva i componenti disponibili allora; per i dati macro usa la versione nota allora, non revisioni successive. Europe/Rome riguarda il lettore italiano, non sostituisce automaticamente timestamp del server o calendario della serie.

Riconciliare i prezzi prima di addebitare lo spread

Modello fittizio completo, una sola unità di quantità: ingresso Bid 100/Ask 102, uscita Bid 103/Ask 105. Punto medio 101 all’ingresso e 104 all’uscita. Acquisto esattamente a 102 e vendita a 103, senza commissioni, finanziamento, gap o slippage: risultato +1 unità di prezzo. Non sono quotazioni attuali né fill garantiti.

Due metodi coerenti, stesso risultato

Due metodi coerenti, stesso risultatoEntrata 100/102, uscita 103/105. Midpoint 101 → 104: variazione 3. Ask 102 → Bid 103: risultato 1. Midpoint meno due mezzi spread 1 e 1: risultato 1. Sottrarre due spread interi 2 e 2 produce erroneamente −1. Barre su asse comune da −2 a 4, 80 pixel per unità, zero a 330.Ask → Bid include già lo spreadIngresso 100/102 · uscita 103/105Variazione dei punti medi: 104−101+3Esecuzioni assegnate: 103−102+1Errore: midpoint meno due spread interi−1−2024Metodo coerente sui midpoint: 3−1−1 = +1
Scala lineare comune, unità arbitrarie di prezzo e quantità. La barra −1 rappresenta un errore di misura, non un’altra esecuzione valida.

Scorri orizzontalmente o ingrandisci il diagramma per leggere i dettagli.

I punti medi crescono di 104−101 = 3. Entrare 1 sopra il punto medio e uscire 1 sotto costa 1+1: 3−1−1 = 1, coerente con 103−102. Gli spread interi sono 2 all’ingresso e 2 all’uscita: sottrarli entrambi al movimento dei midpoint dà 3−2−2 = −1, incoerente. Sottrarre ancora 2 al risultato già Ask/Bid conta nuovamente lo stesso componente. Prima di confrontare report annota origine e significato dei prezzi; altri fill o commissioni richiedono un modello ulteriore.

Spread, commissioni e sensibilità

Un risultato sui prezzi Ask d’ingresso e Bid d’uscita include già lo Spread Bid–Ask. Aggiungi separatamente Commissione di trading, finanziamento e differenze esecutive dichiarate senza duplicazioni. Uno spread ipotetico 0,8 pip equivale allo 0,4 % di un obiettivo 200 pip e al 16 % di uno da 5 pip: quote della distanza dell’obiettivo, non del vantaggio economico e non stime di un risultato reale.

Modello PLN originario distinto: cinquanta operazioni chiuse, trenta guadagni da 40 PLN e venti perdite da 50 prima dei costi. Guadagni 1.200, perdite 1.000, netto 200. Applica lo stesso costo completo a ciascuna operazione chiusa, comprese le perdenti.

Cambia soltanto il costo assegnato per trade
Costo PLNTotale netto PLNMedia PLNProfit factor netto
020041,20
21002Circa 1,10
4001,00

Con costo 2 PLN, ciascuna vincita diventa 38 e ciascuna perdita 52: profit factor 1.140/1.040, circa 1,10. La tabella è aritmetica su ipotesi scelte, non evidenza di una strategia osservata. Stressa costi ed esecuzioni plausibili; raddoppiare il costo medio è un filtro scelto, non margine di sicurezza universale.

Controesempio EUR distinto. Dieci esiti inventati: tre guadagni da 20 EUR e sette perdite da 5 EUR, al lordo di un costo separato completo di 3 EUR per trade chiuso. Risultato iniziale 60−35 = 25 EUR. Dopo il costo, vincite 3 × 17 = 51, perdite 7 × 8 = 56, netto −5. Il costo totale è 30, non soltanto 9 sulle tre vincite. Un win rate 30 % può accompagnare questo lordo positivo ma non il netto positivo; il profit factor cambia da 60/35 a 51/56, circa 0,91. Non sono tariffe correnti o prove live.

Il costo si applica anche ai trade perdentiDieci risultati EUR fittizi: tre × 20, sette × −5, costo completo 3 per ciascuno, separato dai risultati iniziali.ESEMPIO DI CALCOLOPrima dei costi+25 EURCosto completo30 EURDopo i costi−5 EUR
Il costo si applica anche ai trade perdenti. Dieci risultati EUR fittizi: tre × 20, sette × −5, costo completo 3 per ciascuno, separato dai risultati iniziali.

Addebitare soltanto sulle vincite cambia il modello.

Prima dei costi
+25 EUR – 60 guadagni meno 35 perdite.
Costo completo
30 EUR – Dieci operazioni × 3, non tre × 3.
Dopo i costi
−5 EUR – 51 guadagni meno 56 perdite; profit factor≈0,91.

Selezione e cronologia della valutazione

Scegliere il migliore fra parametri, strumenti o suddivisioni può adattare peculiarità del passato. Conserva tutte le prove, anche idee scartate fuori dall’ottimizzatore. Un ottimo risultato selezionato non dimostra da solo overfitting, ma richiede valutazione separata. Limitare l’ottimizzazione a due parametri non elimina selezioni fatte altrove.

Congela regole, costi e suddivisione prima delle prove. 70/30 è un disegno possibile, non obbligo o garanzia. Risultato peggiore sul test può dipendere anche da campionamento o regimi. Rivedere la strategia dopo averlo visto rende quel periodo parte dello sviluppo: documentalo.

Conta quando ogni esito è noto. Modello originario: decisione al tempo t, etichetta disponibile a t +3; il primo test inizia a t 10 e il fitting deve finire prima. Fra decisioni candidate t 1–t 9, soltanto t 1–t 6 hanno esiti disponibili prima di t 10. L’etichetta di t 6 arriva a t 9; quelle di t 7–t 9 arrivano a t 10–t 12 e non possono informare quel fitting. Prezzi più vecchi possono comunque servire per un indicatore del test. L’esclusione risolve questa sovrapposizione di etichette, non ogni possibile leakage. Un gap contato in campioni non sostituisce il controllo delle effettive disponibilità se gli esiti hanno durata variabile.

Statistiche coerenti, conclusioni limitate

Aritmetica ipotetica originale: probabilità di vincita 0,54, guadagno medio 2,3 R e perdita media 1 R danno aspettativa lorda 0,54 × 2,3−0,46 = 0,782 R e profit factor circa 2,70. Queste informazioni non determinano Drawdown o rendimento totale. Separatamente, un rendimento assegnato 87 % in esattamente cinque anni equivale a circa 13,34 % composto annuo: non è ricavato dalle precedenti statistiche dei trade.

Rendere il report verificabile

Collega versione dei dati, regola e modello esecutivo. Riproduci una perdita, un segnale assente e un caso intrabar ambiguo. Un run demo verifica funzionamento nel tempo reale, senza obbligo di passaggio live dopo un risultato positivo.

  1. Scrivi specifica meccanica, disponibilità dell’informazione, ordine e quantità, input mancanti e ambiguità. Confronta segnali riprodotti indipendentemente prima del totale.
  2. Definisci durata dei dati e suddivisione cronologica prima della selezione: cinque o due anni non sono requisiti universali.
  3. Includi costi senza duplicazioni e sensibilità. Perdere oltre 20 % del lordo in costi non è una soglia universale di rifiuto.
  4. Registra numero di trade, dipendenza, dispersione e incertezza. Aggiungere strumenti può cambiare l’ipotesi; cento operazioni non creano automaticamente significatività.
  5. Confronta demo e modello congelato e indaga differenze: tre mesi non garantiscono preparazione o rendimenti live.

Esaminare dati reali senza scambiarli per tick

Lo studio del progetto sulla copia BCE 2016–2025 conta 2.560 pubblicazioni EUR/USD e 49 giorni feriali senza pubblicazione, riconciliati con il calendario TARGET. Sono dati e calcoli del progetto già documentati, non una nuova raccolta italiana. Il riferimento giornaliero non contiene spread o percorso intraday e non simula fill. Apri lo studio italiano sul calendario dei riferimenti BCE, con dati, grafico e codice.