BACKTESTMARKET
Come Diventare un Trader Algoritmico — Lezione 1: La Struttura di un Expert Advisor
Algorithmic Lessons·

Come Diventare un Trader Algoritmico — Lezione 1: La Struttura di un Expert Advisor

Ogni Expert Advisor è costruito su tre event handler: OnInit(), OnDeinit() e OnTick(). Questa lezione spiega cosa fa ciascuno, quando viene attivato e quale codice appartiene a ciascuna sezione.

Di BacktestMarket Team
expert advisorMQL4OnInitOnTickOnDeinitmetatrader 4algorithmic trading

Cos'è un Expert Advisor?

Quando un trader algoritmico si avvicina per la prima volta all'implementazione di un Expert Advisor per MetaTrader, la cosa più importante da capire — prima di qualsiasi sintassi o funzione di codice — è la struttura operativa di base. Un Expert Advisor, chiamato anche Trading Robot, è un programma software che gira 24/7 all'interno di una piattaforma di trading e monitora costantemente le condizioni del mercato.

Questo programma, scritto in MQL4, permette ai trader di automatizzare molte operazioni: leggere i prezzi in tempo reale, aprire e chiudere posizioni, leggere i valori degli indicatori, eseguire calcoli e molto altro.

Per scrivere un Expert Advisor devi prima aprire MetaEditor. All'interno di MetaTrader 4, clicca il pulsante MetaQuotes Language Editor nella barra degli strumenti — ha l'aspetto di un'icona gialla a forma di blocco note:

Pulsante MetaQuotes Language Editor in MT4

Una volta dentro MetaEditor, clicca File → Nuovo per creare un nuovo file:

Nuovo Expert Advisor nel menu file di MetaEditor

Seleziona Expert Advisor dall'elenco:

Seleziona il tipo di template Expert Advisor

Dai un nome al tuo Expert Advisor — ad esempio, My_First_EA:

Denominazione dell'Expert Advisor in MetaEditor

Clicca Avanti attraverso i passaggi rimanenti e poi Fine. MetaEditor aprirà il framework di base del tuo nuovo Expert Advisor.


La Struttura di un Expert Advisor

Lo scheletro generato si presenta così:

Esempio di scheletro MQL4 di un Expert Advisor con OnInit, OnDeinit, OnTick

Questa è la fondamenta di ogni Expert Advisor che scriverai. Alcune cose da notare:

  • Commenti // — Le righe che iniziano con // sono note per il programmatore. MetaTrader non le esegue. Usa i commenti per documentare le tue intenzioni.
  • Direttive #property — Le righe che iniziano con # sono metadati utilizzati da MetaTrader: il titolare del copyright, il sito web e il numero di versione. Sostituisci i dati MetaQuotes predefiniti con i tuoi.

Il codice non si esegue semplicemente "dall'inizio alla fine una volta sola". In pratica viene eseguito ad ogni tick — ogni volta che il prezzo si sposta di qualsiasi importo, l'EA rielabora la sua logica. Questo modello event-driven è costruito attorno a tre sezioni fondamentali.


I Tre Event Handler

L'Expert Advisor è diviso in tre sezioni principali, ciascuna corrispondente a un evento di MetaTrader:

OnInit()

void OnInit() { ... }

Questo evento si attiva una volta quando l'Expert Advisor viene collegato a un grafico. Usalo per inizializzare le variabili, validare i parametri di input ed eseguire qualsiasi configurazione che deve avvenire solo all'avvio — ad esempio, leggere lo spread corrente del broker o calcolare il numero di decimali del prezzo del simbolo.

OnDeinit()

void OnDeinit(const int reason) { ... }

Questo evento si attiva una volta quando l'Expert Advisor viene rimosso da un grafico — sia manualmente dal trader, sia quando la piattaforma si chiude. Usalo per operazioni di pulizia: chiudere gli ordini pendenti lasciati aperti dall'EA, liberare memoria o scrivere un'ultima voce nel log. Il parametro reason indica il motivo della rimozione dell'EA (rimozione manuale, grafico chiuso, account cambiato, ecc.).

OnTick()

void OnTick() { ... }

Questo è il cuore dell'Expert Advisor. Si attiva ad ogni tick di prezzo — ogni volta che il prezzo bid o ask cambia. Tutta la tua logica di trading va qui: leggere i valori degli indicatori, valutare le condizioni di entrata e uscita, e chiamare OrderSend() quando scatta un segnale.

Il codice che scrivi tra le parentesi graffe { e } di ciascuna sezione è ciò che la macchina eseguirà all'evento corrispondente. L'istruzione return(INIT_SUCCEEDED) alla fine di OnInit() comunica a MetaTrader che l'inizializzazione è avvenuta con successo.


Conclusioni

Le funzioni OnInit(), OnDeinit() e OnTick() sono lo scheletro di ogni Expert Advisor. Capire quando ciascuna viene attivata — e che tipo di logica appartiene a ciascuna — è il punto di partenza essenziale per tutti i trader algoritmici.

Nella Lezione 2, imparerai le due funzioni MQL4 che userai in quasi ogni EA: iMA() per leggere il valore di un indicatore di media mobile, e OrderSend() per eseguire un'operazione.

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.