Proprietà Ordini

Le richieste per eseguire le operazioni di trade vengono formalizzate come ordini. Ogni ordine ha una serie di proprietà per la lettura. Le informazioni su di essi possono essere ottenute utilizzando le funzioni OrderGet...() e HistoryOrderGet...().

Per le funzioni OrderGetInteger() ed HistoryOrderGetInteger()

ENUM_ORDER_PROPERTY_INTEGER

Identificatore

Descrizione

Tipo

ORDER_TICKET

Ticket Ordine. Numero unico assegnato ad ogni ordine

long

ORDER_TIME_SETUP

Setup dell'orario dell' Ordine

datetime

ORDER_TYPE

Tipo di ordine

ENUM_ORDER_TYPE

ORDER_STATE

Stato dell'ordine

ENUM_ORDER_STATE

ORDER_TIME_EXPIRATION

Orario di espirazione dell'ordine

datetime

ORDER_TIME_DONE

Orario di esecuzione o eliminazione dell' Ordine

datetime

ORDER_TIME_SETUP_MSC

L'orario di piazzamento dell'esecuzione di un ordine in millisecondi dal 01.01.1970

long

ORDER_TIME_DONE_MSC

Orario di esecuzione/eliminazione di ordini in millisecondi dal 01.01.1970

long

ORDER_TYPE_FILLING

Tipo di riempimento dell'ordine

ENUM_ORDER_TYPE_FILLING

ORDER_TYPE_TIME

Durata dell'ordine

ENUM_ORDER_TYPE_TIME

ORDER_MAGIC

ID di un Expert Advisor che ha piazzato l'ordine (progettato per garantire che ogni Expert Advisor collochi il proprio numero unico)

long

ORDER_REASON

La ragione o la fonte per l'invio di un ordine

ENUM_ORDER_REASON

ORDER_POSITION_ID

Identificatore Posizione che è impostato in un ordine non appena viene eseguito. Ogni ordine eseguito risulta in un affare che apre o modifica una posizione già esistente. L'identificatore di esattamente questa posizione viene impostato ad ordine eseguito, in questo momento.

long

ORDER_POSITION_BY_ID

Identificatore di una posizione opposta utilizzata per la chiusura da ORDER_TYPE_CLOSE_BY

long

Per le funzioni OrderGetDouble() e HistoryOrderGetDouble()

ENUM_ORDER_PROPERTY_DOUBLE

Identificatore

Descrizione

Tipo

ORDER_VOLUME_INITIAL

Volume iniziale dell'ordine

double

ORDER_VOLUME_CURRENT

Volume corrente dell'ordine

double

ORDER_PRICE_OPEN

Prezzo specificato nell'ordine

double

ORDER_SL

Valore Stop Loss

double

ORDER_TP

Valore Take Profit

double

ORDER_PRICE_CURRENT

Il prezzo attuale del simbolo dell'ordine

double

ORDER_PRICE_STOPLIMIT

Il prezzo Limit dell' ordine per l'ordine StopLimit

double

Per le funzioni OrderGetString() e HistoryOrderGetString()

ENUM_ORDER_PROPERTY_STRING

Identificatore

Descrizione

Tipo

ORDER_SYMBOL

Smbolo dell'ordine

string

ORDER_COMMENT

Commento all'ordine

string

 

Quando si invia una richiesta di trade usando la funzione OrderSend(), alcune operazioni richiedono l'indicazione del tipo di ordine. Il tipo di ordine viene specificato nel campo tipo della struttura speciale MqlTradeRequest, e può accettare valori dell'enumerazione ENUM_ORDER_TYPE.

ENUM_ORDER_TYPE

Identificatore

Descrizione

ORDER_TYPE_BUY

Ordine di mercato Buy

ORDER_TYPE_SELL

Ordine di mercato Sell

ORDER_TYPE_BUY_LIMIT

Ordine pendente Buy Limit

ORDER_TYPE_SELL_LIMIT

Ordine pendente Sell Limit

ORDER_TYPE_BUY_STOP

Ordine pendente Buy Stop

ORDER_TYPE_SELL_STOP

Ordine pendente Sell Stop

ORDER_TYPE_BUY_STOP_LIMIT

Dopo aver raggiunto il prezzo dell' ordine, un ordine pentende Buy Limit viene piazzato al prezzo StopLimit

ORDER_TYPE_SELL_STOP_LIMIT

Dopo aver raggiunto il prezzo dell'ordine, un ordine pendente Sell Limit viene piazzato al prezzo StopLimit

ORDER_TYPE_CLOSE_BY

Order to close a position by an opposite one

 

Ogni ordine ha uno status che descrive il suo stato. Per ottenere informazioni, utilizzare OrderGetInteger() oppure HistoryOrderGetInteger() con il modificatore ORDER_STATE. I valori consentiti vengono memorizzati nell' enumerazione ENUM_ORDER_STATE.

ENUM_ORDER_STATE

