- 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 Trade Request (MqlTradeRequest)
L'interazione tra il terminale client ed il trade server per l'esecuzione dell'operazione di piazzamento dell'ordine viene eseguita utilizzando richieste di trade. La richiesta di trade è rappresentata dalla predefinita speciale struttura di tipo MqlTradeRequest, che contiene tutti i campi necessari per eseguire affari di trade. Il risultato della richiesta di elaborazione è rappresentato dalla struttura di tipo MqlTradeResult.
struct MqlTradeRequest
|
Descrizione campi
Campi |
Descrizione |
---|---|
action |
Tipo d'operazione di trade. Può essere uno dei valori dell'enumerazione ENUM_TRADE_REQUEST_ACTIONS. |
magic |
Expert Advisor ID. Esso permette di organizzare l'elaborazione analitica degli ordini di trade. Ogni Expert Advisor può impostare il proprio ID univoco per l'invio di una richiesta di trade. |
order |
Ticket dell' ordine. E' utilizzato per modificare ordini pendenti. |
symbol |
Simbolo dell'ordine. Non è necessario per la modifica dell'ordine ed operazioni di chiusura di posizione. |
volume |
Volume richiesto dell'ordine in lotti. Si noti che il volume reale di un affare dipenderà dal tipo d'esecuzione dell'ordine. |
price |
Prezzo, raggiunto il quale l'ordine deve essere eseguito. Ordini di mercato di simboli, il cui tipo di esecuzione è "Esecuzione a mercato" (SYMBOL_TRADE_EXECUTION_MARKET), Di TRADE_ACTION_DEAL Digitare, Non richiedono specifiche del prezzo. |
stoplimit |
Il valore del prezzo, al quale l'ordine pendente Limit sarà piazzato, quando il prezzo raggiunge il prezzo(valore) (questa condizione è obbligatoria). Fino ad allora l'ordine pendente non viene piazzato. |
sl |
Prezzo Stop Loss in caso di movimento di prezzo sfavorevole |
tp |
Prezzo Take Profit in caso di movimento di prezzo favorevole |
deviation |
La deviazione prezzo massima, specificata in punti |
type |
Tipo ordine. Può essere uno dei valori dell'enumerazione ENUM_ORDER_TYPE . |
type_filling |
Tipo d'esecuzione dell'ordine. Può essere uno dei valori dell'enumerazione ENUM_ORDER_TYPE_FILLING. |
type_time |
Tipo di scadenza dell'ordine. Può essere uno dei valori dell'enumerazione ENUM_ORDER_TYPE_TIME. |
expiration |
Oradio di espirazione dell'ordine (per ordini di tipo ORDER_TIME_SPECIFIED) |
comment |
Commento dell'ordine |
position |
Ticket di una posizione. Dovrebbe essere riempito quando una posizione viene modificata o chiusa per identificare la posizione. Di regola è uguale al ticket dell'ordine, sulla base del quale è stata aperta la posizione. |
position_by |
Ticket di una posizione opposta. Utilizzata quando una posizione viene chiusa da una contrapposta aperta per lo stesso simbolo nella direzione opposta. |
Quando si modifica o si chiude una posizione nel sistema di copertura (hedging), assicurarsi di specificare il suo ticket (MqlTradeRequest::ticket). Il ticket può anche essere specificato nel sistema di compensazione(netting), anche se una posizione è identificata dal nome del simbolo. |
Per l'invio di ordini per eseguire operazioni di trade è necessario utilizzare la funzione OrderSend(). Per ogni operazione di trade è necessario specificare i campi obbligatori; campi facoltativi possono anche essere riempiti. Ci sono sette casi possibili per inviare un ordine di trade:
Esecuzione a richiesta
Si tratta di un ordine di trade per aprire una posizione in modalità di Esecuzione della Richiesta (trade sui prezzi richiesti). Si richiede di specificare i seguenti 9 campi:
- action
- symbol
- volume
- price
- sl
- tp
- deviation
- type
- type_filling
Inoltre è possibile specificare i valori dei campi "magic" e "field".
Esecuzione immediata
Si tratta di un ordine di trade per aprire una posizione in modalità esecuzione immediata (trade ai prezzi correnti). Richiede specificazione dei seguenti 9 campi:
- action
- symbol
- volume
- price
- sl
- tp
- deviation
- type
- type_filling
Inoltre è possibile specificare i valori dei campi "magic" e "field".
Esecuzione a mercato
Si tratta di un ordine di trade per aprire una posizione in modalità di esecuzione a mercato. Si richiede di specificare i seguenti 5 campi:
- action
- symbol
- volume
- type
- type_filling
Inoltre è possibile specificare i valori dei campi "magic" e "field".
Esecuzione a cambio
Si tratta di un ordine di trade per aprire una posizione in modalità di esecuzione Exchange. Si richiede di specificare i seguenti 5 campi:
- action
- symbol
- volume
- type
- type_filling
Inoltre è possibile specificare i valori dei campi "magic" e "field".
Esempio per TRADE_ACTION_DEAL, operazione di trade per aprire una posizione Buy:
#define EXPERT_MAGIC 123456 // MagicNumber dell'expert |
Esempio di TRADE_ACTION_DEAL, operazione di trade per aprire la posizione Sell:
#define EXPERT_MAGIC 123456 // MagicNumber dell'expert |
Esempio di TRADE_ACTION_DEAL, operazione di trade per chiudere la posizione:
#define EXPERT_MAGIC 123456 // MagicNumber dell'expert |
SL & TP Modifica
Trade order per modificare i prezzi di StopLoss e/o i prezzi TakeProfit. Si richiede di specificare i seguenti 4 settori:
- action
- symbol
- sl
- tp
- position
Esempio per TRADE_ACTION_SLTP, operazione di trade per la modifica dei valori di Stop Loss e Take Profit di una posizione aperta:
#define EXPERT_MAGIC 123456 // MagicNumber dell'expert |
Ordine Pendente
Ordine di trade per piazzare un ordine pendente. Si richiede di specificare i seguenti 11 campi:
- action
- symbol
- volume
- price
- stoplimit
- sl
- tp
- type
- type_filling
- type_time
- expiration
Inoltre è possibile specificare i valori dei campi "magic" e "field".
Esempio di TRADE_ACTION_PENDING, operazione di trade per piazzare un ordine pendente:
#property description "Esempio di piazzamento dell'ordine pendente" |
Modificare Ordine Pendente
Ordine di trade per modificare i prezzi di un ordine pendente. Si richiede di specificare i seguenti 7 campi:
- action
- order
- price
- sl
- tp
- type_time
- expiration
Esempio di TRADE_ACTION_MODIFY, operazione di trade per la modifica dei livelli di prezzo di ordini pendenti:
#define EXPERT_MAGIC 123456 // MagicNumber dell'expert |
Eliminare Ordine Pendente
Ordine di trade per eliminare un ordine pendente. Richiede di specificare i 2 campi seguenti:
- action
- order
Esempio per TRADE_ACTION_REMOVE, operazione di trade per eliminare ordini pendenti:
#define EXPERT_MAGIC 123456 // MagicNumber dell'expert
|
Guarda anche