Fonctionnement de Metaeditor

MetaEditor est un editeur de texte, fourni par MetaQuotes, dédié à la réalisation de programmes en MQL4. Cet éditeur est le seul éditeur spécifique à MQL4 et à de nombreuses fonctions intéressantes mais a aussi des limitations notamment au niveau du debug.

Structure des répertoires

MT4 s'appuie sur une structure de répertoire assez rigide, et défini le type des programmes par leur position dans les répertoires. Par exemple un fichier test.ex4 dans le répertoire «experts» sera considéré comme un EA mais le même fichier sous«indicators» sera considéré come un indicateur.

La structure complète est affichée dans le navigateur lorsqu'on ouvre MetaEditor.

La «Racine» correspond au répertoire «experts» car tous les programmes développés par le trader seront stockés soit dans ce répertoire soit dans les répertoires au dessous.

Voir notre avis sur le test du broker AvaTrade qui propose la plateforme MT4

  • Les EAs tels que MACD Sample sont stockés directement sous «experts».
  • Les indicateurs sont stockés sous «indicators».
  • Les scripts sont stockés sous «scripts»
  • Les fichiers include sous «include»
  • Les dll sous «libraries»

Les fichiers gérés sont de 3 types:

  • mq4 qui sont les fichiers contenant le code source. Ce sont ces fichiers qui sont principalement créés en utilisant MetaEditor.
  • ex4 qui sont les fichiers exécutables résultats de la compilation de fichiers mq4. Ces fichiers ne peuvent pas être édités. Si le programme doit être modifié il doit l'être via le code source et recompilé.
  • mqh qui sont les fichiers include qui en général incluent les prototypes de fonctions importées ou la déclaration de variables ou constantes communes. Ces fichiers ne sont pas indépendants car ils sont utilisés comme partie d'un code pour un fichier mql4. Un fichier ex4 contient donc la compilation du fichier mq4 et aussi éventuellement celle d'un ou plusieurs fichiers mqh associés avec le fichier mql4.

Création d'un programme avec MetaEditor

MetaEditor est fourni en tant que composant de MetaTrader 4 et se trouve sous le répertoire racine de MT4. Une fois MetaEditor lancé, le guide utilisateur en anglais est disponible en pressant F1.

Interface de MetaEditor.

MetaEditor affiche par défaut 3 fenêtres:

  • la fenêtre principale qui sert à l'édition du code source
  • le navigateur qui sert à la fois à naviguer dans la structure des répertoires (onglet Racine) et dans la référence du langage MQL4 (onglet Dictionnaire)
  • la boite à outils qui est plus une fenêtre d'affichage de résultats. On y trouve par exemple les détails des fonctions de MQL4 lorsqu'on navigue dans les fonctions via le navigateur (onglet Aide), et les rapports de compilation du code source (onglet Erreurs)

Seule la fenêtre principale est obligatoire, les autres peuvent être affichées ou cachées soit par les boutons et , soit par les raccourcis claviers ( Ctrl+D ) pour le navigateur et ( Ctrl+T ) pour la boite à outils.

Créer un nouveau programme

Pour créer un nouveau programme vous pouvez soit choisir Fichier -> Nouveau (Ctrl+N) soit cliquer sur le bouton .

L'assistant qui apparait en pop-up vous aide a créer une structure de base pour votre programme.

Ci-dessus les versons françaises et anglaises sont mises côte à côte et il est clair que la traduction a parfois aussi des bugs! C'est pour cela que si possible il est souvent préférable de travailler en version originale.

Choisissez le type de programme que vous voulez créer et cliquez sur Next.

Ensuite il faut donner le nom du programme, et une série d'informations optionnelles telles que l'auteur (pour le copyright), un lien vers un site internet et des paramètres externes si nécessaire.

Tous ces éléments peuvent être rajoutés par la suite manuellement si nécessaire.

Après avoir cliqué sur Finish vous obtiendrez un fichier créé dans le répertoire adéquat contenant la structure de base de votre programme avec les informations que vous aurez renseignées.

Dans notre exemple avec les valeurs prises ci-dessus, le code obtenu sera le suivant:

Le code fourni est un modèle et par exemple les fonctions init() ou deinit() ne seront pas forcément utilisées et peuvent être laissées vides ou même supprimées du code.

Même si ce code ne contient aucune logique et donc n'exécute aucune action il peut être compilé car il est syntaxiquement correct.

Compilation du programme

Pour compiler votre code source vous pouvez utiliser le bouton «Compiler» ou le raccourci (F5). La compilation sauve aussi automatiquement la dernière version du code source. S'il n'y a pas d'erreur dans le code vous aurez le message suivant dans la boite à outils.

Un fichier test.ex4 correspondant au code compilé est ajouté dans le répertoire «experts» et donc visible dans le navigateur de MT4. S'il y a des erreurs de compilation le fichier test.ex4 ne sera pas créé.

Une fois le programme visible dans le navigateur il peut être utilisé par MT4.

MetaEditor permet donc de créer facilement différents programmes en MQL4 et son aide en ligne facilite le développement.

Néanmoins le plus gros reproche que l'on peut faire à MetaEditor est l'impossibilité de debugger un programme facilement.

En général, dans tous les environnements de développement d'applications basés sur un langage de programmation, l'environnement de développement propose une fonction de debug avec entre autre la possibilité de mettre des points d'arrêts dans le code et d'exécuter ce dernier pas à pas. Malheureusement MetaEditor ne propose rien de tout cela et la résolution de problèmes dans le code est de ce fait un peu plus ardue.

La solution est d'utiliser la fonction Print() (ou éventuellement dans certains cas la fonction Comment() qui peut aussi être utile) pour afficher des informations dans le fichier de log. Il faut cependant prendre en compte que l'exécution se faisant à chaque tick, si la période de test est longue le fichier de log peut atteindre des tailles conséquentes.

Espérons que la fonction de debug sera améliorée dans MT5!

Plus d'information sur le même thème

Photo of Arnaud Jeulin

Arnaud Jeulin Responsable de la publication, Trader

Après un diplôme d'ingénieur, Arnaud a commencé une carrière de développeur. Il a travaillé avec des traders et des services de back office pour mettre en place des prototypes et des outils de trading. Il a ensuite créé sa propre entreprise en 2003.

Il a été responsable du webmarketing pour la Banque en ligne Suisse Synthesis, depuis rachetée par Saxo Bank. Il a aussi fait des audits pour différents brokers et participé à plusieurs salons professionnels pour les courtiers à Londres, Paris et Chypre.

Depuis 21 ans Arnaud a approfondi sa connaissance des brokers et des marchés, il utilise son expérience pour améliorer Mataf afin d'éviter d'orienter les visiteurs vers des brokers malhonnêtes ou des stratégies de trading dangeureuses.

Vous pouvez le joindre via les réseaux sociaux suivants ou par email :

.
  Se connecter