Ordini Pendenti: Guida Completa per MetaTrader 4

Mike 2016.03.18 01:07 12 0 0
Allegato

Gli ordini pendenti sono strumenti fondamentali nel trading, consentendo di aprire posizioni quando il prezzo raggiunge un determinato livello. In altre parole, un ordine pendente è un ordine che verrà eseguito solo se il prezzo tocca un punto specifico che abbiamo impostato. Quindi, se il prezzo colpisce un livello predefinito, automaticamente avremo una posizione aperta nel mercato.

Nel contesto di un Expert Advisor (EA), ci sono sei tipi di ordini:

  1. Tipo 0 = Compra
  2. Tipo 1 = Vendi
  3. Tipo 2 = Buylimit
  4. Tipo 3 = Selllimit
  5. Tipo 4 = Buystop
  6. Tipo 5 = Sellstop

Tra questi, quattro sono ordini pendenti che analizzeremo uno per uno, e poi passeremo subito all'azione con l'EA.

1. Buy Limit

L'ordine Buy Limit è un ordine che viene eseguito quando il prezzo scende sotto un certo livello. L'obiettivo è approfittare di un cambio di struttura del mercato.

OrderSend(Symbol(), 2, start_lot, Ask - Distanza * Point, 3, Ask - Distanza * Point - SL * Point, Ask - Distanza * Point + TP * Point, "", Magic, 0, Blue);

È importante notare che la distanza tra il prezzo attuale e il prezzo prenotato per l'ordine pendente deve essere considerata:

Ask - Distanza * Point

2. Sell Limit

Gli ordini Sell Limit vengono eseguiti quando il prezzo sale sopra un certo livello.

OrderSend(Symbol(), 3, start_lot, Bid + Distanza * Point, 3, Bid + Distanza * Point + SL * Point, Bid + Distanza * Point - TP * Point, "", Magic, 0, Red);

3. Buy Stop

Gli ordini Buy Stop vengono eseguiti quando il prezzo supera un certo livello. Anche in questo caso, la distanza è cruciale.

OrderSend(Symbol(), 4, start_lot, Ask + Distanza * Point, 3, Ask + Distanza * Point - SL * Point, Ask + Distanza * Point + TP * Point, "", Magic, 0, Blue);

4. Sell Stop

L'ordine Sell Stop è un ordine che viene eseguito quando il prezzo scende sotto un certo livello.

OrderSend(Symbol(), 5, start_lot, Bid - Distanza * Point, 3, Bid - Distanza * Point + SL * Point, Bid - Distanza * Point - TP * Point, "", Magic, 0, Red);

Come promesso, ora cercheremo di semplificare l'EA utilizzando tutti e quattro gli ordini pendenti! Prima di procedere, dobbiamo calcolare il numero degli ordini di ciascun tipo. Ecco una funzione utile per facilitare il calcolo:

int totalorder(int m) {
    int total = 0;
    for (int i = 0; i < OrdersTotal(); i++) {
        if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
        if (OrderSymbol() != Symbol() || OrderMagicNumber() != Magic || OrderType() != m) continue;
        total++;
    }
    return (total);
}

Per esempio, per un Buy Limit:

if (totalorder(OP_BUYLIMIT) == 0) { res = OrderSend(Symbol(), 2, start_lot, Ask - Distanza * Point, 3, Ask - Distanza * Point - SL * Point, Ask - Distanza * Point + TP * Point, "", Magic, 0, Blue); }

In conclusione, l'EA esegue le operazioni in base ai parametri impostati, e offre una gestione efficace degli ordini pendenti. Inoltre, ecco un'immagine che mostra come funziona l'EA:

Pending Order

Spero che queste informazioni ti siano utili! Non esitare a lasciare un commento. Buon trading e buona fortuna!

Elenco
Commento 0