Please accept YouTube cookies to play this video. By accepting you will be accessing content from YouTube, a service provided by an external third party.
If you accept this notice, your choice will be saved and the page will refresh.
Avec MQL5 pour Metatrader5, nous créons un conseiller expert qui est capable d’utiliser un stop suiveur d’achat qui est calculé sur la base d’une valeur SMA pour une moyenne mobile simple de 500 bougies.
Dans cette vidéo, nous allons créer un conseiller expert qui est capable de créer un stop suiveur d’achat simple qui est basé sur une valeur de moyenne mobile simple, alors découvrons comment faire cela avec mql5.
Pour commencer, cliquez sur une petite icône ici ou appuyez sur F4 sur votre clavier, maintenant vous devriez voir la fenêtre Metaeditor et ici vous voulez cliquer sur fichier, nouveau fichier, conseiller expert à partir d’un modèle, continuer, j’appellerai ce fichier simple sma buy trailing stop, cliquez sur continuer, continuer et terminer.
Maintenant vous pouvez supprimer tout ce qui se trouve au-dessus de la fonction ontick et les deux lignes de commentaire ici.
Tout d’abord, nous voulons inclure le fichier trade dot mqh, celui-ci est livré avec mql5 et fournit des fonctions de trading simplifiées ensuite nous créons une instance de la classe ctrade et l’appelons trade.
À l’intérieur de la fonction ontick, nous commençons par une variable double statique appelée valeur de la moyenne mobile du dernier arrêt, nous continuons en calculant le prix demandé et le prix offert qui peut être fait en utilisant normalize double, symbol info double pour le symbole actuel sur le graphique et le deuxième paramètre est symbol underscore ask ou underscore bid, avec normalize double et underscore digits nous nous assurons de calculer le bon nombre de chiffres derrière le point.
Pour avoir quelque chose que nous pouvons utiliser pour le stop suiveur, nous devons ouvrir une position de test, donc chaque fois que le total des positions est inférieur à un ou en d’autres termes lorsque nous n’avons pas de position ouverte, nous utilisons trade dot buy pour acheter dix micro-lots. Cela ouvrira une nouvelle position et c’est à ce moment que nous fixons la valeur de la moyenne mobile du dernier stop à zéro car pour chaque position nous avons besoin d’une nouvelle valeur.
Continuons et créons un tableau pour la moyenne mobile, maintenant nous voulons trier le tableau de la bougie actuelle vers le bas, cela est fait en utilisant array set as series pour notre tableau de moyenne mobile que nous avons créé ici.
Définissons maintenant les propriétés, nous voulons utiliser la fonction ima pour le symbole actuel sur le graphique et la période actuellement sélectionnée sur ce graphique, nous voulons l’utiliser pour cinq cents bougies à partir de la bougie actuelle zéro, nous n’utilisons pas de valeur de décalage et nous utilisons le mode underscore sma parce que cela signifie moyenne mobile simple et le calcul doit être effectué sur la base du prix de clôture.
Ensuite, nous utilisons le tampon de copie pour remplir notre tableau de moyenne mobile selon la définition que nous avons créée ici pour le tampon zéro, nous commençons par la bougie zéro – c’est la bougie actuelle – et nous copions les valeurs pour trois bougies et les stockons dans le tableau.
Et pour obtenir la valeur dont nous avons besoin, nous regardons simplement la valeur de la première bougie dans notre tableau de moyenne mobile et nous assignons la valeur à la valeur de moyenne mobile d’arrêt.
Maintenant que nous avons fait cela, nous pouvons vérifier si la valeur de la moyenne mobile d’arrêt est inférieure au prix d’achat actuel et la deuxième condition sera si la valeur de la moyenne mobile d’arrêt est supérieure à la dernière valeur de la moyenne mobile d’arrêt et si c’est le cas, nous voulons appeler une fonction appelée check sma buy trailing stop, nous passerons le prix d’achat et la valeur du tableau de la moyenne mobile d’arrêt comme paramètres ici et ensuite nous voulons affecter la valeur actuelle pour le prochain appel de fonction, donc nous stockons la valeur de la moyenne mobile d’arrêt dans la variable appelée last stop moving average value. N’oubliez pas qu’il s’agit d’une variable statique qui conservera les valeurs à l’intérieur de cette fonction, cette fonction n’existe pas encore, nous devons donc la créer maintenant, le nom de la fonction sera check sma buy trailing stop, nous utilisons void car nous n’utilisons pas de valeur de retour ici et nous passons le ask price et la valeur de la moyenne mobile d’arrêt comme paramètres.
Maintenant, utilisons une boucle for pour parcourir toutes les positions ouvertes, nous utilisons position get symbol pour obtenir le symbole de la position actuelle car nous devons vérifier si le symbole actuel sur le graphique est égal au symbole de la position et si c’est vrai, nous obtenons le ticket de position en utilisant la fonction position get integer position underscore ticket.
Pour obtenir le stop loss actuel, nous utilisons position get double et le paramètre est position underscore sl et si le stop loss actuel est inférieur à la valeur de la moyenne mobile d’arrêt, nous voulons le changer, ce qui est fait en utilisant trade position modify pour le ticket de position actuel et nous passons la valeur de la moyenne mobile d’arrêt comme deuxième paramètre. Le troisième paramètre serait utilisé lorsque nous voudrions changer la valeur du take profit mais ce n’est pas le cas.
Enfin, fermez toutes les boucles et fermez également la fonction que nous avons créée et c’est tout.