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 "AtteindreAtteindre" du menu contextuel. Les numéros de la ligne et de la colonne où l'erreur a été trouvée, 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 Commandes

Un fichier exécutable MetaEditor peut être utilisé comme compilateur lors de l'utilisation du code source dans des éditeurs externes. Le compilateur est lancé depuis la ligne de commandes en spécifiant le chemin et le nom du fichier que vous souhaitez compiler :

  • metaeditor.exe /compile:"<chemin absolu vers le fichier source>"
  • metaeditor64.exe /compile:"<chemin absolu vers le fichier source>"

Exemple

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts\myscript.mq5"

Compilation en masse de fichiers dans un répertoire

Pour une compilation en masse, spécifiez le chemin jusqu'au répertoire plutôt que jusqu'au fichier. Tous les fichiers de code source dans le répertoire spécifié seront compilés. Les sous-répertoires ne sont pas inclus.

La compilation n'est pas relancée si le fichier source a déjà une version correspondante compilée.

L'exemple ci-dessous affiche une compilation en masse pour le répertoire \MQL5\Scripts.

Exemple

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts"

Répertoire MQL5/MQL4 personnalisé avec des fichiers include

Les programmes peuvent utiliser des fichiers include (*.mqh) supplémentaires, situés en dehors du répertoire de travail actuel de la plateforme (par exemple, dans le répertoire \MQL5 de la copie d'une autre plateforme sur le même ordinateur). Sépficiez le chemin vers ce répertoire en utilisant l'option "/inc" pour une compilation correcte.

Exemple

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts" /inc:"C:\Program Files\TradingPlatform 2\MQL5"

Journal de compilation

Spécifiez l'option /log supplémentaire pour plus d'informations sur le processus de compilation. Dans ce cas, le fichier de journal de la compilation <nom du fichier source>.log compilation est créé dans le répertoire contenant le fichier source.

Exemple

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts\myscript.mq5" /log
Fichier journal : C:\Program Files\TradingPlatform\MQL5\Script\myscript.log

Vérification de la syntaxe

Pour vérifier la syntaxe d'un programme sans le compiler, lancez MetaEditor depuis la ligne de commandes avec les options /s et /log (afin que les résultats de la vérification soient écrits dans le fichier du journal).

Exemple

"C:\Program Files\TradingPlatform\metaeditor64.exe" /compile:"C:\Program Files\TradingPlatform\MQL5\Scripts\myscript.mq5" /s /log
Fichier avec les résultats de la vérification : C:\Program Files\TradingPlatform\MQL5\Script\myscript.log