- Propriétés de l'Historique
- Propriétés d'un Ordre
- Propriétés d'une Position
- Propriétés d'un Deal
- Types d'Opérations de Trading
- Types de Transactions de Trading
- Ordres de Trading en DOM
- Propriétés des Signaux
Propriétés des Ordres
Les demandes d'exécution des trades sont formalisées comme des ordres. Chaque ordre a une variété de propriétés pour la lecture. Les informations les concernant peuvent être obtenues en utilisant les fonctionsOrderGet...() etHistoryOrderGet...().
Pour les fonctions OrderGetInteger() et HistoryOrderGetInteger()
Identificateur |
Description |
Type |
---|---|---|
ORDER_TICKET |
Ticket de l'ordre. Numéro unique attribué à chaque ordre |
long |
ORDER_TIME_SETUP |
Heure d'installation de l'ordre |
datetime |
ORDER_TYPE |
Type d'ordre |
|
ORDER_STATE |
Etat de l'ordre |
|
ORDER_TIME_EXPIRATION |
Heure d'expiration de l'ordre |
datetime |
ORDER_TIME_DONE |
Heure d'éxécution et d'annulation de l'ordre |
datetime |
ORDER_TIME_SETUP_MSC |
L'heure de placement d'un ordre pour son exécution en millisecondes depuis le 01.01.1970 |
long |
ORDER_TIME_DONE_MSC |
Heure d'éxécution/annulation d'un ordre en millisecondes depuis le 01.01.1970 |
long |
ORDER_TYPE_FILLING |
Type de remplissage de l'ordre |
|
ORDER_TYPE_TIME |
Durée de l'ordre |
|
ORDER_MAGIC |
ID d'un Expert Advisor qui a passé l'ordre (conçu pour s'assurer que chaque Expert Advisor place son propre numéro unique) |
long |
ORDER_REASON |
La raison ou la source du placement d'un ordre |
|
ORDER_POSITION_ID |
L'identifiant de la position qui définit un ordre dés qu'il est éxécuté. Chaque ordre exécuté donne lieu à une transaction qui ouvre ou modifie une position déjà existante. L'identifiant de cette position est définit à l'ordre exécuté à ce moment. |
long |
ORDER_POSITION_BY_ID |
L'identifiant d'une position opposée utilisé pour fermer par l'ordre ORDER_TYPE_CLOSE_BY |
long |
Pour les fonctions OrderGetDouble() et HistoryOrderGetDouble()
Identificateur |
Description |
Type |
---|---|---|
ORDER_VOLUME_INITIAL |
Volume de l'ordre initial |
double |
ORDER_VOLUME_CURRENT |
Volume de l'ordre courant |
double |
ORDER_PRICE_OPEN |
Prix indiqué de l'ordre |
double |
ORDER_SL |
Valeur du Stop Loss |
double |
ORDER_TP |
Valeur du Take Profit |
double |
ORDER_PRICE_CURRENT |
Le prix actuel de l'ordre |
double |
ORDER_PRICE_STOPLIMIT |
Le prix de l'ordre Limit pour l'ordre StopLimit |
double |
Pour les fonctions OrderGetString() et HistoryOrderGetString()
Identificateur |
Description |
Type |
---|---|---|
ORDER_SYMBOL |
Symbole de l'ordre |
string |
ORDER_COMMENT |
Commentaire de l'ordre |
string |
ORDER_EXTERNAL_ID |
Identifiant de l'ordre dans un système de trading externe (sur l'Echange) |
string |
Lors de l'envoi d'une demande de trade avec la fonction OrderSend(), certaines opérations nécessite d'indiquer le type de l'ordre. Le type de l'ordre est spécifié dans le champ type de la structure spéciale MqlTradeRequest, et peut être l'une des valeurs de l'énumération ENUM_ORDER_TYPE.
Identificateur |
Description |
---|---|
ORDER_TYPE_BUY |
Ordre d'Achat au Marché |
ORDER_TYPE_SELL |
Ordre de Vente au Marché |
ORDER_TYPE_BUY_LIMIT |
Ordre en attente Buy Limit |
ORDER_TYPE_SELL_LIMIT |
Ordre en attente Sell Limit |
ORDER_TYPE_BUY_STOP |
Ordre en attente Buy Stop |
ORDER_TYPE_SELL_STOP |
Ordre en attente Sell Stop |
ORDER_TYPE_BUY_STOP_LIMIT |
Une fois le prix de l'ordre atteint, un ordre en attente Buy Limit est placé au prix StopLimit |
ORDER_TYPE_SELL_STOP_LIMIT |
Une fois le prix de l'ordre atteint, un ordre en attente Sell Limit est placé au prix StopLimit |
ORDER_TYPE_CLOSE_BY |
Ordre pour fermer une position par une position opposée |
Chaque ordre a un statut qui décrit son état. Pour obtenir une information, utilisez OrderGetInteger() ou HistoryOrderGetInteger() avec le modificateur ORDER_STATE. Les valeurs autorisées sont stockées dans l'énumération ENUM_ORDER_STATE.
Identificateur |
Description |
---|---|
ORDER_STATE_STARTED |
Ordre vérifié, mais pas encore accepté par le courtier |
ORDER_STATE_PLACED |
Ordre accepté |
ORDER_STATE_CANCELED |
Ordre annulé par le client |
ORDER_STATE_PARTIAL |
Ordre partiellement éxécuté |
ORDER_STATE_FILLED |
Ordre complètement éxécuté |
ORDER_STATE_REJECTED |
Ordre rejeté |
ORDER_STATE_EXPIRED |
Ordre expiré |
ORDER_STATE_REQUEST_ADD |
L'ordre est enregistré (placé dans le système de trading) |
ORDER_STATE_REQUEST_MODIFY |
L'ordre est modifié (modification de ses paramètres) |
ORDER_STATE_REQUEST_CANCEL |
L'ordre est annulé (annulé dans le système de trading) |
Lors de l'envoi d'un ordre pour exécution à l'heure actuelle (heure en vigueur), le prix et le volume d'achat/vente requis doivent être spécifiés. Gardez également à l'esprit que les marchés financiers ne garantissent pas que l'intégralité du volume demandé soit disponible pour un certain instrument financier au prix souhaité. Par conséquent, les opérations de trading en temps réel sont régulées en utilisant les modes d'exécution prix et volume. Les modes, ou politiques d'exécution, définissent les règles pour les cas où le prix a changé ou le volume demandé ne peut pas être entièrement satisfait pour le moment.
Le mode d'exécution des prix peut être obtenu à partir de la propriété SYMBOL_TRADE_EXEMODE du symbole, contenant la combinaison d'indicateurs de l'énumération ENUM_SYMBOL_TRADE_EXECUTION.
Mode d'exécution |
Description |
La valeur dans ENUM_SYMBOL_TRADE_EXECUTION |
---|---|---|
Mode d'exécution
(Demande de l'Exécution) |
Exécute un ordre au marché au prix précédemment reçu du courtier.
Les prix pour un ordre au marché sont demandés au courtier avant l'envoi de l'ordre. A la réception des prix, l'exécution de l'ordre au prix donné peut être soit confirmé, soit rejeté. |
SYMBOL_TRADE_EXECUTION_REQUEST |
Exécution Instantanée
(Exécution Instantanée) |
Exécution immédiate d'un ordre au marché au prix spécifié.
Lors de l'envoi de la demande d'un ordre à exécuter, la plateforme ajoute automatiquement les prix actuels à l'ordre.
|
SYMBOL_TRADE_EXECUTION_INSTANT |
Exécution au Marché
(Exécution au Marché) |
Le courtier choisit le prix d'exécution de l'ordre sans autre discussion avec le trader.
L'envoi de l'ordre dans ce mode vaut consentement préalable à son exécution à ce prix. |
SYMBOL_TRADE_EXECUTION_MARKET |
Exécution Boursière
(Exécution Boursière) |
Les opérations de trading sont exécutées aux prix des offres de marché en cours. |
SYMBOL_TRADE_EXECUTION_EXCHANGE |
La politique de remplissage du volume est spécifiée dans la propriété ORDER_TYPE_FILLING de l'ordre et ne peut contenir que des valeurs de l'énumération ENUM_ORDER_TYPE_FILLING
Politique de remplissage |
Description |
Une valeur de ENUM_ORDER_TYPE_FILLING |
---|---|---|
Rempli ou Annulé (Fill or Kill) |
Un ordre ne peut être exécuté qu'avec le volume spécifié.
Si le volume nécessaire d'un instrument financier est actuellement indisponible sur le marché, l'ordre ne sera pas exécuté.
Le volume souhaité peut être composé de plusieurs offres disponibles.
La possibilité d'utiliser des ordres FOK est déterminée sur le serveur de trading. |
ORDER_FILLING_FOK |
Immédiat ou Annulé (Immediate or Cancel) |
Un trader s'engage à exécuter une transaction avec le volume disponible maximum sur le marché dans la limite de celui indiqué dans l'ordre.
Si la demande ne peut pas être satisfaite complètement, un ordre avec le volume disponible sera exécuté et le volume restant sera annulé.
La possibilité d'utiliser les ordres IOC est déterminée sur le serveur de trading.
|
ORDER_FILLING_IOC |
Passif (Book or Cancel) |
L'ordre BoC suppose que l'ordre ne peut être placé que dans le Depth of Market et ne peut pas être exécuté immédiatement. Si l'ordre peut être exécuté immédiatement après avoir été passé, il est alors annulé.
En fait, la politique BOC garantit que le prix de l'ordre passé sera moins bon que le prix actuel. Les ordres BoC sont utilisés pour mettre en uvre le trading passif, de sorte que l'ordre n'est pas exécuté immédiatement lorsqu'il est placé et n'affecte pas la liquidité actuelle.
Seuls les ordres limit et stop limit sont supportés (ORDER_TYPE_BUY_LIMIT, ORDER_TYPE_SELL_LIMIT, ORDER_TYPE_BUY_STOP_LIMIT, ORDER_TYPE_SELL_STOP_LIMIT). |
ORDER_FILLING_BOC |
Retour |
En cas de remplissage partiel, un ordre avec un volume restant n'est pas annulé mais traité ultérieurement.
Les ordres Retour ne sont pas autorisés en mode d'Exécution au Marché (exécution au marché SYMBOL_TRADE_EXECUTION_MARKET). |
ORDER_FILLING_RETURN |
Lors de l'envoi d'une demande de trade à l'aide de la fonction OrderSend(), la politique d'exécution du volume nécessaire peut être définie dans type_filling, à savoir dans la structure spéciale MqlTradeRequest. Les valeurs de l'énumération ENUM_ORDER_TYPE_FILLING sont disponibles. Pour obtenir la valeur de la propriété dans un ordre actif/terminé spécifique, utilisez les fonctions OrderGetInteger() ou HistoryOrderGetInteger() avec le modificateur ORDER_TYPE_FILLING.
Avant d'envoyer un ordre avec l'heure d'exécution actuelle, pour le réglage correct de la valeur ORDER_TYPE_FILLING (type d'exécution du volume), vous pouvez utiliser la fonction SymbolInfoInteger() avec chaque instrument financier pour obtenir la valeur de la propriété SYMBOL_FILLING_MODE, qui montre les types d'exécution de volume autorisé pour le symbole sous la forme d'une combinaison de drapeaux. Le type de remplissage ORDER_FILLING_RETURN est activé à tout moment sauf pour le mode "Exécution au marché" (SYMBOL_TRADE_EXECUTION_MARKET).
L'utilisation des types de remplissage en fonction du mode d'exécution peut être représentée dans le tableau suivant :
Type d'Exécution\Politique de Remplissage |
Rempli ou Annulé / Fill or Kill (FOK ORDER_FILLING_FOK) |
Immédiat ou Annulé / Immediate or Cancel (IOC ORDER_FILLING_IOC) |
Retour (ORDER_FILLING_RETURN) |
---|---|---|---|
Exécution Instantanée
(SYMBOL_TRADE_EXECUTION_INSTANT) |
+ (quel que soit les paramètres du symbole) |
+ (quel que soit les paramètres du symbole) |
+ (toujours) |
Demande de l'Exécution
SYMBOL_TRADE_EXECUTION_REQUEST |
+ (quel que soit les paramètres du symbole)
|
+ (quel que soit les paramètres du symbole) |
+ (toujours) |
Exécution au Marché
SYMBOL_TRADE_EXECUTION_MARKET |
+ (défini dans les paramètres du symbole) |
+ (défini dans les paramètres du symbole) |
- (désactivé quel que soit les paramètres du symbole) |
Exécution Boursière
SYMBOL_TRADE_EXECUTION_EXCHANGE |
+ (défini dans les paramètres du symbole) |
+ (défini dans les paramètres du symbole) |
+ (toujours) |
En cas d'ordres en attente, le type de remplissage ORDER_FILLING_RETURN doit être utilisé quel que soit le type d'exécution (SYMBOL_TRADE_EXEMODE), car ces ordres ne sont pas destinés à être exécutés au moment de l'envoi. Lors de l'utilisation d'ordres en attente, le trader accepte à l'avance que, lorsque les conditions d'un accord sur cet ordre sont remplies, le courtier utilisera le type de remplissage pris en charge par la place boursière.
La période de validité de l'ordre peut être définie dans le champ type_time de la structure MqlTradeRequest lors de l'envoi d'une demande de trade en utilisant la fonction OrderSend(). L'énumération des valeurs de ENUM_ORDER_TYPE_TIME est autorisée. Pour obtenir la valeur de cette propriété, utilisez la fonction OrderGetInteger() ou HistoryOrderGetInteger() avec le modificateur ORDER_TYPE_TIME.
Identificateur |
Description |
---|---|
ORDER_TIME_GTC |
Valide jusqu'à l'annulation de l'ordre |
ORDER_TIME_DAY |
Valide pour la journée courante de trading |
ORDER_TIME_SPECIFIED |
Valide jusqu'à l'expiration spécifiée |
ORDER_TIME_SPECIFIED_DAY |
L'ordre sera effectif jusqu'à 23:59:59 du jour spécifié. Si cette heure est en dehors d'une séance de trading, l'ordre expire dans l'heure de trading le plus proche. |
La raison du placement de l'ordre est contenue dans la propriété ORDER_REASON. Un ordre peut être placé par un programme MQL5, depuis une application mobile, comme le résultat d'un StopOut, etc. Les valeurs possibles de ORDER_REASON sont décrites dans l'énumération ENUM_ORDER_REASON .
Identificateur |
Description |
---|---|
ORDER_REASON_CLIENT |
L'ordre a été placé depuis le terminal de bureau |
ORDER_REASON_MOBILE |
L'ordre a été placé depuis une application mobile |
ORDER_REASON_WEB |
L'ordre a été placé depuis une plateforme web |
ORDER_REASON_EXPERT |
L'ordre a été placé depuis un programme MQL5, c'est à dire par un Expert Advisor ou un script |
ORDER_REASON_SL |
L'ordre a été placé comme étant le résultat de l'activation d'un Stop Loss |
ORDER_REASON_TP |
L'ordre a été placé comme étant le résultat de l'activation d'un Take Profit |
ORDER_REASON_SO |
L'ordre a été placé comme étant le résultat d'un évènement Stop Out |