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.
Cette fois-ci, nous allons coder un Expert Advisor complet et automatisé qui va réellement trader une Moyenne Mobile Simple pour 20 bougies. Il faut environ 5 minutes pour le coder en MQL5 pour Metatrader5…
Dans cette vidéo, nous allons créer un Conseiller Expert simple qui va trader cette Moyenne Mobile. Il s’agit d’une Moyenne Mobile pour 20 bougies, alors découvrons comment faire cela avec MQL5.
Tout d’abord, vous devez cliquer sur le petit bouton ici ou appuyez sur F4 sur votre clavier, maintenant vous devriez voir la fenêtre Metaeditor et ici vous voulez cliquer sur : „Fichier/ Nouveau/ Expert Advisor (modèle)“ à partir du modèle, „Continuer“, je vais appeler ce fichier : „SimpleMovingAverageEA“, 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 commande ici.
Nous commençons par inclure le fichier „Trade.mqh“ qui est livré avec MQL5 et qui fournit des fonctions de trade faciles, donc créons une instance de „CTrade“ qui sera appelée : „trade“ et nous allons l’utiliser pour ouvrir nos positions plus tard.
Comme nous voulons négocier dans les deux sens, nous devons obtenir le cours vendeur et le cours acheteur, ce qui est fait en utilisant la fonction „SymbolInfoDouble“ pour le symbole actuel, pour le cours vendeur nous utilisons „SYMBOL_ASK“ – tout en majuscules – et pour le cours acheteur nous utilisons „SYMBOL_BID“ également en majuscules, j’aime utiliser „NormalizeDouble“ et „_Digits“ pour calculer automatiquement si nous avons une paire de devises à 3 ou 5 chiffres.
Maintenant continuons, nous créons un tableau pour les données de prix qui sera appelé : „PriceInfo“ et nous utilisons la fonction : „MqlRates“ pour le créer, car „MqlRates“ stocke les informations sur les prix, les volumes et le spread.
Maintenant, nous voulons remplir le tableau (PriceInfo) avec des données de prix, ce qui est fait en utilisant „CopyRates“ pour le symbole actuel sur le graphique et la période actuellement utilisée sur ce graphique, en fait cette et cette déclaration sont égales, nous pourrions également utiliser „_Symbol“ et „_Period“, nous commençons avec la bougie actuelle 0 (zéro) et nous voulons copier les données de prix pour 3 bougies et les stocker dans notre tableau d’informations de prix (PriceInfo).
Créons une chaîne de caractères pour le signal qui sera également appelé : „signal“ et nous n’attribuons pas de valeur ici car nous allons la calculer plus tard.
Maintenant, nous avons besoin d’un autre tableau, cette fois pour la moyenne mobile, il sera appelé : „myMovingAverageArray“, alors définissons les propriétés de la moyenne mobile (movingAverageDefinition). Nous utilisons la fonction „iMA“ incluse de MQL5 pour le symbole actuel sur le graphique et la période actuellement sélectionnée sur ce graphique, je veux calculer la moyenne mobile pour 20 bougies dans le passé, c’est une valeur de décalage qui pourrait être utilisée pour déplacer la moyenne mobile vers la droite ou vers la gauche, je ne veux pas l’utiliser donc je sélectionne 0 (zéro), nous voulons calculer une moyenne mobile simple donc nous utilisons „MODE_SMA“ – tout en majuscules – et „PRICE_CLOSE“ également en majuscules est utilisé pour calculer la valeur basée sur le prix de clôture.
Utilisons donc „CopyBuffer“ pour remplir le tableau (myMovingAveargeArray) avec les données du tampon 0 (zéro) – c’est la ligne rouge ici, cet indicateur n’a qu’un seul tampon – nous commençons avec la bougie 0 (zéro) et nous voulons copier les données de prix pour 3 bougies et les stocker dans le tableau de ma moyenne mobile (myMovingAverageArray) selon la définition de la moyenne mobile (movingAverageDefinition) que nous avons créée ici.
Définissons les conditions d’achat, nous voulons vérifier si le prix de clôture de la bougie 1 est supérieur à la valeur de la moyenne mobile de la bougie 1 et si le prix de clôture de la bougie 2 était inférieur à la valeur de la moyenne mobile de la bougie 2, ce serait un croisement et nous voulons maintenant acheter, donc nous attribuons le mot : „acheter“ à notre signal.
Dans l’autre cas, si le prix de clôture de la bougie 1 est maintenant inférieur à la moyenne mobile de la bougie 1 et que le prix de clôture de la bougie 2 était supérieur à la moyenne mobile de la bougie 2 auparavant, cela serait un signal de vente et nous attribuons maintenant le mot : „vendre“ à notre signal, et si notre signal est égal à vendre et que „PositionsTotal“ est inférieur à 1, nous voulons ouvrir une transaction de vente pour 10 micro-lots, sinon si le signal est égal à acheter et que nous n’avons pas de positions, cela signifierait que nous voulons ouvrir une transaction d’achat pour 10 micro-lots. Si cela est trop rapide pour vous, je vous suggère d’aller voir les vidéos de base de MQL5 qui ont été créées auparavant.
Il manque encore une chose, nous avons besoin d’une sortie graphique, donc nous utilisons la fonction „Commentaire“ pour sortir le texte : „Le signal est maintenant :“ et le signal calculé.
C’est tout. Lorsque vous avez terminé, vous pouvez cliquer sur le bouton „Compiler“ ici vous ne devriez pas obtenir d’erreurs et dans ce cas, vous pouvez cliquer sur un petit bouton ici ou appuyer sur F4 pour revenir à Metatrader et dans Metatrader vous voulez cliquer sur : „View/ Strategy Tester“ ou appuyez sur CTRL et R, veuillez choisir le nouveau fichier : „SimpleMovingAverageEA.ex5“, marquez l’option de visualisation ici et commencez votre test.