MQL: come ottenere informazioni su una posizione

Marco FoxTrade

Commenta
MQL: come ottenere informazioni su una posizione

Segui Money.it su Google Aggiungici alle fonti preferite per vedere più spesso le nostre notizie nei risultati di ricerca.

Dopo aver visto l’ utilità di OrderSelect vediamo adesso le principali funzioni che ci permettono di avere informazioni su una specifica operazione ( aperta, pendente, chiusa o cancellata ). Si tratta di funzioni molto semplici, cui sarà dedicata una breve trattazione, ma che si dimostrano spesso indispensabili per il corretto funzionamento di molti EA.

int OrdersTotal(): restituisce un numero intero che quantifica le operazioni aperte o pendenti attualmente presenti sull’ account corrente. A differenza delle funzioni seguenti il suo uso non è legato a nessun ordine, e può essere quindi utilizzato indipendente alla preesistenza di OrderSelect

double OrderTakeProfit(): ritorna, in formato double, il livello di take profit della posizione selezionata

double OrderStopLoss(): ritorna un double indicante il livello di prezzo su cui è settato lo stop loss della posizione selezionata

double OrderOpenPrice(): ritorna la quota di prezzo a cui è avvenuta l’ apertura della posizione selezionata

int OrderTicket(): ritorna il ticket number della posizione selezionata

double OrderLots(): ritorna un double, e indica il lotto a cui è stata aperta la posizione selezionata

datetime OrderExpiration(): indica, in formato datetime, la data e l’ora in cui l’ ordine sarà eliminato. Questa funzione ha utilità solamente negli ordini pendenti, che sono soggetti appunto, in via opzionale, ad una data\ora di scadenza

int OrderType(): funzione molto utile, ritorna un intero e ci indica il tipo di ordine che abbiamo selezionato. I possibili valori di ritorno sono sei, e vanno da zero a cinque
0 => posizione Buy
1 => posizione Sell
2 => posizione Buy Limit
3 => posizione Buy Stop
4 => posizione Sell Limit
5 => posizione Sell Stop

datetime OrderOpenTime(): restituisce un datetime contenente la data e l’ ora dell’ apertura dell’ ordine. Se l’ ordine non è ancora stato aperto ( quindi è pendente ) restituisce zero.

datetime OrderCloseTime(): restituisce un datetime contenente la data e l’ ora della chiusura dell’ ordine. Nel caso quest’ ultimo sia aperto o pendente restituirà zero.

Ti mostro ora un esempio di come utilizzare alcune di queste funzioni. Supponiamo di avere un ordine Long da chiudere

// controllo che ci siano ordini aperti
if(OrdersTotal>0)  

 //seleziono un ordine di cui ho il ticketnumber
  Orderselect (numeroticket,SELECT_BY_TICKET);

 //controllo che l' ordine sia aperto
  if(OrderOpenTime!=0)

     //controllo che la posizione sia in Long
     if(OrderType()==0)
 
    //se l' ordine è già stato aperto, lo chiudo
     OrderClose(OrderTicket(),OrderLots(),Bid,slippage) 
 

Commenti

0

Per commentare serve un account Money.it gratuito.

Nessun commento: scrivi tu il primo.

Cerca la tua Azienda su