Aide MetaEditorDévelopper des programmesCompilation

Compilation

La compilation signifie la conversion du code source d'un programme MQL4/MQL5 en langage machine. Le résultat est un fichier exécutable (*EX4 or *.EX5) qui peut être lancé dans une plateforme de trading.

La compilation consiste en plusieurs étapes :

  • Analyse lexicale
  • Analyse syntaxique
  • Analyse sémantique
  • Génération de code
  • Optimisation du code
  • N'importe quel fichier (*.MQ4, *.MQ5 or *.MQH) peut être compilé, mais un fichier exécutable (*.EX4 or *.EX5) ne peut être obtenu qu'après la compilation du principal fichier MQ4/MQ5 ou projet.
  • Le fichier exécutable est créé dans son propre format, cachant l'algorithme original du programme.
  • Les fichiers EX4/EX5 exécutables compilés peuvent être distribués dans les fichiers source MQ4, MQ5 et MQH. Il n'est pas possible de déboguer sans eux. Il n'est pas recommandé non plus de distribuer les fichiers exécutables EX4/EX5 obtenus pendant le déboguage.

Pour obtenir un fichier exécutable, ouvrez le principal fichier source ou projet via le Navigateur et cliquez sur Compiler Compiler dans le menu Fichier ou F7. Le résultat de la compilation est affiché dans l'onglet Erreurs de la fenêtre Boîte à Outils. Si la сompilation est passée sans erreur, vous pouvez exécuter le programme obtenu dans la plateforme de trading.

Compilation du programme et affichage des résultats dans l'onglet Erreurs

S'il y a des erreurs ou des avertissements (warnings), ils sont affichés dans l'onglet Erreurs.

Les erreurs de compilation sont marquées avec Erreur à la fois dans l'onglet Erreurs et dans le bloc de code correspondant. Aucun fichier exécutable (*EX4 or *.EX5) n'est créé dans ce cas. Pour vous rendre sur la ligne de l'erreur, double-cliquez sur l'erreur ou cliquez sur la commande Aller à la LigneAller à la Ligne du menu contextuel. La ligne et la colonne où l'erreur est détectée sont affichées dans les colonnes correspondantes.

Les avertissements marqués avec l'icone Avertissement indiquent l'emplacement d'erreurs potentielles. Ce sont des blocs de code source pouvant être mal interprétés (par exemple un changement de type implicite). Vous pouvez vous rendre à l'endroit correspondant exactement de la même façon qu'en cas d'erreur.

InformationLes icones représentent divers messages, par exemple, les messages à propos des fichiers d'include auxquels le programme accéde pendant la compilation.

Mode de compilation #

L'éditeur propose deux modes de compilation : avec optimisation maximale du code et sans optimisation.

Le temps nécessaire pour créer un fichier exécutable est considérablement réduit lorsque l'optimisation est désactivée. Utilisez ce mode pendant la phase de développement actif, lorsque vous devez vérifier rapidement le code écrit. Ensuite, lors de la compilation finale du programme, activez le mode d'optimisation maximale pour obtenir les meilleures performances.

Pour passer d'un mode à l'autre, utilisez le menu "Build" ou le menu de commandes de compilation de la barre d'outils :

Contrôler le mode de compilation

Le paramètre "Optimisation maximale" dans les paramètres du projet remplit la même fonction.

  • La description complète des erreurs de compilation sont fournies dans l'aide du langage MQL4/MQL5.
  • En cas d'avertissements, un fichier exécutable est quand même généré. Mais les avertissements ne devraient pas être ignorés puisqu'ils indiquent des erreurs potentielles du code.
  • Pendant la compilation, un fichier exécutable (*.EX4 ou *.EX5) est généré dans le même répertoire que le principal fichier source du programme (*.MQ4 ou *.MQ5) ou du projet.
  • metaeditor.exe peut être utilisé comme compilateur externe dans les IDE tiers.

Compilation pour des processeurs avec des architectures différentes #

Les processeurs modernes fournissent un ensemble d'instructions avancées qui accélèrent considérablement les calculs mathématiques : AVX, AVX2, AVX512et FMA3. Ces instructions sont prises en charge dans le compilateur MQL5 pour permettre la génération de codes plus efficaces et plus rapides. L'utilisation de ces instructions est facultative :

  • Si vous créez une application pour vous-même et que vous êtes sûr qu'elle fonctionnera sur un processeur prenant en charge l'architecture souhaitée, vous pouvez la compiler à l'aide d'instructions avancées. Cela fournira une performance accrue.
  • Si vous créez un programme destiné à un usage public ou à la vente, compilez-le avec les instructions de base définies en mode X64 Regular. Cela garantira une compatibilité maximale de l’application avec le matériel utilisateur.

Pour savoir quelles instructions sont prises en charge sur votre processeur, utilisez l'Utilitaire gratuit CPU-Z. Après l'installation, ouvrez la section 'CPU' et vérifiez le champ 'Instructions' :

Vérifiez quelles instructions votre processeur prend en charge à l'aide de CPU-Z

Pour sélectionner une architecture de processeur, utilisez le menu de compilation. Cliquez ensuite sur « Compiler ». Vous pouvez également spécifier l'architecture dans les Paramètres MetaEditor et dans les Paramètres de projet distincts.

Sélectionnez l'architecture du processeur pour laquelle le programme sera compilé

Si l'application est compilée pour une architecture qui n'est pas supportée par le processeur de l'utilisateur, alors une tentative de son exécution entraînera l'impression du message suivant dans le journal de la plateforme :

votre architecture CPU ne permet pas d'exécuter le fichier '<file-name>.ex5' : AVX512 requis, vous disposez uniquement d'AVX2

Restrictions :

  • Les programmes compilés pour les processeurs avec AVX512 ne sont pas encore pris en charge dans le Réseau MQL5 Cloud Network et dans le VPS intégré.
  • Seuls les fichiers compilés sous X64 Regular peuvent être téléchargés sur le Market. Ceci est nécessaire pour garantir une compatibilité maximale des applications avec le matériel utilisateur.