BACKTESTMARKET
Come Diventare un Trader Algoritmico — Lezione 2: le Funzioni iMA() e OrderSend()
Algorithmic Lessons·

Come Diventare un Trader Algoritmico — Lezione 2: le Funzioni iMA() e OrderSend()

Impara le due funzioni MQL4 al cuore di quasi ogni Expert Advisor: iMA() per leggere il valore di una Media Mobile e OrderSend() per aprire un'operazione. Ogni parametro spiegato nel dettaglio.

Di BacktestMarket Team
MQL4iMAOrderSendexpert advisormetatrader 4algorithmic tradingmoving average

L'obiettivo di questa serie di lezioni è fornirti gli strumenti pratici per iniziare a programmare un Expert Advisor. In questa lezione imparerai le due funzioni che userai in quasi ogni EA: come leggere un indicatore tecnico e come aprire un'operazione.


L'Indicatore Tecnico più Semplice: la Media Mobile

L'indicatore più semplice con cui iniziare è la Media Mobile. Basta una sola riga di MQL4 per calcolarla:

double iMA(Symbol(), PERIOD_CURRENT, 20, 0, MODE_EMA, PRICE_OPEN, 0);

La parola chiave double prima di iMA() dichiara che il risultato è un numero in virgola mobile (un prezzo con decimali). Ogni parametro all'interno delle parentesi controlla un aspetto diverso del calcolo:

ParametroValore nell'esempioSignificato
1° — SimboloSymbol()Lo strumento su cui effettuare il calcolo. NULL o Symbol() = simbolo del grafico corrente
2° — TimeframePERIOD_CURRENTIl timeframe. Può essere PERIOD_M1, PERIOD_H1, PERIOD_D1, ecc.
3° — Periodo20Numero di candele usate per calcolare la media
4° — MA shift0Scorrimento orizzontale della linea dell'indicatore (di solito 0)
5° — MetodoMODE_EMAMetodo di calcolo: MODE_SMA, MODE_EMA, MODE_SMMA o MODE_LWMA
6° — Prezzo applicatoPRICE_OPENQuale prezzo mediare: PRICE_CLOSE, PRICE_OPEN, PRICE_HIGH, PRICE_LOW, PRICE_MEDIAN, PRICE_TYPICAL, PRICE_WEIGHTED
7° — Shift0Quante barre indietro leggere (0 = barra corrente, 1 = barra precedente)

La Funzione OrderSend

Una volta che hai un indicatore che ti dice quando agire, hai bisogno di una funzione per aprire l'operazione:

int OrderSend(Symbol(), OP_BUY, 0.01, Ask, 50, 0, 0, "My order", 100, 0, clrGreen);

Questa funzione invia un ordine a mercato o pendente al broker. Ecco cosa fa ogni parametro:

ParametroValore nell'esempioSignificato
1° — SimboloSymbol()Strumento su cui operare
2° — OperazioneOP_BUYTipo di ordine: OP_BUY, OP_SELL, OP_BUYLIMIT, OP_SELLLIMIT, OP_BUYSTOP, OP_SELLSTOP
3° — Lotti0.01Dimensione della posizione in lotti. Più piccola = meno capitale a rischio
4° — PrezzoAskPrezzo di ingresso. Usa Ask per gli acquisti, Bid per le vendite
5° — Slippage50Slippage massimo accettabile in punti. L'ordine viene eseguito solo se il prezzo effettivo è entro questo range rispetto al prezzo richiesto
6° — Stop loss0Livello di stop loss (0 = nessuno)
7° — Take profit0Livello di take profit (0 = nessuno)
8° — Commento"My order"Etichetta testuale visibile nel terminale e nel report del backtest
9° — Magic number100Identificatore univoco per gli ordini di questo EA. Fondamentale per il recupero dopo un riavvio della piattaforma — l'EA usa il magic number per riconoscere quali posizioni aperte gli appartengono
10° — Scadenza0Tempo di scadenza per gli ordini pendenti. Non utilizzato per gli ordini a mercato
11° — Colore frecciaclrGreenColore della freccia di ingresso disegnata sul grafico. Usa CLR_NONE per nasconderla (utile in produzione; tienila visibile durante il backtesting)

Mettere Tutto Insieme

Ora hai i due elementi fondamentali di cui ogni EA ha bisogno:

  1. iMA() — legge il valore di un indicatore tecnico su qualsiasi barra e timeframe
  2. OrderSend() — apre un ordine a mercato o pendente con pieno controllo su dimensione, prezzo e parametri di rischio

Nella Lezione 3, combinerai queste due funzioni con variabili e istruzioni if per costruire da zero un Expert Advisor completo basato sul crossover di medie mobili.

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.