Guide MetaTrader
Variables langage MQL4
Les variables sont utilisées pour contenir les valeurs requises par l'exécution du programme.
Avant d'être utilisée, une variable doit être déclarée. Si vous essayer d'utiliser une variable avant de l'avoir déclarée, le compilateur vous signalera l'erreur. L'endroit où la variable est déclarée définit sa « portée » (scope en anglais).
Déclaration d'une variable
Une variable est déclarée par son nom, son type et optionnellement sa valeur initiale.
Par exemple :int ma_variable = 0 ;
int définit le type entier pour cette variable.
ma_variable est le nom de la variable.
= 0 assigne la valeur 0 à la variable. Cette partie est optionnelle et l'assignement d'une valeur à une variable peut être fait n'importe quand une fois que celle-ci a été déclarée.
Pour rappel, en MQL4 nous avons les types de données suivants :
- Entiers (int)
- Réels (double)
- Booléen (bool)
- Caractères (int)
- Chaine de caractères (string)
- Couleur (color)
- Date et heure (datetime)
« Portée » d'une variable
Une variable peut avoir une portée globale (pour tout le programme) ou locale à une fonction selon l'endroit où elle est déclarée.
Variable locale
Une variable locale est une variable locale à la fonction à l'intérieur de laquelle elle est déclarée.
Par exemple :double carre(double x)
{
int var1 = 0 ;
Print(var1) ;
return(x*x) ;
}
Dans le cas ci-dessus nous avons deux variables locales. x qui est passée en paramètre de la fonction et var1 qui est déclarée dans le corps de la fonction. Il est à noter que dans le cas de la variable x sa déclaration se fait dans les paramètres de la déclaration de la fonction.
Les variables x et var1 peuvent donc être utilisées dans le corps de la fonction mais par contre sont inconnue pour les autres fonctions. En général il est conseillé de déclarer toutes les variables en début de fonction pour une meilleure lisibilité du code. Néanmoins ceci n'est pas strictement obligatoire tant que la variable est déclarée avant son utilisation.
Un point important est que ces variables sont réinitialisées à chaque appel de la fonction. On ne peut donc pas conserver de valeur entre 2 appels.
Variable globale
Une variable globale est une variable déclarée à l'extérieur de toute fonction (en général au début du programme). Ainsi cette variable n'est pas spécifique à une fonction et peut être utilisée par toutes les fonctions.
Ceci peut s'avérer utile pour partager des informations entre fonctions mais surtout pour conserver des valeurs entre différent appels de la même fonction. Par exemple dans le cas d'un EA la fonction start() est appelée à chaque tick et pour de nombreuses stratégies il est important de pouvoir garder des informations sur ce qu'il s'est passé lors des ticks précédents. Les variables globales sont souvent utilisées dans ce cas là.
Variable globale « extern »
Le mot clé « extern » permet de déclare une variable globale en tant que paramètre accessible à l'utilisateur par le biais de l'interface.
Par exemple si vous déclarez dans un EA :extern string Symbol1 = “EURCHF”;
Ce paramètre apparaitra dans l'onglet des paramètres d'entrées de l'EA et sera donc modifiable par l'utilisateur sans nécessiter de recompilation.

A lire dans le Guide MetaTrader
| MetaTrader : Leçon 1 à 8 |
|---|
|


