Apprendre à programmer (MQL4 et 5) développer un robot de trading

Apprendre a programmer (programmer en MQL4 – programmer en MQL5)

 

« Un langage de programmation est censé être une façon conventionnelle de donner des ordres à un ordinateur.  »

Les mathématiques sont un langage, mon professeur de maths parlait une langue étrange incompréhensible et merveilleuse….je l’admirait !

Je vous propose d apprendre a programmer dans le langage de programmation  de la plateforme Russe Metatrader:  le MQL (Meta Quote Language) ! enfin apprendre à programmer en MQL pour les nuls (que vous n’êtes plus 🙂

Le MQL actuellement dans sa version 5 est un langage dérivé du langage informatique C (développé en même temps que UNIX par Dennis Ritchie et Ken Thompson dans les années 1970) et C++(Créé initialement par Bjarne Stroustrup dans les années 1980).

Les barbus de l’informatique Ken Thompson (à gauche) et Dennis Ritchie (à droite).

Nous allons commencer par le début;) puis voir le mécanisme de passage d ordre de trading en mode automatique.

Les variables sont typées en MQL

Il s’agit de la notion la plus importante en informatique. Avec la capacité de nos ordinateurs actuels les langages ne sont plus typés (javascript) quand il est question d afficher les informations sur les navigateurs.

Revenons à notre sujet :

Une variable est un contenant de donnée. Le MQL est un langage typé; les variables MQL ont un type définis spécifique au moment de leur déclaration, la plupart des instructions (opérations) seront effectuées sur des variables de même type. Le type détermine la taille mémoire en bit (0 ou 1 : le courant passe ou pas) utilisée pour stocker la donnée. Déclarer une variable c’est lui attribuer un nom et un type de donnée à laquelle le nom fait référence. La valeur référencé par le nom de la variable peut évoluer au cours de l’exécution du programme tout en restant dans le même type.

Le 4 juin 1996 la fusée ARIANE 5 à explosée peu de temps (36,7 secondes) après son décollage pour dépassement de capacité d’une variable typée integer dans le programme de contrôle de la trajectoire; les ingénieurs n’avaient pas jugés bon de faire évoluer le programme depuis ARIANE 4. ARIANE 5 accélérait beaucoup plus vite que ARIANE 4 !

Questionnez vous sur les bugs informatique, je pense également aux systèmes de contrôles de vitesses sur les automobiles. La majorité des défaillances informatique proviennent d’une sous estimation de la valeur d’une variable (espace disque et mémoire dépassement de la valeur maximale d’une variable déterminée par son type)

Il y a 6 types de données avec MQL :

  • Int pour Integer c’est un nombre entier

L’intervalle de définition est -2147483648 à +2147483647

Ce type de donnée est utilisé pour les quantités ou actions qui ne peuvent être fractionnées.

 

  • Double c’est un nombre réel

Un nombre réel est composé d’un nombre entier suivi d’un point et de chiffres. Un Int peut être stocké dans un Double.

L’intervalle de définition est -1.7 * e-308 à 1.7 * e+308

Ce type est utile pour travailler avec le cours d’une devise ou désigner un volume en lots fractionnés.

  • Bool il s’agit d’un booléen (vrai ou faux)

Une variable booléenne peut prendre les valeurs : TRUE,True,true,1,FALSE,False,false,0

Ce type est utilisé lors du cheminement logique d’un programme afin de définir quelle action entreprendre lorsqu’une condition est vérifiée ou non

 

  • String pour une chaîne de caractères

Metatrader interprete les chaînes de caractères encadrées par des guillemets « 

 

Cas particulier sur MQL :

\\  pour écrire \

\n Retour à la ligne

\t tabulation

\ » pour écrire le caractère « 

\’ pour écrire le caractère ‘

\r saut à la ligne

 

La taille en caractères des variables de type string ne peut pas dépasser 255 caractères

  • Color c’est couleur

Vous utilisez un nom de couleur prédéfinie (blue,red,green,…)

Vous utilisez l’intensité des 3 couleurs RGB de Red Green Blue

Vous utilisez la valeur entière (décimale ou héxadécimale)

  • DateTime date et heure

La valeur est calculée en secondes écoulées depuis le 1er janvier 1970 à minuit et ne peut aller plus loin que le 31 décembre 2037