Aide MetaEditorDévelopper des programmesGestion intelligente

Gestion intelligente

Pour faciliter la programmation, MetaEditor fournit différents outils pour les substitutions automatiques des noms, des infobulles pour les fonctions, des signets et des raccourcis. Ces outils vous permettent d'accéléerer le processus d'écriture du code, de rendre la navigation plus facile et d'aider à empêcher des erreurs.

Cette section décrit les fonctions suivantes :

Tout changement peut être défait en exécutant la commande Annuler Annuler du menu Edition ou de la barre d'outils Standard, ou en appuyant sur Ctrl+Z.

Auto substitution des noms de fonctions #

Lorsque vous écrivez le code du programme, MetaEditor offre automatiquement les substitutions possibles pour les fonctions intégrées et les fonctions personnalisées, les constantes, les varaibles, les membres de classe, les mots-clés, etc. Ceci accélère l'écriture du code. Par exemple, dès que tapez les premières lettres du nom de la fonction, une liste de fonctions avec des noms correspondants s'ouvre immédiatement. Sélectionnez l'option désirée avec les flèches du clavier et tapez Entrée :

Liste de noms

Si la liste d'options est trop grande, tapez quelques lettres de plus. Pour appeler la liste manuellement, cliquez sur Lister les Noms Lister les Noms du menu Edition ou Ctrl+Space après avoir saisi les premiers caractères du nom.

Information sur les paramètres #

Vous pouvez la signature de la fonction directement lors de l'écriture du code sans ouvrir l'aide du langage. Pour cela, placez le curseur après la parenthèse ouvre qui marque le début de la description des paramètres de la fonction, et cliquez ensuite sur Paramètres Paramètres du menu Edition ou Ctrl+Shift+Space. Les informations sur les paramètres et sur le type de la valeur de retour d'une fonction sont affichés dans les infobulles :

Information sur les paramètres

Les informations suivantes sont affichées pour la fonction dans l'image :

  • [1 sur 2] signifie que la fonction a 2 signatures avec des paramètres différents. Pour basculer entre elles, utilisez les flèches du clavier ou cliquez avec le bouton gauche sur la ligne du prompt.
  • bool spécifiie le type de valeur retournée par une fonction.
  • ObjectSetInteger – nom de la fonction.
  • (long chart_id, ... ) – énumération des paramères possibles de la fonction, un type est spécifié avec chaque paramètre (ici le paramètre de type "long"). Le paramètre sur lequel le curseur est actuellement placé est affiché en gras.

Aller à la définition #

Cet outil permet une navigation rapide vers la définition (implémentation) du type de classe ou de l'élément sélectionné. Placez le curseur sur son nom et sélectionnezAller à la définition« Aller à la définition » dans le menu contextuel ou appuyez sur « Alt+G ». Si la définition se trouve dans un autre fichier, elle sera ouverte et le curseur sera placé à sa position correspondante.

La fonction permet également à la navigation d'inclure des fichiers. Pour ce faire, placez le curseur n'importe où sur la ligne où l'inclusion est déclarée (la directive #include) et exécutez la commande ci-dessus.

Aller à la déclaration #

Cet outil permet une navigation rapide vers une déclaration de variable ou de membre de classe. Placez le curseur sur le nom de l'élément et sélectionnez "Aller à la déclaration" dans le menu contextuel. Si la déclaration se trouve dans un autre fichier, elle sera ouverte et le curseur sera placé à sa position correspondante.

Liste des fonctions #

Cet outil vous permet de voir la liste de toutes les fonctions déclarées dans le fichier en cours. Pour ouvrir la liste, cliquez sur Lister les Fonctions Lister les Fonctions du menu Edition ou Alt+M.

Liste des fonctions

Les paramètres de fonction sont indiqués entre parenthèses à droite de son nom. Pour aller dans la fonction, cliquez sur son nom dans la liste. Chaque type de fonctions dans la liste est marquée par son icone :

  • Fonction – fonction.
  • Fonction de gestion d'évènement – fonction de gestion d'évènement (On*).
  • Méthode de classe publique – méthode de classe publique (public).
  • Méthode de classe protégée – méthode de classe protegée (protected).
  • Méthode de classe privée – méthode de classe privée (private).

