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 autoriser ou interdire le trading en fonction d’une heure de début et d’une heure de fin. Nous utilisons datetime pour obtenir l’heure actuelle et autoriser ou interdire le trading automatisé.
Dans cette vidéo, nous allons créer un filtre pour les entrées basées sur le temps, alors découvrons comment faire cela avec mql5.
Pour commencer, veuillez cliquer 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, expert advisor à partir d’un modèle, j’appellerai ce fichier, simple time filter, 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 déclaration d’inclusion pour inclure le fichier trade dot mqh, celui-ci est fourni avec mql5 et il nous donnera des fonctions de trading simplifiées, créons donc une instance de la classe ctrade, nous l’appellerons trade.
Maintenant, créons une variable d’entrée définie par l’utilisateur, il s’agit d’une variable chaîne appelée heure de début du trading. Dans mon cas, j’utilise 9h00 et j’aimerais également avoir une heure d’arrêt de la négociation, celle-ci est fixée à 10h00 et nous ne pourrons négocier que dans les heures de négociation autorisées. Pour cela, nous devons également créer une variable chaîne pour l’heure actuelle, et si l’heure actuelle n’est pas dans les heures de négociation autorisées, nous fixerons la variable, négociation autorisée à false, c’est également la valeur par défaut ici.
À l’intérieur de la fonction ontick, nous utilisons symbol info double pour le symbole actuel sur le graphique pour calculer le prix demandé qui est fait en utilisant symbol underscore ask et avec normalize double et underscore digits nous calculons automatiquement le bon nombre de chiffres derrière le point.
Le prix demandé est suffisant pour cet exemple simple car nous n’allons pas utiliser de signaux d’entrée pour voir si la première transaction est effectivement ouverte à 9h00.
Utilisons maintenant l’heure locale, qui renvoie l’heure locale de l’ordinateur sur lequel le terminal client est exécuté, c’est donc votre heure actuelle, mais nous allons utiliser une valeur de type chaîne, nous prenons l’heure ici et utilisons timetostring pour l’heure actuelle pour obtenir time underscore minutes et cela nous donnera les heures et les minutes actuelles et parce que nous avons utilisé timetostring ce sera une variable de type chaîne de caractères donc maintenant nous avons l’heure actuelle et nous allons utiliser une fonction qui est appelée check et seulement si celle-ci renvoie vrai, notre conseiller expert est autorisé à ouvrir des positions et si positions total renvoie une valeur de zéro – ce qui signifie que nous n’avons pas de position ouverte – et c’est à ce moment que nous allons utiliser trade dot buy pour ouvrir une transaction d’achat pour dix micro-lots juste sur la base du filtre de temps.
Vous ne feriez pas cela sur un compte réel mais pour cet exemple simple, c’est suffisant.
Nous voulons également ajouter une déclaration de commentaire, qui nous donnera le résultat si la négociation est autorisée ou non, l’heure actuelle, et les valeurs pour l’heure de début de négociation et l’heure de fin de négociation.
C’est tout pour la fonction principale.
Créons donc cette fonction personnalisée que nous voulons appeler, la valeur de retour sera bool, donc soit vrai soit faux, le nom de la fonction est vérifier l’heure de négociation et si nous pouvons trouver une sous-chaîne qui est égale à l’heure de début de négociation à l’intérieur de l’heure actuelle, c’est alors que nous définissons la négociation est autorisée à vrai.
La sous-chaîne de caractères commencera par le tout premier caractère, vous pourriez utiliser la longueur égale moins un, dans notre cas, je l’ai fixé à cinq et seulement lorsque l’heure de début de négociation est incluse dans l’heure actuelle, nous voulons permettre au conseiller expert d’ouvrir une nouvelle position.
Sinon, si l’heure de fin de négociation est incluse dans l’heure actuelle, c’est à ce moment-là que nous voulons définir la négociation autorisée sur faux.
Enfin, nous utilisons l’instruction return pour renvoyer la valeur de trading is allowed à notre fonction principale.
Voilà, c’est à 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 ce code, vous devriez peut-être regarder l’une des autres vidéos de cette série de vidéos de base ou peut-être même le cours premium sur notre site Web qui pourrait vous intéresser.
À propos, c’était une autre idée d’un membre du cours premium, donc si vous êtes déjà membre du cours premium et que vous avez une idée pour une vidéo comme celle-ci, faites-le moi savoir.
Maintenant, veuillez cliquer sur le bouton de compilation ou appuyez sur F7 sur votre clavier, vous ne devriez pas voir d’erreurs ici et si c’est le cas, vous pouvez cliquer sur un petit bouton ici ou appuyer sur F4 pour revenir à Metatrader.
Et à l’intérieur de Metatrader veuillez cliquer sur view, strategy tester ou appuyez sur control et r, nous allons utiliser un modèle propre sans aucun indicateur, veuillez choisir le nouveau fichier simple time filter dot ex5, marquez l’option pour le mode visuel ici et commencez un test.
Voici notre conseiller expert ! Le temps est en train de compter et dès qu’il dit que nous avons 9:00 du matin, nous devrions voir un trade ici, il est là, maintenant arrêtons le test, changeons la fenêtre de temps de huit à dix, recommençons le test.