BACKTESTMARKET
Come Diventare un Trader Algoritmico — Lezione 3: Costruisci un EA con Crossover di Medie Mobili
Algorithmic Lessons·

Come Diventare un Trader Algoritmico — Lezione 3: Costruisci un EA con Crossover di Medie Mobili

Combina variabili, OnInit(), OnTick() e istruzioni if per programmare in MQL4 un Expert Advisor completo basato sul crossover di medie mobili, da zero. Il primo vero robot di trading della serie.

Di BacktestMarket Team
MQL4expert advisormoving average crossovermetatrader 4algorithmic tradingOnTickif statement

In questa lezione scriverai un Expert Advisor completo la cui logica è: compra quando una Media Mobile veloce incrocia al rialzo quella lenta, vendi quando la incrocia al ribasso. Si tratta di una delle strategie sistematiche classiche — abbastanza semplice da programmare in una sola sessione, ma un EA reale e funzionante che puoi mettere in backtest.


Step 1: Dichiarazione delle Variabili

La prima cosa di cui ogni EA ha bisogno è un insieme di variabili. Le variabili in MQL4 possono essere globali (dichiarate prima di OnInit(), accessibili da qualsiasi funzione) o locali (dichiarate all'interno di una funzione, utilizzabili solo al suo interno).

Per un EA con crossover, dichiara queste cinque variabili intere globalmente all'inizio del file:

Dichiarazione di variabili in MQL4 — scope globale prima di OnInit

  • openPosition — tiene traccia di una posizione attualmente aperta (1) o no (0)
  • longPosition — segnala che siamo attualmente long
  • shortPosition — segnala che siamo attualmente short
  • ticketLong — memorizza il numero del ticket per la posizione long aperta
  • ticketShort — memorizza il numero del ticket per la posizione short aperta

Termina sempre ogni riga di dichiarazione di variabile con un punto e virgola — i punti e virgola mancanti sono la causa più comune di errori di compilazione.


Step 2: La Funzione OnInit

All'interno di OnInit(), assegna i valori di default alle tre variabili di stato. Questo garantisce che l'EA parta sempre da zero ogni volta che viene agganciato a un grafico:

Funzione OnInit — inizializza le variabili a zero

Impostare openPosition, longPosition e shortPosition a 0 all'avvio fa sì che l'EA riconosca correttamente che nessuna posizione è aperta al primo caricamento.


Step 3: La Funzione OnTick

Qui vive la logica di trading. All'interno di OnTick(), dichiara prima quattro variabili locali per le Medie Mobili:

Funzione OnTick — quattro dichiarazioni di Media Mobile

Perché quattro MA? Un segnale di crossover richiede di confrontare i valori fast/slow MA della barra corrente con quelli della barra precedente. Servono entrambi i passi temporali per rilevare il momento in cui le linee si incrociano:

  • fastMACurrent — MA veloce sulla barra corrente (in formazione)
  • fastMAPrevious — MA veloce sulla barra precedente
  • slowMACurrent — MA lenta sulla barra corrente
  • slowMAPrevious — MA lenta sulla barra precedente

Step 4: Condizioni di Ingresso e Uscita con le Istruzioni if

Con i quattro valori di MA calcolati, scrivi le condizioni di ingresso usando le istruzioni if:

Expert Advisor MQL4 — logica completa con istruzioni if per il crossover di MA

La logica in parole semplici:

Ingresso long: Se nessuna posizione è aperta E la MA veloce era sotto quella lenta nell'ultima barra E la MA veloce è ora sopra quella lenta → le linee si sono appena incrociate al rialzo → chiama OrderSend() con OP_BUY, imposta longPosition = 1, openPosition = 1.

Ingresso short: Se nessuna posizione è aperta E la MA veloce era sopra quella lenta nell'ultima barra E la MA veloce è ora sotto quella lenta → le linee si sono incrociate al ribasso → chiama OrderSend() con OP_SELL, imposta shortPosition = 1, openPosition = 1.

Uscita long: Se longPosition == 1 E la MA veloce è tornata sotto quella lenta → chiudi l'ordine long usando OrderClose() con il ticketLong memorizzato, reimposta le variabili di stato a 0.

Uscita short: Se shortPosition == 1 E la MA veloce è tornata sopra quella lenta → chiudi l'ordine short usando ticketShort, reimposta lo stato.


Conclusioni

Hai ora costruito un Expert Advisor completo da zero. Dichiara variabili globali, le inizializza in OnInit(), legge le Medie Mobili ad ogni tick in OnTick(), e usa le istruzioni if per entrare e uscire dalle operazioni sui segnali di crossover.

Il passo successivo è il backtesting — carica i dati storici di uno strumento ed esegui questo EA attraverso lo Strategy Tester di MetaTrader per vedere come si sarebbe comportato. Leggi la guida Come fare il Backtest di un Expert Advisor in MetaTrader 4 per iniziare.

La serie di programmazione MQL4 continua con un video corso approfondito su variabili, array, operatori e molto altro — vedi Impara la Programmazione MQL4.

Newsletter

Rimani aggiornato

Nuovi dataset, Expert Advisor, sconti e approfondimenti di trading — direttamente nella tua casella di posta.

Carrello

Il carrello è vuoto

Aggiungi prodotti per iniziare.