Opérations et Expressions en MQL4

Une expression est composée d'une ou plusieurs opérations qui sont les éléments de base.

Les opérations se rangent en plusieurs catégories.

Opérations arithmétiques

Il y a 7 opérations arithmétiques possibles en MQL4

Opérateur

Usage

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

Description

+

3 + 4

adition des 2 nombres

-

3 – 2

-1

soustraction des deux nombres

nombre négatif

*

a * 3

multiplication des 2 nombres

/

6 / 8

Division des deux nombres (attention le résultat de 2 nombres entier sera un nombre entier -> 6/8 = 0 mais 6.0/8.0 = 0.75)

%

25 % 4

Reste de la division pour des nombres entiers (25%4 = 1, 24%4 = 0)

++

a++

Incrémentation = a+1

--

a--

Décrémentation = a-1

Ces différentes opérations peuvent de façon générale être combinées avec ou sans parenthèses selon les règles de précédences décrites plus bas, à l'exception des opérateurs d'incrémentation et de décrémentation. Ceux-ci ne peuvent être combinées avec d'autre opérations et l'expression suivante est invalide: x = (y ++)*2:

Il faut écrire

y++;

x = y*2;

Opérations d'assignement

Il y a 11 opérations d'assignement possibles en MQL4 :

Opérateur

Usage

Description

=

x = y;

assigne la valeur de y à x

+=

x += y;

ajoute la valeur de y à la valeur de x et l'assigne à x

-=

x -= y;

soustrait la valeur de y à la valeur de x et l'assigne à x

*=

x *= y;

multiplie la valeur de y à la valeur de x et l'assigne à x

/=

x /= y;

divise la valeur de x par la valeur de y et l'assigne à x. Si x et y sont des entiers alors la division est une division entière.

%=

x %= y;

assigne le reste de la division entière de x par y à x.

>>=

x >>= 2;

Décale x vers la droite de 2 bits

<<=

x <<= 1;

Décale x vers la gauche de 1 bit

&=

x &= y;

fait un ET logique bit à bit de x et y et l'assigne à x

|=

x |= y;

fait un OU logique bit à bit de x et y et l'assigne à x

^=

x ^= y;

fait un OU EXCLUSIF logique bit à bit de x et y et l'assigne à x

 

Opérations de comparaison

Il y a 6 opérateurs de comparaison. Le résultat de la comparaison est true (vrai) si la condition est vérifiée sinon false (faux).

Opérateur

Usage

Description

==

x == y

compare si x et y sont égaux

!=

x!= y

compare si x et y sont différents

>

x > y

compare si x est supérieur à y

<

x < y

compare si x est inférieur à y

>=

x >= y

compare si x est supérieur ou égal à y

<=

x <= y

compare si x est inférieur ou égal à y

 

Opérations logiques

Il y a 3 opérateurs logiques. Le résultat de l'opération est true (vrai) ou false (faux) d'après la logique définie par l'algèbre de Boole.

Dans les exemples ci-dessous x et y peuvent être des opérations ou expressions. Typiquement ce seront des opérations de comparaison.

Opérateur

Usage

Description

&&

x && y

ET logique: vrai si les 2 conditions x et y sont vraies

||

x|| y

OU logique: vrai si au moins une des 2 conditions x ou y est vraie

!

!x

NON logique: vrai si la condition x est fausse et faux si la condition x est vraie

 

Opérations sur les bits

Ces opérations sont similaires aux opérations logiques mais s'applique non pas à l'ensemble d'une opération ou expression mais aux bits de la valeur d'une variable ou constante. Il est important que les variables utilisées dans ces opérations soient de type entier car la représentation des nombres réels est différente.

Opérateur

Usage

Description

&

x & y

fait un ET bit à bit des 2 valeurs: le résultat est 1 si les 2 bits sont à 1 et 0 sinon.

|

x| y

fait un OU bit à bit des 2 valeurs: le résultat est 1 si au moins un des 2 bits est à 1 et 0 sinon.

^

x^y

fait un OU EXCLUSIF bit à bit des 2 valeurs: le résultat est 1 si un seul des 2 bits est à 1 et 0 sinon.

~

~x

fait un NON bit à bit des 2 valeurs: inverse tous les bits 0/1

>>

x>> 3

décale les bits de x de 3 positions vers la droite. Les bits ajoutés à gauche sont des 0. Chaque décalage équivaut a une division entière par 2.

<<

x<

décale les bits de x de 2 positions vers la gauche. Les bits ajoutés à droite sont des 0. Chaque décalage équivaut a une multiplication par 2.

 

Autres opérations

Il existe 3 autres opérations qui n'appartiennent pas aux catégories citées au dessus et qui sont souvent plutôt considérés comme des éléments de syntaxe même si techniquement ce sont des opérateurs.

Opérateur

Usage

Description

[]

x[2]

x étant un tableau (type array) , l'opérateur [] permet d'atteindre la cellule du tableau dont la valeur est spécifiée (2 dans l'exemple)

()

x()

x étant une fonction, l'opérateur () permet d'appeler la fonction et éventuellement de passer des paramètres

,

x(param1,param2,param3)

x étant une fonction, l'opérateur «,» permet de séparer les paramètres de la fonction et est exécuté de la droite vers la gauche.

 

Règles de précédence

Les opérations citées ci-dessus ont des priorités différentes. Certaines seront exécutées avant d'autres selon leurs priorités relatives si vous n'indiquez pas explicitement dans quel ordre l'expression doit être évaluée. Pour éviter toute confusion il est recommandé d'utiliser des parenthèses comme dans l'exemple suivant: x + y * 2 est équivalent à x + (y * 2) mais la seconde expression est beaucoup plus lisible. Cela est encore plus vrai dans le cas de combinaison entre des opérations de différents types tels qu'arithmétiques et logiques.

Ci-dessous sont listées les opérations par groupe de priorité décroissante (les plus prioritaires en premier). Les opérations appartenant au même groupe sont de priorité équivalente et seront donc évalués de la gauche vers la droite.

Groupe 1: () []

Groupe 2:! ~ -

Groupe 3: * / %

Groupe 4: + -

Groupe 5: << >>

Groupe 6: < > >= <=

Groupe 7: == !=

Groupe 8: &

Groupe 9: ^

Groupe 10: &&

Groupe 11: ||

Groupe 12: = += -= *= /= %= >>= <<= &= |= ^=

Groupe 13: ,

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