- Struttura del Tipo Data
- Struttura dei parametri di Input
- Struttura Dati dello Storico
- Struttura del Depth of Market
- Struttura Richiesta di Trade
- Struttura di Risultati di Richiesta Controllo
- Struttura di un Risultato di Richiesta di Trade
- Struttura di una Transazione di Trade
- Struttura per i Prezzi Correnti
- Economic Сalendar structures
La struttura di un risultato di Richiesta di Trade (MqlTradeResult)
Come risultato di una richiesta di trade, un trade server restituisce i dati relativi al risultato dell'elaborazione della richiesta di trade come una speciale struttura predefinita di tipo MqlTradeResult.
struct MqlTradeResult
|
Descrizione dei Campi
Campo |
Descrizione |
---|---|
retcode |
Il codice di ritorno del trade server |
deal |
Ticket Affare, se un affare è stata eseguito. E' disponibile per un'operazione di trade di tipo TRADE_ACTION_DEAL |
ordine |
Ticket Ordine, se il ticket è stato piazzato. E' disponibile per un'operazione di trade di tipo TRADE_ACTION_PENDING |
volume |
Volume Deal, confermato dal broker. Dipende dal tipo di riempimento dell'ordine |
price |
Prezzo Deal, confermato dal broker. Dipende dal campo deviazione della richiesta di trade e/o sull'operazione di trade |
bid |
L'attuale prezzo di mercato Bid (prezzo riquotazione) |
ask |
Il corrente prezzo Ask di mercato (prezzo riquotazione) |
riga |
Il commento del broker all'operazione (per impostazione predefinita è riempito dalla descrizione Il codice di ritorno del trade server) |
request_id |
ID richiesta impostato dal terminale per l'invio trade server |
Il risultato dell'operazione di trade viene restituito ad una variabile di tipo MqlTradeResult, che viene passata come secondo parametro ad OrderSend() per effettuare operazioni di trade.
Il terminale fissa la richiesta ID nel campo request_id quando si invia al trade server usando le funzioni OrdersSend() e OrderSendAsync(). Il terminale riceve i messaggi sulle operazioni effettuate dal trade server e li sottopone per l'elaborazione della funzione OnTradeTransaction() contenente i seguenti componenti come parametri:
- descrizione dell'operazione di trade nella struttura MqlTradeTransaction;
- descrizione della richiesta di trade inviata dalla funzione OrderSend() o OrdersSendAsync(). L' ID richiesta viene inviato dal terminale al trade server, mentre la stessa richiesta e la sua request_id sono memorizzate nella memoria del terminale;
- il risultato della richiesta di esecuzione come nella struttura MqlTradeResult con il campo request_id contenente l'ID della richiesta.
La funzione OnTradeTransaction() riceve tre parametri di input, ma gli ultimi due devono essere analizzati solo per le operazioni aventi tipo TRADE_TRANSACTION_REQUEST. In tutti gli altri casi, i dati sulla richiesta di trade ed il suo risultato dell'esecuzione non vengono riempiti. Esempio di analisi dei parametri può essere trovato nella Struttura di una Richiesta di Trade.
L'impostazione di request_id dal terminale per la richiesta di trade, quando si al trade server è principalmente introdotta per lavorare con la funzione asincrona OrderSendAsync(). Questo identificatore consente di associare l'azione eseguita (chiamate di funzioni OrderSend o OrderSendAsync) con il risultato di questa azione inviato ad OnTradeTransaction().
Esempio:
//+--------------------------------------------------------------------------------+
|