Insertion de commentaires #

Pour simplifier le travail avec les commentaires dans le code du programme, utilisez les fonctions du menu Edition et de la barre d'outils Standard :

  • En-tête de Fonction En-tête de Fonction – insère un commentaire blanc pour une fonction ;
  • Commentaire Commentaire – insère les symboles du commentaire sur une ligne ;
  • Commenter les Lignes Commenter les Lignes – insère les commentaires "//" au début de chaque ligne sélectionnée ;
  • Décommenter les Lignes Décommenter les Lignes – enlève les commentaires "//" du début de chaque ligne sélectionnée.

La commande CommentaireCommentaire (Ctrl+/) insére les caractères du commentaire sur une ligne à la position courante :

//---

La commande En-tête de FonctionEn-tête de Fonction (Ctrl+.) insére un bloc de commentaire pour une fonction à la position courante du curseur :

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

Fonctionnalités supplémentaires d'édition du code #

Vous pouvez failcement déplacer des fragments de code d'une partie du programme dans une autre. Pour cela, sélectionnez la partie du code et glissez-la à la position désirée (Drag'n'Drop).

Le sous-menu Avancé du menu Edition comporte une série de commandes simplfiiant l'édition du code source :

  • Augmenter le Retrait de Ligne Augmenter le Retrait de Ligne – insére 3 espaces (symbole pour la tabulation) au début des lignes sélectionnées. Pour insérer des espaces sur une sule ligne, positionnez le curseur au début de la ligne. Pour insérer des espaces sur plusieurs lignes, sélectionnez-les entièrement.
  • Diminuer le Retrait de Ligne Diminuer le Retrait de Ligne – supprime 3 espaces (symbole pour la tabulation) au début des lignes sélectionnées. Une action similaire est effectuée avec le raccourci Tab+Shift.
  • Mettre en Majuscules Mettre en Majuscules – change tous les caractères sélectionnés en majuscules. Une action similaire est effectuée avec le raccourci Ctrl+Shift+U.
  • Mettre en Minuscules Mettre en Minuscules – change tous les caractères sélectionnés en minuscules. Une action similaire est effectuée avec le raccourci Ctrl+U.

Travailler avec les signets #

Les signets vous permettent de vous rendre rapidement dans différentes parties du code. Marquez les lignes désirées avec des signets et naviguez entre eux avec les commandes du menu Edition – Signets et du menu contextuel du code source :

  • Basculer le Signet Basculer le Signet – active/désactive un signet sur la ligne courant suivant son statut actuel. La même action peut être faite avec le raccourci Ctrl+F2 ;
  • Signet Suivant Signet Suivant – se déplace vers le signet suivant du code courant. La même action peut être effectuée avec la touche F2 ;
  • Signet Précédent Signet Précédent – se déplace vers le signet précédent du code courant. La même action peut être effectuée en appuyant sur Shift+F2.
  • Supprimer Tous les Signets Supprimer Tous les Signets – supprime tous les signets du code courant. La même action peut être effectuée en appuyant sur Ctrl+Shift+F2.

MetaEditor comprent également les signets nommés – ceux ayant un identifiant numérique. Pour définir un signet nommé, cliquez sur 0-9 tout en maintenant Ctrl. Pour vous rendre sur un signet nommé assigné auparavant, appuyez sur le nombre correspondant tout en maintenant la touche Alt.

Aller à la Ligne #

Pour sauter rapidement à n'importe quelle ligne de code du fichier courant, cliquez sur Aller à la Ligne Aller à la Ligne du menu Rechercher ou appuyez sur Ctrl+G. La fenêtre suivante est ouverte :

Aller à la Ligne

La fenêtre affiche l'intervalle de lignes du code du fichier en cours. Pour aller sur une ligne, saisissez son numéro et cliquez sur ОК.

Snippets #

