MQL: la funzione OrderSelect

Potrebbero interessarti anche:

Come creare un expert advisor basato sulle medie mobili

Come creare un expert advisor basato sulle medie mobili

Le medie mobili sono uno strumento che si presta ad essere utilizzato in molte strategie di trading. In questo articolo (...) CONTINUA A LEGGERE...

MQL: la funzione OrderSelect

MQL: la funzione OrderSelect

Durante lo sviluppo di un EA ti capiterà spesso di dover analizzare le posizioni aperte, chiuse o pendenti. Nel (...) CONTINUA A LEGGERE...

MQL: la funzione OrderSelect

Pubblicato il 28 05 2011 alle 13:38 da Marco FoxTrade

Condividi:

MQL: la funzione OrderSelect

Durante lo sviluppo di un EA ti capiterà spesso di dover analizzare le posizioni aperte, chiuse o pendenti. Nel linguaggio MQL, per ottenere informazioni su una posizione, è necessario innanzitutto selezionarla Selezione ordine => Richiesta dati su questo ordine

La funzione OrderSelect ti consente di selezionare uno specifico ordine e di andarne a vedere ogni singolo aspetto grazie ad una moltitudine di funzioni accessorie. La sintassi di OrderSelect è semplice, ma necessita di un po d’ attenzione nella sua analisi

bool OrderSelect ( int index, int select, int pool=MODE_TRADES )

I parametri sono i seguenti

- index è un valore intero, il cui significato sarà visto poco sotto

- select è un valore intero, ma solitamente, anche per una questione di chiarezza del codice, viene utilizato scrivendo una delle seguenti stringhe a) SELECT_BY_POS: si indica alla funzione che il numero index fa riferimento alla posizione del trade nel gruppo selezionato b) SELECT_BY_TICKET: si indica alla funzione che index è un numero di ticket

- pool è un parametro opzionale, ed è un valore intero o stringa che va ad indicare alla funzione il gruppo da cui pescare l’ ordine. Il gruppo può essere a) MODE_TRADES: l’ ordine verrà selezionato nel gruppo degli ordini aperti o pendenti. Questo valore è impostato di default, quindi la funzione, in caso di omissione, farà riferimento agli ordini aperti b) MODE_HISTORY: l’ ordine verrà selezionato nel gruppo degli ordini chiusi o cancellati

Teoria a parte, una trattazione pratica è sicuramente più esplicativa. Supponiamo di avere tre ordini aperti e di voler selezionare il primo OrderSelect(0,SELECT_BY_POS);

volendo invece selezionare il primo ordine nello storico avremmo scritto OrderSelect(0,SELECT_BY_POS,MODE_HISTORY);

Nei casi sopra citati utilizziamo due gruppi differenti, rispettivamente il gruppo degli ordini aperti/pendenti e il gruppo degli ordini chiusi/cancellati. Diverso è il caso di SELECT_BY_TICKET. Utilizzando la selezione tramite ticket, che è l’ identificativo unico di ogni ordine, non abbiamo bisogno di selezionare alcun gruppo. Infatti il server è in grado di riconoscere l’ ordine che desideriamo proprio attraverso il ticket number

OrderSelect(1234567,SELECT_BY_TICKET);

In questo caso abbiamo selezionato l’ ordine 1234567. Ti ricordo che il numero di ticket di ogni posizione che apriamo ( diretta o pendente che sia ) ci viene passato dal valore di ritorno della funzione OrderSend La funzione OrderSelect ritorna un valore di tipo booleano: True se l’ ordine viene effettivamente selezionato, False se l’ ordine non è stato trovato. Nel prossimo articolo tratterò in modo completo le principali funzioni di richiesta dati sui singoli ordini; la lista completa di tali funzioni è presente sul sito ufficiale MQL.

Vuoi ricevere gli aggiornamenti di Forexinfo.it via Email?

Riceverai nella tua casella una rassegna quotidiana dei migliori articoli.

Condividi Questo Articolo:

TAGS

DISCLAIMER: il trading sul mercato valutario è un'attività con un alto rischio di minusvalenze e non adatta a tutti i profili di investitore. Leggi il Disclaimer completo.