Créer et Utiliser des Programmes MQL4

 

Les applications écrites en MQL4 (Expert Advisor, Indicateurs et Scripts) sont créés en utilisant le MetaEditor.

Le fichier exécutable du MetaEditor (MetaEditor.exe) est procuré en tant que partie du terminal client et est situé dans la racine du répertoire du terminal. Le guide utilisateur du MetaEditor est ouvert en appuyant sur la touche F1. Il contiens l’information générale nécessaire à la création de nouveaux programmes. L’éditeur peut être ouvert en cliquant sur le nom du fichier MetaEditor.exe ou sur le raccourci présent sur le bureau.

Structure du Terminal Client

Par soucis de convenance, le MetaEditor a des outils intégrés comme le “Navigateur” (Ctrl+D) et la “Boite à Outils” (Ctrl+T).

 

Fig. 25. Localisation des fenêtres dans le MetaEditor.
 

Le code du programme est situé dans la fenêtre de l’éditeur et les fenêtre “boîte à outils” sont auxiliaires. La fenêtre du navigateur et de la boite à outils ont des frontières qui peuvent être déplacées et peuvent également être montées/cachées en utilisant les boutons  et  .

 

Créer un Nouveau Programme

Généralement, durant la création d’un nouveau programme, la boite à outils et la fenêtre du navigateur sont cachées afin que l’utilisateur puisse se concentrer sur la création du programme. pour créer un nouveau programme, utilisez le menu File >> Create (ou Fichier >>Nouveau) ou un bouton pour la création des nouveaux fichiers .

Après toutes ces actions un “Assistant Expert Advisor” vous offrira une liste de types de programmes à créer :

 

Fig. 26. Choisir un type de programme à créer

 

Si vous avez besoin de créer un Expert Advisor, cochez  Expert Advisor et cliquez Suivant. Dans la fenêtre suivante, il ets nécessaire d’indiquer le nom de l’EA créé. Supposons qu’il s’appelle create.mq4.

{xtypo_warning}Le nom du fichier créé est ici écrit sans l’extension .mq4{xtypo_warning}

 

L’assistant de création d’Expert Advisor vous montrera une fenêtre à remplir avec plusieurs champs :


Fig. 27. A window for indicating general parameters of an Expert Advisor.

 

Après avoir cliqué sur Ok, le code apparaitra dans la fenêtre principale et le nom complet de l’Expert Advisor create.mq4 apparaitra dans le système de fichiers du navigateur :

 

Fig. 28. Affichage du fichier créé dans le système de fichier et le navigateur.

 

Regardons le code du programme généré par le MetaEditor:

{xtypo_code}//+——————————————————————+
//| create.mq4 |
//| John Smith |
//| www.company.com |
//+——————————————————————+
#property copyright “John Smith”
#property link “www.company.com”

//+——————————————————————+
//| fonction d’initialisation de l’expert |
//+——————————————————————+
int init()
{
//—-

//—-
return(0);
}
//+——————————————————————+
//| fonction de dé initialisation de l’expert |
//+——————————————————————+
int deinit()
{
//—-

//—-
return(0);
}
//+——————————————————————+
//| fonction de départ de l’expert |
//+——————————————————————+
int start()
{
//—-

//—-
return(0);
}
//+——————————————————————+{/xtypo_code}

 

Vous pouvez vous rendre compte que le code contiens principalement des commentaires. Nous savons déjà que les commentaires ne sont pas obligatoires dans un programme et que l’ordinateur ne les traitera pas lors de l’exécution.

Il y a trois fonctions spéciales dans le programme: init(), start() et deinit(). Chaque fonction contiens seulement un opérateur (return(0)) permettant de sortir de la fonction. Un programme généré par l'”assistant”n’est donc qu’un template, un moule, que le programmeur peut utiliser pour développer ses programmes. Le code final du programme ne contiens pas obligatoirement toutes les fonctions indiquées. Ces fonctions sont présentes car elles sont utilisées dans un programme classique. Mais l’utilisateur peut en supprimer s’il le souhaite.

Les lignes suivantes du programme peuvent être supprimées :

#property copyright John Smith
#property link www.company.com

Bien qu’un tel programme n’a aucun intérêt, il est correctement écrit du point de vue de la syntaxe. Ce programme peut donc être compilé et exécuté.

 

Apparence des Programmes

Utiliser des commentaires dans un programme est fortement recommandé et dans certains cas est même indispensable. En effet, il doit être souligné qu’un programmeur ne crée pas seulement des programmes, il les lie aussi. Quelquefois de grosses difficultés apparaissent lorsque l’on souhaite lire un programme. L’expérience de beaucoup de programmeusr montre que le raisonnement logique sur lequel le programme est construit peut être facilement oublié (ou inconnu s’il a été programmé par un autre) et que sans ces commentaires, il devient impossible voire même imossible quelquefois de comprendre le fragment de code.

{xtypo_warning}Un programme correctement écrit contiens des commentaires. {/xtypo_warning}

 

Les principaux avantages des commentaires sont :

  • Premièrement, les commentaires permettent de séparer logiquement différentes parties du code. il est plus facile de lire du texte aéré et organisé qu’un seul gros pavé.
  • Ensuite, les commentaires permettent d’expliquer en toutes phrases ce que le programmeur souhaite faire dans chaque ligne du code.
  • Enfin, dans la partie supérieure d’un programme, les informations générales a propos du programme peuvent être spécifiées: le nom de l’auteur, son contact (incluant un site, un email, etc), le type de programme et tout ce qu’il y a à savoir à son propos (caractéristiques, limitations, etc).

