L’ottimizzazione dei parametri in MetaTrader 5 è una ricerca: dichiari un intervallo per ogni input, lo Strategy Tester esegue ogni combinazione e ti consegna una tabella ordinata secondo la metrica che hai scelto. La parte difficile non è lanciarla. La parte difficile è che la tabella ha sempre una prima riga, e la prima riga è quasi sempre sbagliata.
Quello che ottieni da questo articolo è una procedura che produce una decisione invece di un numero: una ricerca che puoi difendere, una lettura della griglia dei passaggi che sopravvive al contatto con un secondo periodo, e una regola di arresto.
| Condizioni del test | |
|---|---|
| ID esperimento | EXP-PARAM-SEARCH-OUTCOMES-001 |
| Esperimento padre | EXP-BUILDER-TEMPLATE-BASELINE-001 |
| Fonte | ea-templates-manifest.js → bt.explored |
| Popolazione | 8 recorded searches of the 53 measured templates |
| Simbolo / timeframe | USDJPYm, M5 and H1 |
| Modello | M1 OHLC (Model=1), Exness MT5, measured 2026-06-18 |
| Parametri variati | stop loss and take profit only |
| Ultima verifica | 2026-08-25 |
Preparazione: la griglia, la divisione e i dati
Tre impostazioni decidono se valga la pena lanciare la ricerca. Sbagliale e la griglia dei passaggi diventa un generatore di numeri casuali molto costoso.
| Campo | Dove | Cosa impostare | Perché |
|---|---|---|---|
| Optimisation | Scheda Settings | Slow complete algorithm per una griglia piccola | La modalità genetica campiona lo spazio; per 12–32 combinazioni puoi permetterti di vederlo tutto |
| Start / Step / Stop | Scheda Inputs, per ogni input | Due parametri, passi grossolani | Ogni input che spunti moltiplica la griglia. La nostra ne ha mossi due |
| Forward | Scheda Settings | 1/2, 1/3 o 1/4 | Divide l’intervallo così che il tester valuti separatamente la seconda metà — è questo il controllo per cui stai lanciando la ricerca |
| Criterio di ottimizzazione | Scheda Settings | Deciderlo prima di guardare la griglia | È la metrica con cui il tester ordina i passaggi, quindi decide quale riga è la prima riga |
| Modelling | Scheda Settings | Una modalità grossolana per scandagliare, poi rilancia il sopravvissuto su tick reali | Le modalità di scansione servono a ordinare i candidati, mai a produrre una cifra pubblicata |
| Period | Scheda Settings | Abbastanza lungo da contenere più di un regime | Una ricerca dentro un solo trend trova l’impostazione che l’ha cavalcato |
Il criterio merita una decisione, non un valore predefinito. Ordinare per profitto netto premia il passaggio che si è preso più rischio, e ordinare per una misura basata sul drawdown premia quello che ha operato meno — il recovery factor esiste proprio perché quelle due risposte non concordano. Le nostre ricerche non sono state giudicate affatto dall’ordinamento del tester: ogni sopravvissuto è stato valutato sul profit factor su tre finestre separate, e l’ordinamento dentro una qualsiasi di esse non ha mai deciso niente.
La qualità dei dati viene prima di tutto: una ricerca su tick cattivi ottimizza i buchi. La versione breve è che una qualità di modellazione sotto il 90% rende inutilizzabili le griglie dei passaggi intraday, e che un’esecuzione costruita su dati tick interpolati non riesce a risolvere uno stop che sta dentro una barra.
- Lancia prima un singolo backtest, con i valori predefiniti, e conserva il report. Senza una linea di base la griglia dei passaggi non ha niente da battere — come fare un backtest copre quel passaggio dall’inizio alla fine.
- Nella scheda Settings imposta Optimisation su un passaggio completo per una griglia piccola, e imposta Forward su
1/3così che il tester trattenga l’ultimo terzo dell’intervallo. - Nella scheda Inputs spunta solo i parametri che stai davvero testando, e dai a ciascuno uno Start, uno Step e uno Stop. Due input con passi grossolani battono quattro con passi fini.
- Premi Start e lascia che finisca. Leggi la scheda Optimisation Results come una tabella, e l’Optimisation Graph come una forma — un picco isolato è un avvertimento, un plateau è un risultato.
- Prendi i sopravvissuti — non il vincitore — e rilancia ciascuno come singolo backtest su un periodo precedente alla finestra di ottimizzazione. È il passo che ha prodotto ogni verdetto negativo del nostro insieme, ed è quello che la gente salta.
Leggere i risultati: tre periodi, non uno
Ecco per intero il nostro insieme registrato, ordinato per il miglior profit factor in-sample raggiunto da ciascuna ricerca. IS è il periodo su cui l’impostazione è stata adattata, OOS è la finestra di hold-out, e Precedente una finestra anteriore che la ricerca non ha mai visto.
| Template | Griglia cercata | Miglior IS | OOS | Precedente | Verdetto |
|---|---|---|---|---|---|
ichimoku | 12 combinazioni × 3 finestre | 1,37 | 0,89 | 0,80 | no_robust_edge |
ma_crossover | 20 + 12 combinazioni, due timeframe | 1,23 | 0,89–0,94 | 0,78 | no_robust_edge |
cci_level | 12 combinazioni × 3 finestre | 1,07 | 1,05 | 0,92 | no_robust_edge |
adx_trend | 12 combinazioni × 3 finestre | 1,04 | 0,91 | 0,80 | no_robust_edge |
breakout | 12 combinazioni × 3 finestre | 1,04 | 0,79–0,89 | 0,64–0,84 | no_robust_edge |
macd_signal | 12 combinazioni × 3 finestre | — | 1,14–1,15 | 0,74–0,77 | no_robust_edge |
rsi_reversal | 12 combinazioni × 3 finestre | 0,91 | — | — | no_robust_edge |
bb_bounce | 12 combinazioni × 3 finestre | 0,91 | — | — | no_robust_edge |
Leggi in verticale la prima colonna numerica, poi in orizzontale. Il risultato in-sample più alto dell’insieme ha prodotto il crollo più grande: l’1,37 di ichimoku è sceso a 0,89 e poi a 0,80. Quell’ordine non è una coincidenza — l’impostazione che si adatta meglio a una finestra è per costruzione quella che ha assorbito di più il rumore di quella finestra.
Ora leggi l’impostazione che ci è arrivata davvero più vicina. Non è nella tabella qui sopra, perché non è mai stata la prima riga di niente: sulla stessa griglia di ichimoku, SL50/TP150 ha segnato 1,18 in sample, 0,99 out of sample e 1,00 sulla finestra precedente. Tre periodi, tutti più o meno piatti. È stata registrata come il candidato più vicino e comunque non adottata, perché il pareggio su tre finestre non è un vantaggio: è l’assenza di un vantaggio, misurata con cura.
Rispetto a tutto ciò, le linee di base che queste ricerche cercavano di battere stanno tra 0,92 e 1,03. Nemmeno una ricerca ha spostato un valore predefinito già pubblicato.
Trappole da evitare
La modalità di fallimento sotto tutte e cinque è la stessa. L’overfitting non è un errore che commetti alla fine di una ricerca: è l’esito predefinito del lanciarne una, e la disciplina dei tre periodi esiste per renderlo visibile prima che tu ci agisca sopra.
Migliorare e iterare: cosa cambiare e quando fermarsi
Cambia una cosa sola, rilancia, confronta con la linea di base che hai conservato. L’ordine che spreca meno tempo:
- Allarga il periodo prima di allargare la griglia. Più regimi battono più combinazioni. Una ricerca che copre un solo trend troverà l’impostazione che l’ha cavalcato, qualunque sia la risoluzione.
- Poi rendi i passi più grossolani, invece di raffinarli. Se un risultato esiste solo a
SL47, non esiste. - Poi, e solo allora, aggiungi un parametro. Le nostre non sono mai arrivate così avanti, perché già due parametri non superavano l’asticella dei tre periodi.
Fermati quando una di queste è vera, e scrivi quale:
- Un sopravvissuto supera tutti e tre i periodi. Adottalo, e registra tutta la griglia che hai cercato — non solo il passaggio che hai tenuto.
- Il miglior risultato in-sample è sotto 1,0. Hai una risposta vera: due delle nostre otto ricerche sono finite qui, e finire qui dopo 36 valutazioni costa poco.
- I sopravvissuti continuano a superare una finestra e a fallirne un’altra. La regola dipende dal regime. Cercare di più produce solo altre impostazioni che dipendono dal regime.
- Hai iniziato a spiegare perché la finestra precedente «non conta». È il momento in cui la ricerca ha smesso di essere un test.
Il registro onesto di una ricerca è l’intervallo che hai coperto e il verdetto, insieme. Tutte e otto le nostre sono archiviate così, ed è l’unico motivo per cui questo articolo ha potuto essere scritto a partire da esse — un vincitore archiviato da solo non avrebbe dimostrato niente.
Prossimi passi: fai un forward test, poi decidi
L’ottimizzazione è il secondo passo di quattro. La sequenza è backtest → ottimizzazione → walk-forward → demo, e ognuno elimina un modo diverso di sbagliare.
- Fai pratica del ciclo su qualcosa che controlli: costruisci una strategia nell’EA Builder e cerca tu stesso il suo stop e il suo target, perché una griglia che hai dichiarato tu è molto più facile da leggere onestamente di una che hai ereditato.
- La versione formale del controllo su tre periodi è la walk-forward analysis, che fa scorrere in avanti la divisione invece di fissarla in un punto solo.
- Qualunque cosa ti restituisca la ricerca, il report in cui te la restituisce va comunque letto: leggere un report di backtest MT5 spiega su quale popolazione ciascuna cifra in evidenza stia davvero facendo un’affermazione.
- Per vedere che aspetto ha un registro finito quando i numeri sono sopravvissuti, ogni scheda degli EA pubblicati porta l’elenco completo delle operazioni chiuse e il manifesto di esecuzione.
- Come testiamo, valutiamo e registriamo tutto questo è descritto nella nostra metodologia di test.