Tipi di Transazioni di Trade

Quando si eseguono alcune azioni precise su un trade account, il suo stato cambia. Tali azioni comprendono:

  • Inviare una richiesta di trade da qualsiasi applicazione MQL5 nel terminale client utilizzando le funzioni OrderSend e OrderSendAsync e la sua ulteriore esecuzione;
  • Inviare una richiesta di trade tramite l'interfaccia grafica del terminale e la sua esecuzione ulteriore;
  • Attivazione di ordini pendenti ed ordini di stop sul server;
  • Esecuzione di operazioni sul lato trade server.

Le operazioni commerciali di seguito vengono eseguite come risultato di queste azioni:

  • gestione di una richiesta di trade;
  • cambio di ordini aperti;
  • cambio della cronistoria degli ordini;
  • cambio della cronistoria degli affari;
  • cambio delle posizioni.

Per esempio, quando si invia un ordine di acquisto di mercato, esso viene gestito, un ordine di acquisto appropriata viene creato per l'account, l'ordine quindi viene eseguito e rimosso dalla lista di quelli aperti, e poi viene aggiunto alla cronistoria ordini, un appropriato aff viene aggiunto alla cronistoria ed una nuova posizione viene creata. Tutte queste azioni sono transazioni di trade.

Per lasciare che un programmatore possa monitorare le azioni eseguite in relazione a un account di trade, viene fornita la funzione OnTradeTransaction . Questo handler permette di ottenere transazioni di trade applicate ad un account in applicazioni MQL5. La descrizione della transazione di trade è presentata nel primo parametro di OnTradeTransaction utilizzando la struttura MqlTradeTransaction.

Il tipo di transazione di trade viene immesso nel parametro tipo della struttura MqlTradeTransaction. Possibili tipi di transazioni di trade vengono descritte dall'enumerazione seguente:

ENUM_TRADE_TRANSACTION_TYPE

Identificatore

Descrizione

TRADE_TRANSACTION_ORDER_ADD

L'aggiunta di un nuovo ordine aperto.

TRADE_TRANSACTION_ORDER_UPDATE

Aggiornamento di un ordine aperto. Gli aggiornamenti includono non solo le evidenti modifiche dal terminale client o dal lato trade server, ma anche cambiamenti dello stato di un ordine quando lo si imposta (ad esempio, passaggio da ORDER_STATE_STARTED a ORDER_STATE_PLACED o da ORDER_STATE_PLACED a ORDER_STATE_PARTIAL, ecc).

TRADE_TRANSACTION_ORDER_DELETE

La rimozione di un ordine dalla lista di quelli aperti. Un ordine può essere eliminato da quelli aperti a seguito dell' impostazione di un' appropriata richiesta o esecuzione (riempimento) e spostandosi nella cronistoria.

TRADE_TRANSACTION_DEAL_ADD

Aggiunta di un affare per la cronistoria. L'azione viene eseguita come risultato di un' esecuzione di ordine o l'esecuzione di operazioni su un saldo del conto.

TRADE_TRANSACTION_DEAL_UPDATE

Aggiornamento di un affare nella cronistoria. Ci possono essere casi in cui un accordo applicato in precedenza viene modificato su un server. Per esempio, un accordo è stato cambiato in un sistema commerciale esterno (scambio) in cui era precedentemente trasferito da un broker.

TRADE_TRANSACTION_DEAL_DELETE

Eliminazione di un affare dalla cronistoria. Ci possono essere casi in cui un accordo precedentemente eseguito viene eliminato da un server. Per esempio, un accordo è stato eliminato in un sistema di trade esterno (scambio) in cui era precedentemente trasferito da un broker.

TRADE_TRANSACTION_HISTORY_ADD

Aggiunta di un ordine allo storico come risultato di esecuzione o cancellazione.

TRADE_TRANSACTION_HISTORY_UPDATE

Modifica un ordine situato nella storia ordini. Questo tipo viene fornito per migliorare la funzionalità sul lato trade server.

TRADE_TRANSACTION_HISTORY_DELETE

Deleting an order from the orders history. Questo tipo viene fornito per migliorare la funzionalità sul lato trade server.

TRADE_TRANSACTION_POSITION

Modifica di una posizione non correlata ad un'esecuzione di affare. Questo tipo di transazione mostra che una posizione è stata modificata dal lato trade server. Volume della posizione, prezzo di apertura, Stop Loss e Take Profit possono essere modificati. I dati sulle modifiche vengono inviati nella struttura MqlTradeTransaction tramite l'handler OnTradeTransaction. La modifica della posizione (aggiunta, modifica o chiusura), come risultato dell'esecuzione di un affare, non porta al verificarsi della transazione TRADE_TRANSACTION_POSITION.

TRADE_TRANSACTION_REQUEST

La notifica del fatto che una richiesta di trade sia stata elaborata dal server e ed il risultato dell'elaborazione sia stato ricevuto. Solo il campo tipo (tipo di transazione di trade) deve essere analizzato per tali operazioni nella struttura MqlTradeTransaction. Il secondo e terzo parametro di OnTradeTransaction (richiesta e risultato) devono essere analizzati per ulteriori dati.

A seconda del tipo di transazione di trade, vari parametri vengono riempiti nella struttura MqlTradeTransaction descrivendola. Una descrizione dettagliata dei dati presentati è mostrata in "Struttura di una transazione di Trade".

Vedi anche

Strutture di una Transazione di Trade, OnTradeTransaction