Costruisci un Expert Advisor con il MACD su MT5 senza programmare posizionando un nodo Start, due blocchi MACD — uno che legge la linea principale, uno che legge la linea del segnale — una condizione Cross tra i due e un blocco d’ordine. È il server a generare e compilare l’MQL5, e a consegnarti un vero .ex5. Quindici minuti, nessuna sintassi.
Poi arriva la parte che decide se quel file valga qualcosa. Questa ricetta ha un registro misurato, e il suo numero più lusinghiero è quello di cui dovresti fidarti meno.
Cosa costruirai
Un EA a posizione singola su una sola coppia, che compra quando la linea MACD incrocia al rialzo la propria linea del segnale e vende quando la incrocia al ribasso, con stop e target fissi, compilato in un vero .ex5. Otto blocchi.
Due blocchi di quel conteggio esistono per una ragione sola: il blocco indicatore MACD restituisce una linea alla volta.
Prima di iniziare: cosa riporta il MACD, e quale linea stai leggendo
Ti serve un account gratuito con un indirizzo email verificato (progettare è gratis e non richiede accesso; compilare in .ex5 sì), circa quindici minuti e un terminale MetaTrader 5.
Il MACD sottrae una media mobile lenta da una veloce, poi fa di nuovo la media di quella differenza. Quindi la linea main misura quanto si sono allontanate due medie, e la linea signal è quella stessa misura smussata. Tutto ciò che una regola MACD può dire è un’affermazione sulla distanza tra due medie — il che vuol dire che è uno strumento di tendenza travestito da oscillatore, e che eredita il ritardo di entrambe le medie che l’hanno costruito.
Il blocco MACD del Builder espone queste impostazioni:
| Impostazione del blocco | Predefinito | Cosa controlla |
|---|---|---|
fast_ema | 12 | La media più rapida. Intervallo 1–999 |
slow_ema | 26 | Quella più lenta. La distanza tra le due è l’intero segnale |
signal_period | 9 | Quanto viene smussata la differenza prima che tu la confronti |
line | MODE_MAIN | Quale linea restituisce questo blocco — MODE_MAIN oppure MODE_SIGNAL |
applied_price | PRICE_CLOSE | Quale prezzo alimenta il calcolo |
shift | 0 | 0 è la barra in formazione; 1 è l’ultima chiusa |
timeframe | grafico corrente | Uno qualsiasi da M1 a MN1, letto indipendentemente dal grafico |
line è la riga che cambia la forma del tuo flusso. È una selezione a due valori, quindi un blocco ti dà una linea. Un incrocio della linea del segnale ha perciò bisogno di due blocchi MACD; un incrocio della linea dello zero ne richiede uno, più un confronto con una costante.
Passo dopo passo: costruire l’EA con il MACD nel Builder
- Apri l’EA Builder e carica il template
macd_signaldalla galleria, oppure parti da una tela vuota e collegalo da solo. - Posiziona un nodo Start dalla palette Utility. Senza, la validazione ferma la costruzione con
EAB-E202. - Aggiungi un blocco MACD e lascia
linesuMODE_MAIN. Lascia stare 12/26/9 alla prima costruzione, così il tuo risultato resta confrontabile con la baseline qui sotto. - Aggiungi un secondo blocco MACD con periodi identici e imposta
linesuMODE_SIGNAL. Stesso indicatore, stesse impostazioni, output diverso — questo è il passaggio che la gente salta, ed è saltandolo che il flusso finisce per confrontare una linea con se stessa. - Collega entrambi dentro una condizione Cross. Cross prende due ingressi e chiede se uno ha incrociato l’altro su questa barra; il suo
cross_typeècrossoveroppurecrossunder, quindi il lato acquisto e il lato vendita sono due condizioni separate, non una sola invertita. - Collega ciascuna condizione al proprio blocco Open Buy / Open Sell. Collegare un indicatore direttamente a un ordine viene respinto con
EAB-E205— un valore grezzo non è una decisione. - Imposta il rischio nella scheda Settings. I valori predefiniti condivisi sono uno stop a 50 pip, un target a 100 pip e un lotto fisso da
0.01; un flusso privo di uno stop valido solleva una diagnosi di preflightCRITICALprima di poter costruire. - Premi Measure e leggi il risultato rispetto alla soglia che il pannello stampa: profit factor almeno 1,2, almeno 60 operazioni, drawdown non peggiore del 20%.
- Premi Compile .ex5, sposta il file dentro
MQL5/Expertstramite File > Open Data Folder, aggiorna il Navigator e testalo nello Strategy Tester prima che si avvicini a un conto.
- Nodo Start
- Blocco MACD, line = MODE_MAIN
- Blocco MACD, line = MODE_SIGNAL
- Cross — crossover per l’acquisto, crossunder per la vendita
- Open Buy e Open Sell
- Stop loss e take profit
- Compila in .ex5
Se invece vuoi la versione sulla linea dello zero, elimina il secondo blocco MACD e sostituisci Cross con Compare, i cui operatori sono > < >= <= == != e il cui offset parte da 0. «MACD main sopra lo zero» è l’affermazione che la media veloce sta sopra la lenta, punto — un evento molto più raro e molto più tardivo del semplice contatto tra le due linee. La palette porta anche OsMA, che restituisce direttamente come singolo valore la differenza tra main e signal, quindi una regola sull’istogramma richiede un blocco invece di due.
Ingresso, uscita e parametri del MACD
| Impostazione | Valore del template | Cosa fa muoverla |
|---|---|---|
fast_ema | 12 | Più basso reagisce prima e incrocia molto più spesso; il numero di operazioni si muove prima del win rate |
slow_ema | 26 | Alzarlo allarga la distanza che la linea veloce deve percorrere, quindi i segnali arrivano più tardi e più di rado |
signal_period | 9 | Lo smussamento sulla linea di confronto. Più corto significa più incroci, per lo più rumore |
line | MODE_MAIN | Non è una manopola di messa a punto — decide quale regola hai costruito |
shift | 0 | Impostalo a 1 per decidere solo su barre chiuse |
| Stop loss | 50 pip (predefinito condiviso) | L’intervallo cercato era 30–80 |
| Take profit | 100 pip (predefinito condiviso) | L’intervallo cercato era 60–250 |
Sul ritardo, che è la critica onesta a questo indicatore. Ogni valore qui è il risultato di due medie impilate su una terza. Un incrocio è perciò il resoconto di un movimento già avvenuto — l’unica domanda è quanto tardi. Accorciare fast_ema compra anticipo e lo paga in incroci falsi; allungare slow_ema compra affidabilità e la paga in ingressi che arrivano dopo il movimento. Il registro del template stesso suggerisce dove è atterrato: 698 operazioni in un anno, il secondo conteggio più alto dei tredici template di tendenza e momentum misurati sotto condizioni identiche. È un progetto che scatta di continuo, e scattare di continuo è ciò che costa un ritardo breve.
Cosa ha toccato la ricerca e cosa non ha toccato. La ricerca di parametri registrata ha mosso soltanto lo stop e il target — SL30-80 × TP60-250, 12 combinazioni su tre finestre in H1. Non ha mai fatto variare fast_ema, slow_ema o signal_period. Quindi niente in questa pagina sostiene l’affermazione che 12/26/9 sia giusto, sbagliato o migliorabile. Sostiene un’affermazione molto più stretta e molto più utile: nessuna combinazione di stop e target ha salvato il progetto.
Backtest dell’EA con il MACD
Questo è il registro misurato del Builder stesso, non una nuova esecuzione, e ogni template del confronto condivide l’unico blocco di condizioni qui sotto. Come testiamo descrive lo standard a cui quei registri sono tenuti.
Baseline di macd_signal | Valore |
|---|---|
| Profit factor | 0,93 |
| Operazioni | 698 |
| Drawdown massimo | -1,05% |
| Netto | -93,93 |
| Posizione nel suo vicinato per profit factor | 8° su 13 |
| Posizione nel suo vicinato per numero di operazioni | 2° su 13 |
| Supera la soglia stampata dal pannello Measure | no |
| Condizioni del test | |
|---|---|
| ID esperimento | EXP-MACD-RECIPE-BASELINE-001 |
| Esperimento padre | EXP-BUILDER-TEMPLATE-BASELINE-001 |
| Simbolo / timeframe | USDJPYm M5 |
| Periodo | 2025-06-01 – 2026-06-09 |
| Modello | M1 OHLC (Model=1) |
| Deposito | 10,000 |
| Ambiente | Exness MT5 |
| Baseline misurata | 2026-06-18 |
| Ultima verifica | 2026-08-25 |
Il risultato della ricerca merita più di una riga. Otto template della galleria portano una ricerca di parametri registrata, e tutti e otto sono finiti a no_robust_edge. Ma hanno fallito in due modi diversi, e la differenza conta più del verdetto che hanno in comune. Due di loro non hanno mai prodotto un’impostazione vincente, nemmeno sul periodo su cui la ricerca era stata adattata. macd_signal è l’unico che ha prodotto un’impostazione capace di superare 1,0 fuori campione — da 1,14 a 1,15 al target più ampio — per poi segnare da 0,74 a 0,77 sulla finestra precedente. La parola che il manifesto stesso usa per questo è regime-dependent, dipendente dal regime.
Leggi cosa implica tutto ciò sul testare. Se avessi diviso i tuoi dati una volta sola, adattato sulla prima metà e controllato sulla seconda, questo template ti avrebbe consegnato un risultato promosso. L’unica cosa che l’ha colto è stato il controllo su una terza finestra che la ricerca non aveva mai visto. È l’argomento a favore della walk-forward analysis in un caso concreto, e vale più di qualunque avvertimento generico sull’overfitting.
Dove si colloca il MACD tra i suoi vicini, tutti misurati sotto l’unico blocco di condizioni qui sopra:
| Template | Blocchi | Profit factor | Drawdown | Operazioni |
|---|---|---|---|---|
ma_perfect_order_trend | 10 | 1,07 | -0,36% | 305 |
mtf_osc_filter | 27 | 1,04 | -0,64% | 187 |
consecutive_bars_momentum | 7 | 1,03 | -0,36% | 377 |
ao_ama_trend | 14 | 0,97 | -0,95% | 239 |
adx_trend | 12 | 0,96 | -0,76% | 534 |
multi_tf_trend | 15 | 0,96 | -0,51% | 247 |
ma_crossover | 9 | 0,95 | -0,84% | 420 |
macd_signal | 8 | 0,93 | -1,05% | 698 |
ma_slope_trend | 7 | 0,92 | -1,00% | 478 |
mtf_adx_filter | 14 | 0,92 | -0,84% | 343 |
elder_ray | 9 | 0,90 | -1,34% | 529 |
pitch_trail_trend | 9 | 0,77 | -1,61% | 467 |
dynamic_sl_trend | 9 | 0,68 | -1,62% | 708 |
Dividi quei tredici sul loro stesso numero di operazioni mediano, 420, e le due metà si separano nettamente. I sei che hanno operato meno hanno fatto in media un profit factor di 1,00 su 283 operazioni con un drawdown del -0,61%. I sei che hanno operato di più hanno fatto in media 0,86 su 569 operazioni con -1,23% — risultati peggiori e il doppio della profondità. Tutti e tre i progetti sopra 1,0 stanno nella metà più tranquilla. Il MACD sta in quella più attiva.
È la descrizione di tredici progetti sotto un unico impianto, non una legge: anche la logica d’ingresso, il numero di nodi e le uscite sono diversi, quindi la frequenza non è dimostrata come causa. Ma è il pattern che hai davanti, e il template MACD incluso sta dal lato sbagliato.
Errori comuni da evitare
Credere a una promozione fuori campione. È l’errore che questo template esiste per dimostrare. Un solo periodo tenuto da parte è un campione singolo, e una regola di momentum può vincere un campione singolo perché durante quel periodo il mercato era in tendenza. Testa una terza finestra che la ricerca non ha mai visto prima di credere a un numero.
Confrontare una linea con se stessa. Se entrambi i blocchi MACD restano su MODE_MAIN, la condizione Cross confronta valori identici e non scatta mai — oppure scatta sugli arrotondamenti. Controlla l’impostazione line su tutti e due i blocchi prima di chiederti perché il numero di operazioni è zero.
Leggere un incrocio come una previsione. Il MACD è due medie di una media. Un incrocio riporta che un movimento è già in corso da qualche barra. La scelta di progetto è quanto ritardo accetti, non se accettarne.
Adattare stop e target finché la curva di equity non sembra giusta. La ricerca registrata l’ha già fatto in modo sistematico su 12 combinazioni e tre finestre, e ha riportato no_robust_edge. Se la tua messa a punto manuale batte una ricerca sistematica, sospetta della messa a punto.
Impilare filtri di momentum. La composizione qui sopra è la versione misurata di quell’istinto: 3,76 volte il drawdown per un profit factor leggermente peggiore.
Farlo girare accanto a un altro EA senza separarli. Ogni EA su uno stesso conto ha bisogno del proprio magic number, altrimenti le uscite di un EA chiudono le posizioni dell’altro.
Prossimi passi e varianti
Quando non usare il MACD. Dentro un mercato laterale due medie si incrociano di continuo e ogni incrocio è rumore — e un valore predefinito che scatta in fretta è esattamente ciò che un mercato laterale punisce. Se non sai enunciare una condizione che spenga la regola durante le fasi piatte, o ne aggiungi una oppure usi un’idea che non dipende dall’allontanarsi delle due medie.
Le varianti che vale la pena provare, in ordine di prove. Prova per prima la versione sulla linea dello zero: è un blocco più semplice e scatta molto meno spesso, e la metà più tranquilla del vicinato è dove sta ogni risultato sopra 1,0. Poi prova la stessa regola su un timeframe superiore dentro il blocco MACD, che rallenta il segnale senza toccare il grafico. Solo dopo muovi i periodi — e cambiane uno alla volta.
Poi testalo per davvero. Il pannello Measure è a livello di barra e approssimato; è un filtro, non un verdetto. Come fare un backtest su MT5 percorre un’esecuzione reale dall’inizio alla fine, compreso a quale dei due numeri di drawdown del report credere. Come creare un EA con l’RSI è la ricetta gemella con il modo di fallire opposto — la sua ricerca non ha mai vinto niente, il che la rende più facile da respingere e meno istruttiva di questa. Come creare un EA per MT5 senza programmare copre il vocabolario dei blocchi più ampio, e le guide al backtesting entrano più a fondo nel passo di walk-forward che questa pagina sostiene.
E per calibrare che aspetto ha un registro documentato, gli EA pubblicati portano ciascuno un elenco completo delle operazioni chiuse e un manifesto di esecuzione. Confrontane uno con la tabella qui sopra prima di fidarti di qualsiasi strategia, compresa una che hai costruito tu.