Identificatore

Descrizione

ORDER_STATE_STARTED

Ordine controllato, ma non ancora accettato dal broker

ORDER_STATE_PLACED

Ordine accettato

ORDER_STATE_CANCELED

Ordine annullato dal client

ORDER_STATE_PARTIAL

Ordine parzialmente eseguito

ORDER_STATE_FILLED

Ordine pienamente eseguito

ORDER_STATE_REJECTED

Ordine rigettato

ORDER_STATE_EXPIRED

Ordine espirato

ORDER_STATE_REQUEST_ADD

L' ordine è stato registrato (piazzato al trading system)

ORDER_STATE_REQUEST_MODIFY

L'ordine è stato modificato (cambio dei suoi parametri)

ORDER_STATE_REQUEST_CANCEL

L'ordine è stato eliminato (eliminato dal trading system)

 

Quando si invia una richiesta di trade con la funzione OrderSend(), la policy di filling può essere impostata per un ordine nel campo type_filling della struttura speciale MqlTradeRequest. Sono consentiti valori dell'enumerazione ENUM_ORDER_TYPE_FILLING. Per ottenere il valore di questa proprietà, utilizzare la funzione OrderGetInteger() o HistoryOrderGetInteger() con il modificatore ORDER_TYPE_FILLING.

ENUM_ORDER_TYPE_FILLING

Identificatore

Descrizione

ORDER_FILLING_FOK

Questa politica di filling significa che un ordine può essere riempito solo nella quantità specificata. Se la quantità necessaria di uno strumento finanziario non è attualmente disponibile sul mercato, l'ordine non verrà eseguito. Il volume richiesto può essere riempito con diverse offerte disponibili sul mercato al momento.

ORDER_FILLING_IOC

Questa modalità significa che un trader si impegna ad eseguire un affare con il volume massimamente disponibile sul mercato entro quello indicata nell'ordine. Nel caso in cui il l'intero volume di un ordine non può essere riempito, verrà riempito il volume disponibile di esso, e il restante volume verrà annullato.

ORDER_FILLING_RETURN

Questa policy viene utilizzata solo per ordini di mercato (ORDER_TYPE_BUY e ORDER_TYPE_SELL), ordini limit e stop limit (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT e ORDER_TYPE_SELL_STOP_LIMIT) e solo per i simboli con esecuzione Market o Exchange. In caso il riempimento di un ordine a mercato o ordine limit con volume rimanente parziale non venga annullato, ma ulteriormente elaborato.

Per l'attivazione degli ordini ORDER_TYPE_BUY_STOP_LIMIT e ORDER_TYPE_SELL_STOP_LIMIT, viene creato un corrispondente limit order ORDER_TYPE_BUY_LIMIT/ORDER_TYPE_SELL_LIMIT con l'esecuzione ORDER_FILLING_RETURN.

 

Il periodo di validità dell'ordine può essere impostato nel campo type_time della speciale struttura MqlTradeRequest durante l'invio di una richiesta di trade con la funzione OrderSend(). I valori dell'enumerazione ENUM_ORDER_TYPE_TIME sono ammessi. Per ottenere il valore di questa proprietà utilizzare la funzione OrderGetInteger() oppure HistoryOrderGetInteger() con il modificatore ORDER_TYPE_TIME.

ENUM_ORDER_TYPE_TIME

Identificatore

Descrizione

ORDER_TIME_GTC

Buona fino a cancellazione ordine

ORDER_TIME_DAY

Buono sino al corrente ordine d giorno di trade

ORDER_TIME_SPECIFIED

Buona fino ad espirazione ordine

ORDER_TIME_SPECIFIED_DAY

L'ordine sarà efficace fino a 23:59:59 del giorno specificato. Se questo orario è al di fuori di una sessione di trading, l'ordine scade nel più vicino orario di trading.

 

La ragione per l'immissione dell'ordine è contenuta nella proprietà ORDER_REASON. Un ordine può essere posizionato da un programma MQL5, da un'applicazione mobile, a seguito di StopOut, ecc. I valori possibili di ORDER_REASON sono descritti nell'enumerazione ENUM_ORDER_REASON.

ENUM_ORDER_REASON

Identificatore

Descrizione

ORDER_REASON_CLIENT

L'ordine è stato piazzato da un terminale desktop

ORDER_REASON_MOBILE

L'ordine è stato piazzato da un'applicazione mobile

ORDER_REASON_WEB

L'ordine è stato piazzato da una piattaforma web

ORDER_REASON_EXPERT

L'ordine è stato piazzato da un programma MQL5, cioè da un Expert Advisor o da uno script

ORDER_REASON_SL

L'ordine è stato piazzato in seguito all'attivazione dello Stop Loss

ORDER_REASON_TP

L'ordine è stato piazzato in seguito all'attivazione del Take Profit

ORDER_REASON_SO

L'ordine è stato piazzato in seguito all'attivazione dell'evento Stop Out