Aide MetaEditor

Contrôle Intelligent

Différents outils, de la substitution automatique de noms, aux marque-pages des fonctions et aux raccourcis-clavier, sont implémentés dans MetaEditor pour aider au développement des programmes. Ces moyens permettent d'accélérer le processus d'écriture du code source, de naviguer facilement dans le fichier et d'éviter les erreurs.

Les fonctions suivantes sont décrites dans cette fonction :

Tout changement apporté au code source peut être annulé en utilisant la commande "Annuler Annuler" du menu "Edition" , ou de la barre d'outils "Standard", ou encore en utilisant la combinaison de touches "Ctrl+Z".

Substitution Automatique des Noms de Fonctions

C'est la possibilité de voir la liste de toutes les variantes des noms des fonctions intégrées et des fonctions utilisateurs, des constantes, des variables, des membres de classes, des mots clés, etc. Les variantes possibles de substitution sont déterminées par les premiers caractères saisis. L'ouverture de cette liste est effectuée automatiquement lors de l'écriture du code source. Pour ouvrir cette liste manuellement, utilisez la commande "Liste des Noms Liste des Noms" du menu "Edition" ou de la barre d'outils "Standard" ; vous pouvez également utiliser le raccourci clavier "Ctrl+Espace" après la saisie des premiers caractères du nom :

Liste des Noms

Il reste ensuite uniquement à choisir la variante désirée en utilisant les touches "Flèche Haut" et "Flèche Bas" et de valider ensuite avec la touche "Entrée". Le choix peut également être fait à la souris. Si vous continuez à taper des lettres du nom d'une fonction, la liste des variantes possibles de substitution est affinée.

Informations concernant les Paramètres

Cette fonctionnalité permet de voir les paramètres d'une fonction et leurs types de données. Pour obtenir cette information, il faut exécuter la commande "Paramètre Info Paramètre Info" du menu "Edition" ou de la barre d'outils "Standard" ; vous pouvez également utiliser le raccourci clavier "Ctrl+Shift+Espace". Ces commandes ne peuvent être exécutées que si le curseur se trouve entre les parenthèses contenant les paramètres. La bulle d'aide contenant les paramètres s'affichera sous la fonction :

Informations concernant les Paramètres

Considérons les informations affichées dans l'exemple ci-dessous :

  • [1 sur 2] – signifie que deux variantes sont possibles pour spécifier les paramètres de la fonction. Pour basculer entre elles, utilisez les touches "Flèche Haut" et "Flèche Bas" ou cliquez avec le bouton gauche de la souris sur la bulle d'aide ;
  • bool – correspond au type de la valeur retournée par la fonction ;
  • ObjectSetInteger – nom de la fonction ;
  • (long chart_id, ... ) – énumération des paramètres possibles pour la fonction, le type des paramètres est spécifié avant chacun d'eux ("long" dans ce cas). Le paramètre où est actuellement situé le curseur est affiché en gras.

Aller à la Définition

