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 Expert Advisor pour déplacer un stop suiveur de vente avec l’indicateur Bollinger Bands…
Dans cette vidéo, nous allons créer un conseiller expert capable de déplacer un stop suiveur de vente pour la bande de bollinger supérieure, alors découvrons comment faire cela avec mql5.
Pour commencer, cliquez sur la 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 bollinger bands sell 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 commentaires ici.
Nous commençons par une instruction include pour inclure le fichier trade dot mqh, celui-ci nous donnera quelques fonctions de trading simples, il contient la classe ctrade et nous allons créer une instance de ctrade qui sera appelée trade.
À l’intérieur de la fonction ontick, nous voulons créer une double variable statique, appelée valeur des bandes de bollinger du dernier arrêt. Nous allons l’utiliser plus tard pour déplacer notre trailing stop et comparer la valeur actuelle avec la dernière valeur. Nous devons également calculer le cours vendeur et le cours acheteur, ce qui est fait en utilisant symbol info double pour le symbole actuel sur le graphique, nous utilisons soit symbol ask soit symbol underscore bid et avec normalize double et underscore digits nous calculons automatiquement le bon nombre de chiffres derrière le point en fonction de la paire de devises qui peut être de trois chiffres ou de cinq chiffres.
Et pour déplacer notre stop suiveur de vente, nous devons avoir une position de test, donc si le total des positions est inférieur à un, nous utilisons trade dot sell pour vendre dix micro-lots et maintenant je vais définir la valeur des bandes de bollinger du dernier stop à une valeur élevée irréaliste de mille, nous pourrions également la définir à zéro ici mais nous aurions besoin d’ajouter une autre condition plus tard et pour cet exemple simple, c’est suffisant.
Maintenant, créons un tableau de bandes supérieures et un tableau de bandes inférieures. En fait, nous avons une bande intermédiaire mais nous n’en avons pas besoin, alors utilisons array set as series pour la bande supérieure et la bande inférieure pour trier les deux tableaux à partir de la bougie actuelle vers le bas.
Maintenant nous pouvons définir les bandes de bollinger en utilisant la fonction ibands incluse pour le symbole actuel sur le graphique et la période actuellement sélectionnée sur ce graphique, nous voulons la calculer pour vingt bougies, n’utilisez pas de valeur de décalage, la valeur de déviation est de deux et nous allons calculer les résultats sur la base du prix de clôture.
Avec le tampon de copie nous pouvons maintenant remplir notre tableau selon la définition des bandes de bollinger que nous avons créé ici, nous allons le faire pour le tampon un et le tampon deux. Le tampon un est pour le tableau de la bande supérieure, nous commençons avec la bougie zéro et nous voulons copier les valeurs pour trois bougies et les stocker dans le tableau de la bande supérieure ou dans ce cas les stocker dans le tableau de la bande inférieure et cela permet de calculer la dernière valeur de la bande supérieure et la dernière valeur de la bande inférieure en regardant simplement la bougie un dans le tableau de la bande supérieure et dans le tableau de la bande inférieure.
Continuons avec les conditions parce que si la valeur de ma dernière bande supérieure est supérieure au prix demandé et si la valeur de ma dernière bande supérieure est inférieure à la valeur du dernier stop des bandes de bollinger, c’est à ce moment qu’il est temps de vérifier le trailing stop des bandes de bollinger, nous passons le paramètre de la valeur de ma dernière bande supérieure ici et ensuite, nous assignons la valeur de la dernière bande supérieure à la variable de la valeur du dernier stop des bandes de bollinger parce que la prochaine fois que nous appelons la fonction, la valeur actuelle sera la dernière.
Maintenant, continuons avec la fonction définie par l’utilisateur, nous utilisons void parce que nous n’avons pas besoin d’une valeur de retour, le nom est check bollinger sell trailing stop, c’est le paramètre que nous avons passé et maintenant nous utilisons une boucle for pour passer par toutes les positions ouvertes. Position get symbol nous donnera la paire de devises pour la position actuelle.
Maintenant, nous devons vérifier si le symbole actuel sur le graphique est le même que le symbole de la position et peut-être que nous devrions fermer la fonction ontick ici, donc continuons avec le ticket de position, nous l’obtiendrons en utilisant position get integer et le paramètre est position underscore ticket. Répétons cela pour le stop loss actuel ! 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 supérieur à la valeur de ma dernière bande supérieure ou si nous n’avons pas de stop loss du tout – dans ce cas, le stop loss actuel serait zéro – c’est alors que nous voulons utiliser trade dot position modify pour le ticket de position actuel et définir le stop loss à la valeur de ma dernière bande supérieure, la valeur du take profit ne sera pas modifiée et n’oubliez pas cette condition ici car lorsque vous ne définissez pas de stop loss, il ne peut jamais être supérieur à cette valeur et si vous oubliez de vérifier cette condition, le stop loss ne sera jamais déplacé.