Les snippets sont de petits modèles de code source décrivant une certaine construction du langage MQL4/MQL5. Ils simplifient et accélèrent l'écriture du code source. Par exemple, ils vous permettent d'ajouter rapidement un morceau de code fonctionnel à un programme pour décrire une classe ou une boucle. Pour cela, tapez simplement un mot-clé – 'class' ou 'for'. Le curseur est changé en Un snippet peut être ajouté ce qui signifie qu'il est maintenant possible d'insérer un snippet. Appuyez sur Tab et un blanc pour une classe ou une boucle 'for' est inséré dans le code du programme conformément.

Snippet exemple

Pour basculer entre les champs du snippet actif (ici, ce sont le nom, le constructeur de class et le destructeur de classe), utilisez Tab et Shift+Tab.

Le changement d'un champ actif change automatiquement le reste. Par exemple, en cas de changement du nom de la classe, les noms du constructeur et du destructeur sont également changés automatiquement. Lors du changement du nom d'une variable dans l'une des expressions de la boucle 'for', les variables dans les autres expressions sont également changées.

Le système d'utilisation des snippets reconnaît aussi les structures, classes, énumérations, méthodes et fonctions déjà décrites. Placez le curseur dans la description de la structure correspondante et appuyez sur Ctrl+Enter. Après cela, vous pouvez naviguer entre les membres (classes, structures et énumérations) et les arguments (méthodes et fonctions) en utilisant les touches Tab et Shift+Tab et les éditer ensemble comme décrit ci-dessus.

Les snippets suivants sont actuellement supportés :

Mot clé

Valeur

#import

Déclaration d'import.

OnBookEvent

Gestionnaire OnBookEvent.

OnCalculate

Gestionnaire OnCalculate.

case

Sélecteur 'case'.

OnChartEvent

Gestionnaire OnChartEvent.

class

Déclaration de classe.

OnDeinit

Gestionnaire OnDeinit.

do

Déclaration de la boucle 'do while'.

enum

Déclaration d'une énumération.

for

Déclaration de la boucle 'for'.

if

Déclaration de la condition 'if'.

else

Déclaration de la condition 'else'.

OnInit

Gestionnaire OnInit.

OnStart

Gestionnaire OnStart.

struct

Déclaration de structure.

switch

Sélecteur 'switch'.

OnTester

Gestionnaire OnTester.

OnTesterInit

Gestionnaire OnTesterInit.

OnTesterPass

Gestionnaire OnTesterPass.

OnTesterDeinit

Gestionnaire OnTesterDeinit.

OnTick

Gestionnaire OnTick.

OnTimer

Gestionnaire OnTimer.

OnTrade

Gestionnaire OnTrade.

OnTradeTransation

Gestionnaire OnTradeTransation.

while

Déclaration de la boucle 'while'.

Insérer des ressources #

Les commands du menu Edition – Insertion permettent d'insérer rapidement des fichiers de ressource et facilite donc le dévelopement d'applications.

Options comme #property

Insère la directive #property à la position courante et ouvre ensuite la liste de toutes les propriétés du programme disponibles dans le langage.

BMP/WAV comme #resource

Pour ajouter un fichier image ou son dans les ressources du programme, exécutez cette commande et sélectionnez un fichier BMP ou WAV (le fichier désiré doit être situé dans le répertoire \MQL5). La directive #resource avec le chemin correspondant au fichier sélectionné sera insérée à la position actuelle dans le programme.

#resource "\\Images\\image.bmp"

DLL/EX5 comme #import

Vous pouvez importer des fonctions d'une bibliothèque externe ou d'un fichier EX5/EX4 en exécutant cette commande et en sélectionnant le fichier désiré (le fichier doit être situé dans le répertoire \MQL5). Deux directives #import avec le chemin correspondant vers le fichier sélectionné seront insérées à la position actuelle dans le programme.

#import "..\Experts\SendNotification.ex5"
 
#import

Ajoute la description des fonctions importées entre les directives.

MQH comme #include

Pour insérer un fichier include dans le code du programme, exécutez cette commande et sélectionnez le fichier MQH (le fichier désiré doit petre situé dans le répertoire \MQL5). La directive #include avec le chemin correspondant au fichier sélectionné sera insérée à la position actuelle du programme.

