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 qui est capable d’ouvrir des positions d’achat et de vente basées sur les valeurs extrêmes d’un oscillateur…
Dans cette vidéo, nous allons créer un Conseiller Expert qui est capable d’ouvrir des positions d’achat et de vente basées sur les valeurs minimales ou maximales de cet oscillateur ici. Nous allons donc découvrir comment faire cela avec MQL5. Pour ce faire, veuillez cliquer sur un 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 fichier, Expert Advisor à partir du modèle continuer. Je vais appeler ce fichier simple IOBVEA, cliquez sur continuer, continuer et terminer.
Maintenant vous pouvez supprimer tout ce qui se trouve au-dessus de la fonction ontick et supprimons également les deux lignes de commentaires ici. Nous commençons par une instruction include pour inclure le fichier Trade.mqh. Celui-ci est livré avec quelques fonctions de trading simplifiées et il permet de créer une instance de la classe Ctrade. Celle-ci s’appelle Trade et nous allons l’utiliser pour ouvrir des positions. À l’intérieur de la fonction ontick, nous voulons créer une variable de type chaîne appelée signal, mais nous n’attribuons pas de valeur ici.
Maintenant, nous voulons calculer le cours vendeur et le cours acheteur. Cela se fait en utilisant Symbolinfodouble pour le symbole actuel sur le graphique. Nous utilisons soit le symbole underscore ask, soit le symbole underscore bid. Et avec symbolinfodouble et underscore digits, nous nous assurons que nous calculons automatiquement le bon nombre de chiffres derrière le point. Créons un tableau pour les données de prix et utilisons ArraySetAsSeries pour le trier de la bougie actuelle vers le bas.
Et maintenant, nous utilisons IOBV pour le symbole actuel sur le graphique et la période actuellement sélectionnée sur ce graphique. Le troisième paramètre est le volume tick. Et cette fonction nous donnera l’indicateur de volume onbalance, qui est un oscillateur. Nous utilisons copybuffer pour copier les données dans notre tableau selon la définition que nous avons créée ici. Nous voulons le faire pour le tampon zéro. Nous commençons avec la bougie actuelle zéro et copions les données pour 100 bougies pour les stocker dans notre tableau.
Maintenant, nous pouvons calculer la valeur actuelle en regardant simplement dans la bougie zéro du tableau. Calculons le numéro de la bougie qui contient la valeur la plus élevée. Pour ce faire, nous utilisons le tableau maximum. Le tableau maximum fournira le numéro de la bougie dans le tableau actuel, en partant de la bougie zéro pour l’ensemble du tableau qui contient la valeur la plus élevée. Il existe une fonction similaire appelée array minimum. Elle fera la même chose et calculera le numéro de la bougie avec la valeur minimale. Et pour obtenir cette valeur, nous devons obtenir la valeur du numéro de la bougie que nous venons de calculer.
Répétons cela pour la valeur minimale afin que nous puissions définir le signal. Car si la valeur actuelle est supérieure ou égale à la valeur maximale, nous considérons qu’il s’agit d’un signal d’achat. Nous attribuons donc le mot achat à notre signal. Sinon, si la valeur actuelle est inférieure ou égale à la valeur minimale, nous considérons qu’il s’agit d’un signal de vente et nous attribuons le mot vente à notre signal. Donc, si notre signal est égal à vendre et que la valeur de retour pour PositionsTotal est inférieure à un, cela signifie que nous n’avons pas d’ordres ouverts et un signal de vente.
Et c’est à ce moment-là que nous utilisons trade.Sell pour vendre 10 Microlot. Sinon, si le signal est égal à acheter et que nous n’avons pas de positions ouvertes, c’est à ce moment-là que nous utilisons trade.Buy pour acheter 10 Microlot. Enfin, nous voulons utiliser l’instruction comment pour afficher les valeurs actuelles max et MIN directement sur notre graphique. C’est donc à peu près tout. Si cela a été trop rapide pour vous ou si vous n’avez aucune idée de ce que fait tout le code ici, peut-être voulez-vous regarder l’une des autres vidéos de la série de vidéos de base.
Ou peut-être même que le cours Premium sur notre site Web pourrait être intéressant pour vous. C’est là que vous pouvez également trouver un lien pour les cours qui contiennent les codes sources ici. Pour l’instant, cliquons sur Affichage, barre d’outils et cliquons sur compiler ou appuyons sur F7. Cela devrait fonctionner sans aucune erreur, et si c’est le cas, vous pouvez cliquer sur un petit bouton ici ou appuyer sur F4 pour revenir à Metatrader. Et dans Metatrader, nous utilisons une petite astuce et cliquons sur insert, indicators, volumes, on balance volume.
Nous allons aller avec les valeurs par défaut. Cliquez sur OK, et voici notre oscillateur. Maintenant, faisons un clic droit dans le graphique, sélectionnons templates, safe template. Et sauvegardons-le sous le nom de tester.tpl . Vous pouvez remplacer le modèle actuel, car tester.tpl est ce que nous verrons dans le prochain test de stratégie, alors faisons-le.
Et cliquez sur View Strategy tester ou appuyez sur Control et R. Choisissez le nouveau fichier, simple, IOBVA .ex5, faites défiler un peu plus bas et activez le mode visuel ici. Et commencez votre test. Nous y sommes, notre Expert Advisor est en cours d’exécution. Vous voyez que j’ai deux oscillateurs de volume en équilibre ici, c’est parce que j’ai écrasé le modèle Tester.tpl et dans cette petite vidéo vous avez appris comment calculer la valeur la plus haute et la plus basse pour 100 bougies d’un oscillateur.
Et vous l’avez codé vous-même avec quelques lignes de code MQL5.