Types de données - Langage MQL4

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)

Ces types de données sont très standards sauf «color» et «datetime». Ces types sont en fait gérés en interne comme des entiers, mais ces types ont été définis par souci de clarification.

Type entier

Un entier en MQL4 peut prendre une valeur entre -2147483648 et 2147483647. Le nombre peut débuter par un signe + ou –. Le premier chiffre ne peut être un 0.

MQL4 permet de représenter un entier soit en format décimal soit en format hexadécimal.

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

Format décimal

C'est le format classique. Par exemple 11, -123 sont des entiers au format décimal

Format hexadécimal

C'est le format de représentation en base 16, qui inclus pour cela à la fois les chiffres de 0 à 9 et aussi les lettres de A à F. Par exemple le nombre 31 en base décimale sera représenté 1A en hexadécimal. Pour signaler que la représentation est en hexadécimal le nombre est précédé de 0X ou 0x.

Par exemple: 0X12, 0x2C.

Le mot clé pour ce type est «int».

Type réel

Un nombre réel est un nombre ayant une représentation décimale (en langage courant pouvant avoir des chiffres après la virgule). Comme MQL4 est basé sur la notation US, la virgule est en fait un point!

Un réel en MQL4 peut prendre une valeur entre 2.2 e -308 et 1.8 e 308.

Exemples de nombre réels: 1.2, -0.001, .5

Le mot clé pour ce type est «double».

Type booléen

Une variable booléenne ne peut prendre que deux valeurs: vrai ou faux, bien sur dans leur version anglaise «true» et «false».

Ce type de variable est en général utilisé pour garder en mémoire le fait qu'une certaine opération a été faite ou non.

Les valeurs ci-dessous sont équivalentes:

  • True, true, TRUE, 1
  • False, false, FALSE, 0

Le mot clé pour ce type est «bool».

Type caractère

Un caractère est un des 256 éléments définis dans la table des caractères ASCII (American Standard Code for Information Interchange).

Chaque caractère peut être soit représenté par le caractère lui-même entre guillemets simples soit par son code ASCII au format hexadécimal: par exemple ‘a' ou 0x61.

Un certain nombre de caractères particuliers doivent être précédés du signe .

Note: attention les variables pour les caractères sont déclarées avec le type «int»!

Type chaine de caractères

Une chaine de caractères est une succession de caractères encadrée par des doubles guillemets telle que «bonjour». La longueur maximale d'une chaine de caractères est de 255. Au-delà de 255 la chaine sera de toute façon tronquée à 255.

Si vous désirez insérer un double guillemet dans la chaine de caractère, pour ne pas le confondre avec la fin de la chaine il est nécessaire de mettre le signe devant.

Le mot clé pour ce type est «string».

Type couleur

Le type couleur (mot-clé «color») est utilisé dans MQL4 comme paramètre dans l'affichage d'informations graphiques.

Une couleur peut être représentée de 3 façons différentes.

Représentation par le nom

Cette représentation est de loin la plus pratique et la plus intuitive. La valeur de la couleur correspond à son nom en anglais, la première lettre étant majuscule. Par exemple Blue, Green, Red… La liste des couleurs pouvant être représentées par leur nom est la suivante:

Représentation par un caractère

Cette représentation permet d'avoir plus de couleurs disponibles mais son utilisation est moins intuitive.

Cette représentation débute par le caractère C et ensuite contient les codes rouge, vert, bleu entre guillemets simples et séparés par des virgules. Les codes peuvent être soit en base décimale soit en base hexadécimale.

Par exemple: C'255,255,255' pour le blanc et C'0xFF,0x00,0x00' pour le rouge.

Représentation par un entier

De façon similaire à la représentation par caractère cette représentation permet aussi d'accéder à toutes les couleurs disponibles mais est très peu intuitive.

Si on utilise cette représentation en base hexadécimale le code correspond à 0xBBVVRR, BB étant le code pour le bleu, VV pour le vert et RR pour le rouge. Il est important de noter que l'ordre des couleurs est opposé à l'ordre classique RVB. Par exemple pour le rouge pur on aura 0x0000FF.

Si on utilise cette représentation en base décimale on a simplement la valeur équivalente à la valeur hexadécimale en base décimale. Dans le cas du rouge mentionné au dessus on aura donc comme valeur 255.

Si on désire utiliser cette représentation par entier il vaut mieux utiliser la représentation hexadécimale nettement plus lisible. Par exemple dans le cas du blanc on aura en base hexadécimale 0xFFFFFF et en base décimale 16777215.

Type date et heure

Le type date et heure (mot-clé datetime) est un type spécifique à MQL4 fréquemment utilisé par exemple pour l'utilisation des séries de données ou pour le déclenchement de certaines actions à heure fixe.

La représentation débute par le caractère D puis la date et l'heure au format US entre guillemet simples. Il n'est pas nécessaire de définir tous les champs car ils sont optionnels et on des valeurs par défaut si ils ne sont pas définis. Le plus clair est d'analyser quelques exemples:

D'2008.09.13 14:05:10': ici tout est clair car tous les champs sont définis: 13 septembre 2008 à 14 heures 5 minutes et 10 secondes

D'2008.09.13 14': si les minutes et secondes ne sont pas définies elles sont considérées comme égales à 0 donc 14 heure dans ce cas. Cette règle est aussi valide pour les heures. Si aucune valeur n'est fournie pour les heures minutes secondes alors MQL4 considère que cela correspond à minuit.

Si la date n'est pas fournie la date prise en compte est la date de compilation du programme. Donc

D'13:24:05‘ correspond au jour de la compilation à 13 heures 24 minutes et 5 secondes.

Le cas extrême D'' correspond au jour de la compilation à minuit.

La valeur est représentée en interne par le nombre de secondes écoulées depuis le 1 er janvier 1970 à 0 heure (ce type de représentation n'est valide que jusqu'au 31 décembre 2037!). Cette information est utile car si on veut par exemple vérifier que 2 événements sont séparés par 1 minute on peut vérifier que la différence des variables de type datetime est égale à 60.

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