Cette fonction permet de se rendre automatiquement à la déclaration ou à la définition de la fonction ou de la variable sélectionnée. Si la définition ou la déclaration est située dans un autre fichier, celui-ci sera alors ouvert et le curseur sera placé à la position correspondante. Cette fonction permet également de se rendre dans les fichiers "Include" (#include).

Afin de se rendre à la définition, il faut placer le curseur sur un paramètre et exécuter la commande "Aller à la Définition Aller à la Définition" du menu "Edition" ou de la barre d'outils "Standard" ; vous pouvez également utiliser le raccourci clavier "Alt+G". Pour pouvoir se rendre dans un fichier "Include", vous devez placer le curseur sur la ligne de sa déclaration et exécuter l'une des commandes mentionnées ci-dessus.

Liste des Fonctions

Cette fonctionnalité permet d'ouvrir la liste de toutes les fonctions déclarées dans le fichier actuel. Pour ouvrir la liste, vous devez exécuter la commande "Liste des Fonctions Liste des Fonctions" du menu "Edition" ou de la barre d'outils "Standard" ; vous pouvez également utiliser le raccourci clavier "Alt+M".

Liste des Fonctions

Les paramètres qui sont spécifiés dans les fonctions sont affichés entre parenthèses. En cliquant avec le bouton gauche de la souris ou en utilisant la touche "Entrée", vous pouvez vous rendre à la définition de la fonction sélectionnée dans le fichier. Chaque type de fonction possède sa propre icone dans la liste :

  • Fonction – fonction ;
  • Fonction de Gestion d'Evènements – fonction de gestion d'évènements (On*) ;
  • Méthode Publique de Classe – méthode publique de classe ;
  • Méthode Protégée de Classe – méthode protégée de classe ;
  • Méthode Privée de Classe – méthode privée de classe ;

Insertion de Commentaires

Différentes commandes pour travailler avec les commentaires dans le code source sont disponibles dans le menu "Edition" et dans la barre d'outils "Standard" :

  • En-tête de la fonction En-tête de la fonction – insère un bloc de commentaires pour une fonction ;
  • Bloc de commentaires Bloquer commentaire – insère les symboles pour commenter 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 – supprime les commentaires "//" au début de chaque ligne sélectionnée.

L'exécution de la commande "Bloc de commentaires Bloc de commentaires" ou l'utilisation du raccourci clavier "Ctrl+/" insère les symboles de commentaires d'une ligne à la position indiquée :

//---

Si la commande "En-tête de la fonction En-tête de la fonction" ou le raccourci clavier "Ctrl+." sont utilisés, le bloc de commentaires de fonction sera alors inséré à la position indiquée :

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

Fonctions Supplémentaires pour l'Édition du Code

Le sous-menu "Advanced" du menu "Edition" contient plusieurs commandes facilitant l'édition du code source :

  • Increase Line Indent (Augmenter l'Indentation de la Ligne) Increase Line Indent – cette commande permet d'insérer trois espaces (ou une tabulation) au début des lignes sélectionnées. Pour insérer des espaces sur une ligne, placez le curseur au début de la ligne et exécutez cette commande (ou appuyez sur la touche "Tab"). Pour insérer des espaces sur plusieurs lignes, sélectionnez les lignes entièrement.
  • Decrease Line Indent (Diminuer l'Indentation de la Ligne) Decrease Line Indent – cette commande supprime trois espaces (ou une tabulation) au début des lignes sélectionnées. . La même action peut être effectuée en utilisant le raccourci clavier "Tab+Shift".
  • Mettre en Majuscules Mettre en Majuscules – cette commande transforme en majuscules toutes les lettres de la phrase sélectionnée. La même action peut être effectuée en utilisant le raccourci clavier "Ctrl+Shift+U".
  • Mettre en Minuscules Mettre en Minuscule – cette commande transforme en minuscules toutes les lettres de la phrase sélectionnée. La même action peut être effectuée en utilisant le raccourci clavier "Ctrl+U".

Travailler avec les Marque-pages

Les marque-pages permettent de marquer des lignes de code désirées pour permettre une navigation plus facile dans un fichier. Les commandes permettant de travailler avec les marque-pages sont situées dans le sous-menu "Marque-pages" du menu "Edition", dans la barre d'outils "Standard" et dans le menu contextuel du texte. Les commandes suivantes sont disponibles pour travailler avec les marque-pages dans MetaEditor :

  • Marque-page Marque-page – active ou désactive un marque-page sur la ligne courante du fichier édité, suivant son état actuel. La même action peut être effectuée en utilisant le raccourci clavier "Ctrl+F2" ;
  • Marque-page suivant Marque-page suivant – déplace le curseur jusqu'au prochain marque-page dans le fichier de code source actuel. La même action peut être effectuée en utilisant le raccourci clavier "F2" ;
  • Marque-page précédent Marque-page précédent – déplace le curseur au niveau du marque-page précédent dans le fichier de code source actuel. La même action peut être effectuée en utilisant le raccourci clavier "Shift+F2" ;
  • Effacer tous les marque-pages Effacer tous les marque-pages – supprime tous les marque-pages du fichier courant. La même action peut être effectuée en utilisant le raccourci clavier "Ctrl+Shift+F2".

MetaEditor inclut la possibilité de travailler des marque-pages nommés - ce sont les marque-pages ayant un identifiant composé d'un chiffre. Pour définir ce genre de marque-pages, appuyez sur une touche de 0 à 9 en maintenant la touche "Ctrl" enfoncée. Pour se rendre à une marque-page nommé précédemment, appuyez sur la touche du chiffre correspondant en maintenant la touche "Alt' enfoncée. Les marque-pages nommés améliorent encore la navigation au travers du code source.

Passer à la Ligne

Pour se rendre rapidement à une ligne de code du fichier actuel, vous pouvez utiliser la commande "Passer à la Ligne Passer à la ligne" du menu "Edition" ou de la barre d'outils "Standard". La fenêtre suivante s'ouvre alors dès que cette commande est exécutée :

Passer à la Ligne

L'intervalle de lignes contenant le code du fichier est spécifié dans la fenêtre. Pour vous rendre à une ligne, vous devez indiquer son numéro et appuyer sur le bouton "OK".

Snippets

Pour faciliter l'écriture de code, MetaEditor inclut la possibilité d'insérer des extraits de code (snippet) – des fragments de code décrivant un élément de structure du langage MQL4/MQL5. Pour insérer un snippet, vous devez utiliser un mot-clé spécial. Le curseur changera alors en Un snippet peut être inséré, ce qui signifie qu'un snippet peut être inséré. L'étape suivante est d'appuyer sur la touche "Tabulation".

Par exemple, pour insérer une déclaration de classe, tapez le mot-clé "class" et appuyez sur la touche "Tabulation" :

Exemple de snippet

Le mot-clé sera alors remplacé avec une déclaration de classe. Pour se déplacer parmi les champs actifs d'un snippet (dans ce cas, ce sont le nom, le constructeur et le destructeur d'une classe), utilisez les touches "Tabulation" et "Shift+Tabulation".

Si vous modifiez un champ actif, les autres champs du snippet seront également changés automatiquement. Par exemple, si vous modifiez le nom de la classe, les noms du destructeur et du constructeur seront changés automatiquement ; si vous changez le nom d'une variable dans l'une des expressions d'un opérateur "for", les noms des variables dans les autres expressions seront également changés.

Le système des snippets reconnaît les structures, les classes, les énumérations, les méthodes et les fonctions si vous utilisez le raccourci clavier "Ctrl+Enter". Pour cela, le curseur doit être placé dans la description de l'élément de structure correspondant. Dès que ce raccourci-clavier est utilisé, l'utilisateur sera capable de se déplacer parmi les membres (pour les classes, les structures et les énumérations) et les arguments (pour les méthodes et les fonctions) en utilisant les touches "Tabulation" et "Shift+Tabulation" ; il sera également capable de les modifier ensemble tel que décrit ci-dessus.

Les snippets suivants sont actuellement supportés :

Mot-clé

Valeur

#import

Déclaration d'un import.

OnBookEvent

Gestion de l'évènement OnBookEvent.

OnCalculate

Gestion de l'évènement OnCalculate.

case

Le sélecteur "case".

OnChartEvent

Gestion de l'évènement OnChartEvent.

class

Déclaration d'une classe.

OnDeinit

Gestion de l'évènement OnDeinit.

do

Déclaration d'une boucle "do while".

enum

Déclaration d'une énumération.

for

Déclaration d'une boucle "for".

if

Déclaration d'une condition "if".

else

Déclaration d'une condition "else".

OnInit

Gestion de l'évènement OnInit.

OnStart

Gestion de l'évènement OnStart.

struct

Déclaration d'une structure.

switch

Le sélecteur "switch".

OnTester

Gestion de l'évènement OnTester.

OnTesterInit

Gestion de l'évènement OnTesterInit.

OnTesterPass

Gestion de l'évènement OnTesterPass.

OnTesterDeinit

Gestion de l'évènement OnTesterDeinit.

OnTick

Gestion de l'évènement OnTick.

OnTimer

Gestion de l'évènement OnTimer.

OnTrade

Gestion de l'évènement OnTrade.

OnTradeTransation

Gestion de l'évènement OnTradeTransation.

while

Déclaration d'une boucle "while".

Insérer des Ressources

Les commandes du menu "Edition–Insérer" permettent d'insérer rapidement des ressources et donc de faciliter le développement 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 #resrouce

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>

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 programme                               |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Un fichier modèle (template) comme un 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 le texte et exécutez l'une des commandes du menu Edition–Convertir menu:

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