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 montrer comment coder une fonction surchargée qui peut prendre différents paramètres…
Dans cette vidéo, nous allons parler de la surcharge de fonction, nous avons une sortie ici qui dit que nous sommes à l’intérieur d’une fonction avec deux paramètres et nous allons créer une autre fonction avec le même nom qui surchargera la première, alors voyons comment nous pouvons le faire 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 file, new file, expert advisor from template, continue, je vais appeler ce fichier simple function overloading, cliquez sur continue, continue et finish.
Maintenant vous pouvez supprimer tout ce qui se trouve au-dessus de la fonction ontick et les deux lignes de commentaires ici.
Dans ce cas, je voudrais créer une fonction personnalisée appelée add values et je veux pouvoir ajouter deux ou trois valeurs.
Pour avoir quelque chose à calculer, nous voulons d’abord obtenir le prix demandé, ce qui est fait en utilisant symbol info double pour le symbole actuel sur le graphique, j’utilise symbol underscore ask et avec normalize double and underscore digits nous laissons Metatrader calculer automatiquement le bon nombre de chiffres derrière le point.
Maintenant, répétons la même chose pour le cours acheteur, c’est égal mais cette fois nous utilisons le symbole underscore bid et un autre nom de variable appelé bid et ma troisième valeur sera la différence, c’est simplement une valeur double qui est calculée et appelée différence et c’est le cours vendeur moins le cours acheteur.
J’aimerais ajouter les valeurs du cours vendeur et du cours acheteur. Je dois donc coder une fonction appelée add values (ajouter des valeurs), qui prend le cours vendeur et le cours acheteur comme paramètres.
Qu’est-ce que cela signifie ?
Eh bien, vous avez peut-être vu d’autres fonctions où vous devez passer des paramètres comme celle-ci et lorsque vous enlevez la partie derrière le nom de la fonction, vous verrez qu’il s’agit d’une fonction appelée one of two et qu’il s’agit en fait d’une fonction surchargée, nous avons deux façons différentes de l’utiliser et c’est également ce que nous voulons faire ici dans cet exemple, j’ai passé deux paramètres, alors commençons par la première version de la fonction surchargée.
Je vais l’appeler add values, elle retourne une valeur double et prend deux paramètres, un pour la valeur ask que nous avons passé ici et le second pour la valeur bid que nous avons passé comme second paramètre.
Utilisons une instruction print qui affichera dans notre journal la fonction interne avec deux paramètres.
Maintenant vient un calcul de base où la valeur de retour sera égale à la valeur de demande plus la valeur d’offre et finalement nous retournerons la valeur calculée à notre fonction principale ici.
ajoutons une déclaration de commentaire ici pour que nous ayons une sortie sur le graphique disant que le résultat est suivi de la valeur du résultat calculé et c’est tout.
Je peux maintenant compiler le code mais lorsque j’enlève les paramètres ici, je n’ai qu’une seule version de ma fonction, jusqu’à présent elle n’est pas surchargée donc créons une nouvelle version, c’est le même nom de la fonction, c’est le même type de retour mais celle-ci peut prendre trois paramètres, une fois de plus nous ajoutons la déclaration print mais cette fois elle dira inside function with three parameters, cette fois nous calculons la valeur de retour en ajoutant le premier, le deuxième et un troisième paramètre et le reste est comme dans la fonction ci-dessus.
Maintenant, recompilons le code et maintenant, lorsque je retire les paramètres ici, vous pouvez voir qu’il est surchargé, nous pouvons soit utiliser celui qui prend la valeur de la demande et la valeur de l’offre ou lorsque nous cliquons sur la description surchargée ici, nous pouvons également utiliser l’autre qui prendra la valeur de la demande, la valeur de l’offre et la valeur de la différence.
Eh bien, si vous ne comprenez pas ce que fait tout ce code ici ou si c’était trop rapide pour vous, vous devriez peut-être regarder d’abord les autres vidéos de cette série de vidéos de base ou peut-être même le cours premium sur notre site Web pourrait être intéressant pour vous. Si vous êtes déjà membre du cours premium et si vous avez une question comme celle-ci qui devrait être transformée en vidéo, envoyez-moi un e-mail, pour l’instant, nous cliquons sur le bouton de compilation et si nous n’avons pas d’erreurs, nous pouvons cliquer sur le petit bouton ici pour retourner à Metatrader.
Et dans Metatrader, nous cliquons sur view, strategy test ou nous appuyons sur control et r, veuillez choisir le nouveau fichier simple function overloading dot ex5, marquez l’option pour le mode visible ici et commencez un test.
Ici nous voyons que nous avons une valeur de retour calculée et quand nous cliquons sur l’onglet journal nous voyons que nous sommes à l’intérieur de la fonction qui prendra deux paramètres, maintenant retournons dans Metaeditor et ajoutons le troisième paramètre ici, maintenant je recompile le code, redémarre le test et cette fois il dit que nous sommes à l’intérieur de la fonction avec trois paramètres.
Les fonctions surchargées peuvent être très utiles dans les systèmes complexes et dans cette petite vidéo vous avez appris à créer une fonction surchargée pour Metatrader 5 et vous l’avez codée vous-même avec quelques lignes de code mql5.