Les instructions de base de MQL4
Apprenez à coder en MQL4
Table des matières
leçon n°2 : les instructions de base
Nous voici dans la seconde leçon sur MQL4. Nous allons aborder les mots-clés de base.
Ces mots-clés sont similaires à ceux du langage C. Ils permettent de coder un programme, un algorithme, qui sera la base de votre Expert Advisor.
Attaquons tout de suite.
Les tests
On appelle test un embranchement dans l’algorithme du programme. En clair, c’est une instruction du genre : si … sinon …
On l’écrit :
if (ma_variable == valeur) { ... } else { ... }
Les … sont d’autres instructions. Si ma_variable vaut valeur, le premier bloc d’instructions est exécuté, sinon c’est le second.
Notez que l’égalité se note ==. Le signe = tout seul est une affectation. Par exemple, maVar = 2; affect la valeur 2 à la variable maVar.
À la place de == on peut utiliser <=, >=, >, < ou != (non égal à).
Les accolades ne sont pas nécessaires, mais je vous conseille de toujours les mettre. Cela renforce la lisibilité et cela vous évitera quelques bugs.
Vous noterez qu’il ne faut pas mettre de point-virgule après l’accolade fermante.
On peut aussi utiliser des fonctions dans le test : if (maFonction() > 3) {…}.
Dans le cas d’expressions booléennes on peut utiliser l’opérateur ! pour obtenir la négation :
bool done = false; if (!done) {...}
Les boucles
Une boucle va permettre d’exécuter un bloc d’instructions plusieurs fois.
La boucle for
Par exemple :
double maVar2 = 0; for (int i=0;i<10;i++) { maVar2 = maVar2 + i; }
Ce programme va ajouter à la variable maVar2 la valeur de, i variant de 0 à 9 de un en un.
À la fin, maVar2 vaudra 45 (1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 = 45).
La boucle while
On peut obtenir la même chose avec l’instruction while (tant que).
int j = 0; while (j<10) { maVar2 = maVar2 + j; j = j + 1; }
Sortir d’une boucle
Pour sortir d’une boucle avant la fin on peut utiliser l’instruction break.
while (true) { ... if (maVar2 > 10) { break; } }
Ici, on sort de la boucle infinie (while(true)) dès que maVar2 est strictement supérieur à 10.
Attention, while(true) est une boucle infinie. Telle quelle le programme n’en sort jamais.
Passer à l’itération suivante
Si on ne veut pas exécuter le reste du code d’une boucle et passer tout de suite à l’itération suivante (valeur de i suivante), on peut utiliser l’instruction continue.
int maVar2 = 0; for (int i=0;i<10;i++) { maVar2 = maVar2 + i; continue; }
Imbrication
Comme vous l’avez vu, on peut imbriquer les boucles et les tests autant de fois que l’on veut.
Pour des raisons de lisibilité du code limitez-vous à 2 ou 3 niveaux max.
Voilà, c’est a peu près toutes les instructions de base de MQL4 dont vous aurez besoin pour créer un Expert Advisor dans MetaTrader.
Le reste ce sont des instructions propres à MQL4 qui servent à passer des ordres. Nous les aborderons dans une leçon prochaine – dans pas très longtemps.
Exécution de votre premier programme MQL4
Nous allons maintenant créer un petit programme et l’exécuter.
Créez un nouvel EA dans MetaEditor (voir comment faire dans la leçon 1). Nommez-le lecon2.
Effacez son contenu et collez à la place :
#property copyright "Copyright © 2013 Trading Attitude" #property link "http://www.trading-attitude.com" double maVar = 2.0; bool done = false; int start() { if (!done) { int maVar2 = 0; for (int i=0;i<10;i++) { maVar2 = maVar2 + i; continue; } Print("maVar2=" + maVar2); int j = 0; while (j<10) { maVar2 = maVar2 + j; j = j + 1; } Print("maVar2=" + maVar2); done = true; } return(0); }
Sauvegardez le fichier (dans MetaEditor).
Compilez-le en cliquant sur le bouton Compile.
Vérifiez en bas de MetaEditor qu’il n’y a pas d’erreur de compilation.
Maintenant le fichier est compilé sous la forme d’un fichier lecon2.ex4.
Vous le trouverez dans le répertoire C:\Program Files\MetaTrader – AAAFx\experts
Maintenant allez dans MetaTrader. Grâce au menu Affichage / Cadre Stratégies (ou Ctrl + R) affichez l’onglet stratégies.
Dans la liste déroulante Expert Consultant, choisissez lecon2. Les autres paramètres importent peu.
Cliquez ensuite sur le bouton « Valeur initiale ».
Lorsque vous entendez le bruit de canard, le programme est terminé.
Cliquez sur l’onglet « Journal ».
Vous devriez voir dans le journal le résultat des deux appels de la fonction « Print()« .
Analyse du code de l’expert advisor
Chaque fois qu’une cotation arrive dans votre terminal MetaTrader (on appelle cela un Tick) la fonction start() est appelée.
La variable globale done, un booléen (donc, qui prend la valeur true ou false), permet de n’exécuter le code qu’une seule fois.
Donc, la première fois, la boucle « for » est exécutée. Elle imprime ensuite dans le journal le résultat du calcul.
La fonction Print
La fonction Print() permet d’afficher dans les logs une chaîne de caractères.
Le signe + permet la concaténation de chaînes de caractères.
Print(« maVar2= » + maVar2);
affichera donc maVar2=45.
Ensuite, le code utilise une boucle « while » pour refaire le calcul. Elle ajoute le résultat au précédent.
On affiche ensuite la valeur.
Et on donne la valeur « true » à la variable « done » de façon à ne plus repasser dans la boucle.
Enfin, on renvoie la valeur 0 grâce à l’instruction « return(0) ».
Il faut bien comprendre que cette fonction « start() » est appelée chaque fois qu’un nouveau prix arrive.
Conclusion
Nous avançons lentement mais sûrement. Vous possédez maintenant les bases du langage.
Nous verrons dans une prochaine leçon comment passer des ordres.
En attendant, n’hésitez pas à poser des questions sur ces deux premières leçons.
Accélérez votre trading grâce à ce robot
Vous voulez sans doute aller plus loin. Voici un robot qui vous permettra d’accélérer votre trading. Tout en réduisant votre risque.
Comments ( 9 )