Aide MetaEditor

Compiler

La compilation est le moyen de traduire le code source d'un programme MQL4/MQL5 en langage machine. Ce processus consiste en plusieurs étapes :

  • Analyse lexicale ;
  • Parsing ;
  • Analyse sémantique ;
  • Génération du code ;
  • Optimisation du code.

Une compilation réussie résulte en la création du fichier exécutable(*.EX5) d'un programme qui peut être lancé dans le terminal client.

  • N'importe quel fichier (*.MQ5 ou *.MQH) peut être compilé, mais un fichier exécutable (*.EX5) ne peut être généré que comme le résultat de la compilation du principal fichier MQ5 d'un programme.
  • Un fichier exécutable est créé dans son propre format fermé, qui cache l'algorithme source d'un programme.
  • Les fichiers exécutables compilés EX5 peuvent être distribués sans les fichiers sources MQ5 ou MQH. Il est impossible de déboguer sans eux. Il est recommandé de ne pas distribuer les fichiers EX5 obtenus en résultat de leur débogage.

Afin de démarrer la compilation, ouvrez le fichier source au travers de la fenêtre "Navigateur" et exécutez la commande "Compiler Compiler" du menu "Fichier" ou de la barre d'outils "Standard", ou vous pouvez également appuyer sur la touche "F7".

La rapport de la compilation sera affiché dans l'onglet "Erreurs" de la fenêtre "Boîte à Outils". S'il n'y a pas d'erreurs dans cet onglet, vous pouvez démarrer le programme dans le terminal client. Les messages d'erreur et les messages d'avertissement sont marqués par des icones spéciales près de leurs descriptions :

Erreurs

Les erreurs de compilation sont identifiées avec l'icone Erreur à la fois dans l'onglet "Erreurs" et dans le code. Si une telle erreur apparaît, le fichier exécutable du programme (*.EX5) ne sera pas généré. Afin de se rendre à la ligne de code contenant l'erreur, double cliquez sur la ligne de l'erreur avec le bouton gauche, ou exécutez la commande "Atteindre Go to line" du menu contextuel. Les numéros de la ligne et de la colonne, où l'erreur a été trouvé, sont affichés dans les colonnes correspondantes.

La description complète des erreurs de compilation est donnée dans les sections d'Aide du langage MQL4/MQL5.

L'apparence des messages d'avertissement dénotée par l'icone Avertissement pointe sur l'emplacement où une erreur peut se produire. C'est à dire que le compilateur pointe des parties du code source qui peuvent être interprétées de façon incorrecte (par exemple, le changement implicite du type d'une variable). Vous pouvez atteindre ces lignes de code de la même façon que pour les erreurs.

Il est possible de ne pas tenir compte des avertissements. Mais ceci n'est pas recommandé car ils indiquent des endroits potentiels où des erreurs peuvent se produire.

Par ailleurs, divers messages d'information sont affichés dans le journal. Ils sont marqués avec l'icone Information. Ils peuvent indiquer par exemple les fichiers "Include" auxquels un programme s'est référé pendant la compilation.

Le fichier exécutable (*.EX5) généré après une compilation réussie est situé au même endroit que le fichier principal du code source du programme (*.MQ5).

Compilation depuis la Ligne de Commande

Le terminal client inclut le compilateur des programmes MQL4/MQL5 qui est exécuté séparément de MetaEditor – MQL.exe. Il est situé dans le répertoire d'installation du terminal.

Le compilateur peut être lancé depuis n'importe quel répertoire. La seule condition pour pouvoir le démarrer est d'avoir le fichier MQL.dll (ou sa version 64 bits) dans le même répertoire.

Vous pouvez distribuer librement les fichier MQL.exe et MQL.dll. Cependant, vous n'êtes pas autorisés à y apporter quelque changement que ce soit, à désassembler ou décompiler ces fichiers ou n'importe quel objet d'un programme MQL4/MQL5.

Le compilateur est lancé depuis la ligne de commande en spécifiant le chemin et le nom du fichier que vous voulez compiler.

Exemple de lancement du compilateur :

C:\Compiler\>mql.exe C:\MyPrograms\script.mq5

Le fichier comporte deux options de lancement :

  • /s – Si vous lancez le compilateur avec cette option, il ne fera que vérifier la syntaxe du code du programme et affichera les résultats respectifs ;
  • /i :[chemin] – avec cette option, vous pouvez spécifier le chemin vers le répertoire /MQL5 (/MQL4) du terminal client. Ce paramètre est requis pour les programmes qui utilisent souvent des fichiers "Include" (*.mqh).

Exemple de lancement du compilateur avec des paramètres supplémentaires :

C:\Compiler\>mql.exe C:\MyPrograms\script.mq5 /i:C:\client_terminal\MQL5