Dopo la funzione OrderSend vediamo ora la funzione OrderClose(), che ti permette di chiudere un ordine già aperto. L’ utilizzo di questa istruzione è molto più semplice in quanto prevede meno parametri. Vediamoli insieme
bool OrderClose( int ticket, double lots, double price, int slippage, color Color=CLR_NONE )
Parametri obbligatori
- ticket: è un valore di tipo int, e rappresenta il ticket identificativo dell’ ordine che vogliamo chiudere
- lots: numero double della quantità di lotti che vogliamo chiudere. Questo parametro può sembrare ad alcuni superfluo: la sua utilità sta nel fatto che una parte dei broker ti permette di chiudere solo una porzione di posizione. Se ad esempio abbiamo una posizione aperta a lotto 1, impostando il parametro lots a 0.5 sarà chiusa solo metà posizione, mentre l’ altra rimarrà aperta.
- price: è la quota di prezzo a cui vogliamo chiudere l’ ordine. Similmente a quanto accade per le altre funzioni di gestione degli ordini, il prezzo va trattato in modo diverso se stiamo parlando di ordini long o di ordini short. Tieni a mente che un long viene chiuso alla quota Bid e uno short viene chiuso invece alla quota Ask. Se non utilizzerai il valore corretto rischierai che il prezzo attuale al momento della chiusura sia troppo lontano dal prezzo che hai specificato, con un possibile fallimento della richiesta.
- slippage: valore int che specifica la tolleranza massima entro la quale l’ ordine verrà chiuso. Se ad esempio su EURUSD vogliamo chiudere la posizione a 1.5000, specificando uno slippage di 3 pips, la chiusura avverrà solo se il prezzo ( Bid o Ask, a seconda del tipo di posizione ), al momento della ricezione della richiesta da parte del server, sarà compreso tra 1.5003 e 1.4997. Lo slippage è espresso con l’ intero più piccolo presente nella valuta considerata: se usiamo quindi un conto a spread variabile, che tipicamente ha una precisione ( ad esempio su EURUSD ) di 0.00001, per ottenere la chiusura nel range precedente sarà necessiario fissare slippage=30.
Parametri facoltativi
- Color: specifica un colore per l’ eventuale freccia che verrà disegnata sul grafico al momento della chiusura. Questa pagina contiene i colori che possono essere utilizzati: per specificarne uno è sufficiente includerli tra doppi apici.
Ecco un esempio completo dell’ uso di OrderClose()
OrderClose ( 123456, 0.1, 1.5000, 30, «Green» );
Questa funzione ritorna un valore booleano TRUE se la chiusura ha successo, FALSE nel caso contrario. Per ottenere l’ errore nel caso la funzione non sia avvenuta puoi utilizzare la solita funzione GetLastError() il cui valore di ritorno ci fa sapere il motivo per il quale la chiusura non è andata a buon fine.
Nel prossimo articolo vedremo come ottenere informazioni sugli ordini aperti o pendenti per poterne disporre nei nostri programmi MQL.
© RIPRODUZIONE RISERVATA