Créer un script en MQL4 dans MetaTrader
Leçon de trading automatique n°5
Table des matières
- 1 Leçon de trading automatique n°5
- 2 Où se trouvent les scripts dans MetaTrader ?
- 3 Comment utiliser un script MetaTrader ?
- 4 Que peut faire un script MQL4 ?
- 5 Créer un premier script en MQL4
- 6 Le code du script MQL4
- 7 Explication du code du script
- 8 Qu’est-ce que cela donne ?
- 9 Pour aller plus loin en MQL4
- 10 Une formation en vidéo
- 11 Exemple d’outil en MQL
Créer un script en MQL4
Dans cette 5ème leçon sur le trading automatique et la réalisation de robot de trading en MQL4 nous allons étudier la création de scripts MQL4 dans MetaTrader.
Je reprends un peu la publication d’articles. J’ai un peu plus de temps car j’ai terminé la réalisation de ma formation à l’analyse technique et au trading des pépites. Le développement de robots de trading me plaît bien, donc je vais multiplier les cours sur ce sujet.
Mais revenons à nos moutons.
Qu’est-ce qu’un script MQL4 ?
Un script est un bout de code qui permet d’exécuter une tâche automatiquement ou semi-automatiquement, comme ouvrir un ordre, déplacer un Stop-Loss, etc.
Où se trouvent les scripts dans MetaTrader ?
Les scripts sont rassemblés dans le dossier experts\scripts de l’installation de votre MT4.
Dans l’interface graphique de MT4 ils se trouvent dans le nœud Scripts du cadre Navigateur (Ctrl+N).
Comment utiliser un script MetaTrader ?
Pour utiliser un script écrit en MQL4 et présent dans MetaTrader, il sufit de le sélectionner avec la souris et de le glisser-déposer sur le graphique. On peut aussi, pour certains double-cliquer dessus.
Que peut faire un script MQL4 ?
Un script peut réaliser automatiquement beaucoup de choses pour vous, parmi lesquelles :
- détecter l’endroit où il a été déposé et récupérer le prix et la date
- écrire du texte ou tracer des objets sur le graphique
- écrire ou lire dans un fichier
- passer des ordres
- modifier un ordre, notamment son Stop-Loss ou Target Price
- envoyer un email…
Créer un premier script en MQL4
Nous allons ensemble créer un premier script en MQL4. Ce script sera tout simple.
Il va afficher une fenêtre contenant le prix et afficher dans le graphique un libellé contenant les mêmes informations.
Le code du script MQL4
Voici tout de suite le code. Je l’explique plus après.
#property copyright "Copyright © 2013 Trading Attitude" #property link "http://www.trading-attitude.com" #include <WinUser32.mqh> #include <stdlib.mqh> int start() { Alert("--- START "+WindowExpertName()+" "+Symbol()); int digits = MarketInfo(Symbol(),MODE_DIGITS); double value = NormalizeDouble(WindowPriceOnDropped(),digits); datetime dropTime=WindowTimeOnDropped(); Alert("--- Value= "+value + " at " + TimeToStr(dropTime)); if(!ObjectCreate("my text object", OBJ_TEXT, 0, dropTime, value)) { Print("error: can't create my text object! code #",GetLastError()); return(0); } ObjectSetText("my text object", "Value= "+value + " at " + TimeToStr(dropTime), 12, "Times New Roman", White); return(0); }
Pour le créer, ouvrez MetEditor et créez un nouveau fichier.
Choisissez le type Script (nous avons déjà crée un Expert Advisor dans la leçon précédente).
Collez le code en remplacement du contenu généré automatiquement.
Explication du code du script
Les deux instructions include permettent d’ajouter des librairies nécessaires. Il faut les ajouter, c’est tout !
La fonction Alert ouvre une fenêtre dans laquelle on affiche un texte. En s’ouvrant elle fait un petit bruit (assez stressant 🙂 ).
La variable digits permet de calculer le prix. Les brokers n’affichent pas tous le même nombre de décimales. digits indique le nombre de décimales.
La fonction WindowPriceOnDropped() récupère le prix où a été déposé le script (pointeur de la souris).
La fonction NormalizeDouble() le transforme en prix à la bonne « échelle ».
WindowTimeOnDropped() renvoie la date et l’heure (et les minutes) sous la forme d’une variable de type datetime.
TimeToStr() formatte ce type en une chaîne compréhensible (format date classique).
À noter que pour écrire une date en dur on peut utiliser la notation : datetime tCurrentDate = D’2013.05.23 08:00′;
ObjectCreate() crée un objet. ObjectSetText() permet d’afficher le texte avec une police de caractère, une taille et une couleur.
Les paramètres de ObjectCreate() sont, dans l’ordre :
- le nom (référence) de l’objet
- le type d’objet (texte, ligne, …)
- la fenêtre (ici 0 fait très bien l’affaire)
- la date (abscisse)
- le prix (ordonnée)
GetLastError() donne la dernière erreur.
Qu’est-ce que cela donne ?
Quand on glisse et dépose le script sur le graphique. On obtient les deux choses suivantes :
- une popup
- un texte affiché à l’endroit où le script a été déposé.
Pour aller plus loin en MQL4
Si vous désirez vous lancer, voici deux livres complets sur la programmation de robots de trading en MQL4.
Une formation en vidéo
Notre partenaire offre une formation en vidéo sur MQL4. Ne ratez pas cette occasion de vous enrichir.
Exemple d’outil en MQL
Quand on trade on se tape le spread. Mais il est possible de développer un EA qui permet de trader à moindre spread. Tout en réduisant son risque. Lisez mon article à ce sujet.
Comments ( 8 )