#include <Arrays\Array.mqh>

Un ensemble de paramètres comme #property

Pour insérer un ensemble de paramètres dans le code du programme pour tester un Expert Advisor, exécutez cette commande et sélectionnez un fichier SET (le fichier doit être stocké dans le répertoire \MQL5). La directive #property avec le chemin correct vers le fichier sélectionné sera inséré à la position courante du programme.

#property tester_set "\\Profiles\\Tester\\Moving Average.set"

Données et heure au format AAAA.MM.DD hh:mm:ss / heure UNIX

Utilisez cette commande pour insérer la date et l'heure au format requis dans votre code. La sélection de commande ouvre un calendrier interactif. Sélectionnez la date et l'heure dans le calendrier, et elles seront insérées à la position actuelle du programme dans le format sélectionné.

Insertion de la date et de l'heure dans le code

 

Couleur comme clrColor

Utilisez cette commande pour insérer facilement la couleur au format requis, dans votre code. Un clic sur la commande ouvre une palette interactive. Sélectionnez une couleur dans la palette, et elle sera insérée à la position actuelle dans le format clrColor utilisé dans les fonctions MQL5.

Insertion de couleur dans le code

Fichier comme Tableau Binaire

Cette commande vous permet d'ajouter dans le programme n'importe quel fichier sous la forme d'un tableau binaire. Exécutez la commande et sélectionnez le fichier désiré (le fichier désiré doit être situé dans le répertoire \MQL5). Un tableau de caractères sera inséré à la position actuelle dans le programme.

Cette fonction vous permet, parmi d'autres, de transférer les modèles de graphiques avec les Expert Advisors ou les indicateurs : insérez votre modèle dans le code du programme sous la forme d'un tableau et sauvegardez-le sur le disque en utilisant la fonction FileSave. Après cela, le modèle peut être appliqué sur le graphique désiré en utilisant la fonction ChartApplyTemplate.

//+------------------------------------------------------------------+
//| Fonction de démarrage du script                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- un fichier modèle comme tableau binaire
   unsigned char my_template[]=
     {
      0xFF,0xFE,0x3C, ... ,0x00 // le tableau de données de cet exemple a été réduit
     };
//--- sauvegarde et application du modèle
   if(FileSave("my_template.tpl",my_template))
     {
      Print("Le modèle personnalisé a été sauvegardé dans \\MQL5\\Files");
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
         Print("Le modèle personnalisé a été appliqué au graphique actuel");
      else
         Print("Echec de l'application du modèle personnalisé");
     }
   else
      Print("Echec de la sauvegarde du modèle personnalisé");
  }

CSV comme un tableau de texte

Pour ajouter les données d'un fichier texte dans le code du programme, exécutez cette commande et sélectionnez un fichier TXT ou CSV le fichier désiré doit être situé dans le répertoire \MQL5). Un tableau de chaînes de caractères de la dimension requise contenant les données du fichier sera inséré à la position actuelle dans le programme :

string data[][3]=
  {
   {"name1","value1"},
   {"name2","value2"},
   {"name3","value3"}
  };

Conversion de texte #

MetaEditor vous permet de convertir facilement le format des données source. Ouvrez le fichier désiré, sélectionnez son texte et exécutez l'une des commandes du menu Edition – Conversion :

  • ASCII vers HEX
  • ASCII vers Base64
  • ASCII vers Tableau Binaire
  • HEX vers ASCII
  • Base64 vers ASCII

Suivi du presse-papiers #

Le gestionnaire de suivi du presse-papiers améliore la commodité du code source en permettant un accès rapide aux dernières données utilisées. Appuyez sur Alt+V n'importe où dans le code source, sélectionnez l'une des lignes précédemment copiées dans le menu et elle sera collée en place.

Pour coller des lignes de l'historique du presse-papiers, appuyez sur ALT+V ou utilisez la barre d'outils

Vous pouvez activer/désactiver le suivi à l'aide de la commande de la barre d'outils correspondante ou via les paramètres de l'éditeur.