Salut les traders ! Aujourd'hui, je vais vous présenter un code simple pour découvrir lorsqu'une nouvelle bougie est reçue dans MetaTrader 5.
Le principe de ce code est assez basique. D'abord, il stocke l'heure de la bougie précédente. Ensuite, il ajoute 60 secondes (ce qui correspond à 1 minute, mais vous pouvez ajuster le temps selon vos besoins) à l'heure de cette bougie pour obtenir la valeur de fermeture de la bougie actuelle.
Une fois que :
l'heure actuelle = valeur de fermeture de la bougie actuelle, cela signifie qu'une nouvelle bougie est reçue ou que la bougie actuelle est clôturée.
Dans ce code, le drapeau (la variable booléenne NewBarReceived) empêche les appels multiples de ce bloc de code. Cela signifie que ce bloc s'exécute une seule fois par bougie. La fonction Comment(); et playsound("ok.wav"); sont utilisées pour vérifier l'exactitude du bloc de code. Vous pouvez les retirer si vous le souhaitez.
Le drapeau est réinitialisé à faux une fois que l'heure actuelle dépasse la valeur de fermeture de la bougie actuelle, afin de vérifier l'arrivée de la prochaine bougie (regardez les commentaires pour plus de détails).
//+------------------------------------------------------------------+ //| Détection Nouvelle Bougie.mq5 | //| par H A T Lakmal | //| https://t.me/Lakmal846 | //+------------------------------------------------------------------+ bool NewBarReceived = false; // Drapeau de contrôle. //+------------------------------------------------------------------+ //| Fonction d'initialisation de l'expert | //+------------------------------------------------------------------+ int OnInit() { //--- créer un timer EventSetTimer(60); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Fonction de désinitialisation de l'expert | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- détruire le timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Fonction de tick de l'expert | //+------------------------------------------------------------------+ void OnTick() { datetime TimePreviousBar = iTime(_Symbol,PERIOD_M1,1); datetime TimeCurrentClose = TimePreviousBar + 60; // Heure de fermeture de la bougie actuelle. datetime Time_Current = TimeCurrent(); if(Time_Current == TimeCurrentClose && NewBarReceived == false) { PlaySound("ok.wav"); // Pour vérifier le fonctionnement. NewBarReceived = true; // Mettre à jour le drapeau pour éviter les appels multiples. // Votre code ici ----- (Faites quelque chose) } else if(Time_Current > TimeCurrentClose) { NewBarReceived = false; // Réinitialiser le drapeau pour l'ouverture de la prochaine bougie. // Votre code ici ----- (Faites quelque chose) } Comment(" " + " " + "Heure de la bougie actuelle -: " + TimeToString(TimePreviousBar,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + " " + "Heure de fermeture actuelle -: " +TimeToString(TimeCurrentClose,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + " " + "Heure actuelle -: " + TimeToString(Time_Current,TIME_DATE|TIME_MINUTES|TIME_SECONDS) + " " +" " + "Nouvelle bougie reçue -: " + NewBarReceived); // Pour vérifier les calculs } //+------------------------------------------------------------------+ //| Fonction timer | //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| Fonction de trading | //+------------------------------------------------------------------+ void OnTrade() { //--- } //+------------------------------------------------------------------+ //| Fonction d'événement de graphique | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+
Articles connexes
- Utiliser MQL5 Wizard pour Créer un Expert Advisor Basé sur les Modèles de Chandeliers Englobants et MFI
- Développez un Expert Advisor avec MQL5 : Signaux de Trading 3 Corbeaux Noirs / 3 Soldats Blancs + RSI
- Découvrez l'Expert Advisor exp_iCustom_v5 pour MetaTrader 4
- Découvrez CoensioTrader1V06 : Votre nouvel allié sur MetaTrader 5
- Découvrez le Système de Trading Exp_XPeriodCandle_X2 pour MetaTrader 5