Chaque programmeur oeut choisir pour un style de commentaires qui lui convient bien que certains semblent communément acceptés :

 

1. La taille d’une ligne de commentaire ne doit pas excéder celle de la fenêtre principale. Le respect de cette règle n’est pas strictement requis, c’est juste une question de facilité de lecture. Les commentaires trop longs peuvent être séparées en plusieurs parties qui seront complètement visibles dans la fenêtre. Pour une écran dont la résolution est 1024 x 768, une ligne peut contenir au maximum 118 symboles.

2. La déclaration des variables est réalisée au début du programme. Il est recommandé d’écrire des commentaires descriptifs pour chaque variable expliquant succintement leur signification et leur usage.

3. Chaque opérateur est mieux placé sur une nouvelle ligne.

4. Pour diviser les fragments de code, des lignes continues de tirets sont utilisées (118 symboles).

5. Lorsque les parenthèses sont utilisées, une indentation de la taille d’une tabulation devrait être utilisée (généralement 3 symboles).

Regardons désormais l’apparence d’un EA qui a été complété avec quelques lignes de code. Les commentaires devraient ressembler à ceci :

{xtypo_code}//——————————————————————–
// create.mq4
// To be used as an example in MQL4 book.
//——————————————————————–
int Count=0;                                    // Global variable
//——————————————————————–
int init()                                      // Spec. funct. init()
   {
   Alert (“Funct. init() triggered at start”);  // Alert
   return;                                      // Exit init()
   }  
//——————————————————————–
int start()                                     // Spec. funct. start()
   {
   double Price = Bid;                          // Local variable
   Count++;                                     // Ticks counter
   Alert(“New tick “,Count,”   Price = “,Price);// Alert
   return;                                      // Exit start()
   }
//——————————————————————–
int deinit()                                    // Spec. funct. deinit()
   {
   Alert (“Funct. deinit() triggered at exit”); // Alert
   return;                                      // Exit deinit()
   }
//——————————————————————–
{/xtypo_code}

 

Il est facile de se rendre compte que des blocs de codes ayant des significations différentes sont séparés par des liges continues. C’est également une manière de séparer les fonctions définies par les utilisateurs et l’en-tête du programme du reste du code :

//--------------------------------------------------------------------
 

 Voici dessous un exemple de code sans commentaires et ne respectant pas toutes les règles de présentation. Vous pouvez vous rendre compte que sa compréhension est bien plus difficile que le code du précédent :

{xtypo_code}int Count=0;
int init() {
Alert (Funct. init() triggered at start”);
return; }
int start() {
double Price = Bid;
Count++;
Alert(“New tick “,Count,” Price = “,Price);
return; }
int deinit(){
Alert (“”Funct. deinit() triggered at exit”);
return;}{/xtypo_code}
 

Compilation des Programmes

Afin de rendre un programme utilisable en pratique, il doit être compilé. C’est dans cet objectif que le bouton  (F5) du MetaEditor doit être utilisé. Si un programme ne contiens pas d’erreurs, il sera compilé et le message suivant apparaitra :

 

Fig. 29. Message de l’éditeur à propos de la compilation réussie du programme.

De plus, un nouveau fichier create.ex4 apparaitra dans le répertoire correspondant (dans notre cas Terminal_directory\experts) . C’est un programme prêt à être utilisé dans le terminal client de Metatrader 4. Durant la compilation, la dernières version du code source du programme du même nom (dans notre cas le fichier create.mq4) sera sauvegardé dans le même répertoire.

En parallèle à cela, une ligne avec le nom de l’EA créé apparaitra dans la section des Expert Advisors de la fenêtre du terminal client :

 

Fig. 30. Affichage du nom de l’expert dans le navigateur du terminal.
 

Si durant la compilation des erreurs sont détectées dans un programme, le MetaEditor montrera le message d’erreur correspondant. Dans un tel cas, il faudra retourner à l’éditeur pour réparer les erreurs de programmation et recompiler le programme à nouveau. La compilations réussira s’il n’y a plus d’erreurs dans le programme.

 

Utiliser un Programme en Pratique

 

Si un programme (Expert Advisor, script ou indicateur) a été compilé avec succès et que son nom est apparu dans le navigateur du terminal client, il peut être utilisé en pratique. C’est faisable en cliquant et déposant l’icône de l’EA sur la fenêtre du symbole que l’on souhaite trader. Le programme sera alors attaché à la fenêtre et commencera son exécution.

Un Expert Advisor ou un indicateur fonctionneront jusqu’à ce que l’utilisateur stoppe l’exécution du programme manuellement. Un script classique arrêtera son exécution après avoir exécuté son algorithme.

Il est important de noter une nouvelle fois ceci :

{xtypo_warning}Toute application (Expert Advisor, indicateur, script) ne peut être utilisé pour trader qu’en tant que composant du terminal client de MetaTrader4 lorsqu’il est connecté aux serveurs du “dealing center” par internet.{/xtypo_warning}

 

Retour Sommaire.

Suivant: Programmes en MQL4

Traduction: Nicolas Vitale
Article Original: http://book.mql4.com/metaeditor/compose
“MQL4 is a trade mark of MetaQuotes Software Corp. and all related materials are reserved for MetaQuotes”

 

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>