- Structure du Type Date
- Structure des Paramètres d'Entrée
- Structure des Données Historiques
- Structure DOM
- Structure de la Requête de Trading
- Structure des Résultats de la Vérification d'une Requête
- Structure des Résultat d'une Requête de Trading
- Structure d'une Transaction de Trading
- Structure des Prix Courants
- Structures du Calendrier Economique
La Structure de Demande de Trade (MqlTradeRequest)
L'interaction entre le terminal client et le serveur de trades pour l'exécution des opérations de placement des ordres est effectuée en utilisant des demandes de trade. La demande de trade est représentée par une structure prédéfinie de type MqlTradeRequest, laquelle contient tous les champs nécessaires à la réalisation des trades. Le résultat du traitement de la demande est représenté par la structure de type MqlTradeResult.
struct MqlTradeRequest
|
Description des champs
Champ |
Description |
---|---|
action |
Type d'opération de trade. Peut être l'une des valeurs de l'énumération ENUM_TRADE_REQUEST_ACTIONS. |
magic |
Identifiant de l'Expert Advisor. Il permet d'organiser le traitement d'analyse des ordres de trading. Chaque Expert Advisor peut générer son propre identifiant unique lors de l'envoi d'une demande de trade. |
ordre |
Ticket de l'ordre. Il est utilisé pour modifier les ordres en attente. |
symbol |
Symbole de l'ordre. Il n'est pas nécessaire pour les opérations de modification d'ordre et de fermeture de position. |
volume |
Volume demandé de l'ordre en lots. Notez que le volume réel d'une transaction dépendra du type d'exécution de l'ordre. |
prix |
Le prix auquel l'ordre doit être exécuté. Les ordres au marché des symboles dont le type d'exécution est "Exécution au Marché" (SYMBOL_TRADE_EXECUTION_MARKET), de type TRADE_ACTION_DEAL, ne nécessite pas de spécifier un prix. |
stoplimit |
Le prix auquel l'ordre en attente de type Limit sera placé lorsque le prix atteint la valeur prix (cette condition est obligatoire). Jusqu'à ce moment, l'ordre en attente n'est pas placé. |
sl |
Le prix du Stop Loss dans un mouvement de prix défavorable |
tp |
Le prix du Take Profit dans un mouvement de prix défavorable |
deviation |
La déviation maximale du prix, spécifiée en points |
type |
Type d'ordre. Peut être l'une des valeurs de l'énumération ENUM_ORDER_TYPE. |
type_filling |
Type d'éxécution de l'ordre. Peut être l'une des valeurs de l'énumération ENUM_ORDER_TYPE_FILLING. |
type_time |
Type d'expiration de l'ordre. Peut être l'une des valeurs de l'énumération ENUM_ORDER_TYPE_TIME. |
expiration |
L'heure d'expiration de l'ordre (pour des ordres de type ORDER_TIME_SPECIFIED) |
comment |
Commentaire de l'ordre |
position |
Ticket d'une position. Doit être rempli lorsque la position est modifiée ou fermée pour identifier la position. La règle est qu'il est égal au ticket de l'ordre ayant ouvert la position. |
position_by |
Ticket d'une position opposée. Utilisé lorsqu'une position est fermée par une position opposée d'ouverture pour le même symbole dans la direction opposée. |
Lors de la modification ou la clôture d'une position avec le système de hedging, assurez-vous de spécifier son ticket (MqlTradeRequest::position). Le ticket peut également être spécifié dans le système de netting, bien qu'une position soit identifié avec le nom du symbole. |
Lors de l'envoi d'ordres pour effectuer des opérations de trading, il est nécessaire d'utiliser la fonction OrderSend(). Pour chaque opération, il est nécessaire de spécifier des champs obligatoires, des champs optionnels peuvent également être spécifiés. Il y a sept cas possibles d'envoi d'ordre :
Exécution de la Demande
C'est un ordre de trading pour ouvrir une position dans le mode Exécution de la Demande (trade upon requested prices). Il est demandé de spécifier les 9 champs suivants :
- action
- symbol
- volume
- prix
- sl
- tp
- deviation
- type
- type_filling
Il est également possible de spécifier les valeurs des champs "magic" et "comment".
Exécution Instantanée
C'est un ordre de trading pour ouvrir une position dans le mode Exécution Instantanée (trade by current prices). Il est demandé de spécifier les 9 champs suivants :
- action
- symbol
- volume
- prix
- sl
- tp
- deviation
- type
- type_filling
Il est également possible de spécifier les valeurs des champs "magic" et "comment".
Execution au Marché
C'est un ordre de trading pour ouvrir une position dans le mode Exécution au Marché. Il est demandé de spécifier les 5 champs suivants :
- action
- symbol
- volume
- type
- type_filling
Il est également possible de spécifier les valeurs des champs "magic" et "comment".
Exécution en Bourse
C'est un ordre de trading pour ouvrir une position dans le mode Exécution en Bourse. Il est demandé de spécifier les 5 champs suivants :
- action
- symbol
- volume
- type
- type_filling
Il est également possible de spécifier les valeurs des champs "magic" et "comment".
Exemple de l'opération de trading TRADE_ACTION_DEAL pour ouvrir une position Buy :
#define EXPERT_MAGIC 123456 // MagicNumber de l' |
Exemple de l'opération de trading TRADE_ACTION_DEAL pour ouvrir une position Sell :
#define EXPERT_MAGIC 123456 // MagicNumber de l' |
Exemple de l'opération de trading TRADE_ACTION_DEAL pour fermer des positions :
#define EXPERT_MAGIC 123456 // MagicNumber de l'expert |
Modification des SL & TP
Ordre de trading pour modifier les niveaux des prix des StopLoss et/ou TakeProfit. Il est demandé de spécifier les 4 champs suivants :
- action
- symbol
- sl
- tp
- position
Exemple de l'opération de trading TRADE_ACTION_SLTP pour modifier les valeurs des Stop Loss et Take Profit d'une position ouverte :
#define EXPERT_MAGIC 123456 // MagicNumber de l' expert |
Ordre en Attente
Ordre pour placer un ordre en attente. Il est nécessaire de spécifier les 11 champs suivants :
- action
- symbol
- volume
- prix
- stoplimit
- sl
- tp
- type
- type_filling
- type_time
- expiration
Il est également possible de spécifier les valeurs des champs "magic" et "comment".
Exemple de l'opération de trading TRADE_ACTION_PENDING pour placer un ordre en attente :
#property description "Exemple de placement d'ordres en attente" |
Modifier des Ordres en Attente
Ordre pour modifier les prix d'un ordre en attente. Il est nécessaire de spécifier les 7 champs suivants :
- action
- ordre
- prix
- sl
- tp
- type_time
- expiration
Exemple de l'opération de trading TRADE_ACTION_MODIFY pour modifier les niveaux de prix d'ordres en attente :
#define EXPERT_MAGIC 123456 // MagicNumber de l'expert |
Supprimer un Ordre en Attente
Ordre pour supprimer un ordre en attente. Il est nécessaire de spécifier les 2 champs suivants :
- action
- ordre
Exemple de l'opération de trading TRADE_ACTION_REMOVE pour supprimer des ordres en attente :
#define EXPERT_MAGIC 123456 // MagicNumber de l'expert
|
Voir aussi
Structures et Classes, fonctions de Trading, Propriétés de l'Ordre