SOS !!!! S'il vous plaît je deviens fou

 

Voilà depuis un certain temps j'essaye de créer un petit expert qui m'envoie une notification sur mon téléphone quand mon signal arrive. Le problème c'est que je n'y arrive pas, soit les notifications arrive sans cesse, soit je n'arrive pas à incorporer mon signal avec la notification. Et puis j'ai beau regarder de la documentation sur MQL5, sur Internet, sur YouTube et ça ne donne rien.

Donc voila je préfère demander à la source, à de vrais connaisseurs. 

Je demande juste un exemple d'Expert (si possible), avec par "exemple" deux moyennes mobiles qui se croisent, et à ce moment-là je reçois une notification, pas plus!!!!!!!!!

Je vous en serais très reconnaissant, franchement ça commence à me rendent fou...

MERCI À ceux qui voudront m'aider 😔

 
JORDAN:

Voilà depuis un certain temps j'essaye de créer un petit expert qui m'envoie une notification sur mon téléphone quand mon signal arrive. Le problème c'est que je n'y arrive pas, soit les notifications arrive sans cesse, soit je n'arrive pas à incorporer mon signal avec la notification. Et puis j'ai beau regarder de la documentation sur MQL5, sur Internet, sur YouTube et ça ne donne rien.

Donc voila je préfère demander à la source, à de vrais connaisseurs. 

Je demande juste un exemple d'Expert (si possible), avec par "exemple" deux moyennes mobiles qui se croisent, et à ce moment-là je reçois une notification, pas plus!!!!!!!!!

Je vous en serais très reconnaissant, franchement ça commence à me rendent fou...

MERCI À ceux qui voudront m'aider 😔

Pour mieux t'aider, je te suggère de partager ici l'ensemble de ton code. Comme ça, on peut essayer de l'analyser pour identifier ce qui pose problème. Merci

 
J M #:

Pour mieux t'aider, je te suggère de partager ici l'ensemble de ton code. Comme ça, on peut essayer de l'analyser pour identifier ce qui pose problème. Merci


Vraiment MERCIII d'avoir répondu. Voici mon code:




input group "MA_10";

input int MA_10_MA_PERIOD = 10;

input int MA_10_MA_SHIFT = 0;

input ENUM_MA_METHOD MA_10_MA_METHOD = MODE_SMA;

input ENUM_APPLIED_PRICE MA_10_MA_PRICE = PRICE_CLOSE;


input group "MA_06";

input int MA_06_MA_PERIOD = 6;

input int MA_06_MA_SHIFT = 0;

input ENUM_MA_METHOD MA_06_MA_METHOD = MODE_SMA;

input ENUM_APPLIED_PRICE MA_06_MA_PRICE = PRICE_CLOSE;

//+-----------------------------------------------------------------------------------------------------------------------------------------------------+

   int Signal(string symbolName, ENUM_TIMEFRAMES timeframe)

{

      double Ma10[];

      double Ma06[];


      ArraySetAsSeries(Ma10, true);

      ArraySetAsSeries(Ma06, true);

   

      int Ma10_Definition = iMA(symbolName, timeframe, MA_10_MA_PERIOD, MA_10_MA_SHIFT, MA_10_MA_METHOD, MA_10_MA_PRICE);

      int Ma06_Definition = iMA(symbolName, timeframe, MA_06_MA_PERIOD, MA_06_MA_SHIFT, MA_06_MA_METHOD, MA_06_MA_PRICE);


      if  (CopyBuffer(Ma10_Definition, 0, 1, 2, Ma10) == 2

      &&  CopyBuffer(Ma06_Definition, 0, 1, 2, Ma06) == 2)   


      { if (Ma06[1] < Ma10[1] && Ma06[0] > Ma10[0]) return 1; }


      return 0;

 } 

//+-----------------------------------------------------------------------------------------------------------------------------------------------------+

void OnTick()

{  

   string Signal = "Message envoyé depuis MetaTrader5.";

   

   if(!SendNotification(Signal)){

      

      Print(Signal);

   }

}

 
JORDAN #:


Vraiment MERCIII d'avoir répondu. Voici mon code:




input group "MA_10";

input int MA_10_MA_PERIOD = 10;

input int MA_10_MA_SHIFT = 0;

input ENUM_MA_METHOD MA_10_MA_METHOD = MODE_SMA;

input ENUM_APPLIED_PRICE MA_10_MA_PRICE = PRICE_CLOSE;


input group "MA_06";

input int MA_06_MA_PERIOD = 6;

input int MA_06_MA_SHIFT = 0;

input ENUM_MA_METHOD MA_06_MA_METHOD = MODE_SMA;

input ENUM_APPLIED_PRICE MA_06_MA_PRICE = PRICE_CLOSE;

//+-----------------------------------------------------------------------------------------------------------------------------------------------------+

   int Signal(string symbolName, ENUM_TIMEFRAMES timeframe)

{

      double Ma10[];

      double Ma06[];


      ArraySetAsSeries(Ma10, true);

      ArraySetAsSeries(Ma06, true);

   

      int Ma10_Definition = iMA(symbolName, timeframe, MA_10_MA_PERIOD, MA_10_MA_SHIFT, MA_10_MA_METHOD, MA_10_MA_PRICE);

      int Ma06_Definition = iMA(symbolName, timeframe, MA_06_MA_PERIOD, MA_06_MA_SHIFT, MA_06_MA_METHOD, MA_06_MA_PRICE);


      if  (CopyBuffer(Ma10_Definition, 0, 1, 2, Ma10) == 2

      &&  CopyBuffer(Ma06_Definition, 0, 1, 2, Ma06) == 2)   


      { if (Ma06[1] < Ma10[1] && Ma06[0] > Ma10[0]) return 1; }


      return 0;

 } 

//+-----------------------------------------------------------------------------------------------------------------------------------------------------+

void OnTick()

{  

   string Signal = "Message envoyé depuis MetaTrader5.";

   

   if(!SendNotification(Signal)){

      

      Print(Signal);

   }

}

D'abord, avant d'aborder le sujet, je voudrais commencer par t'inviter à apprendre à utiliser le widget mis à notre disposition ici et qui permet d'insérer du code afin que celui-ci soit bien lisible avec une bonne coloration syntaxique.

Alors :

1] Je suppose que tu as pris le soin de bien configurer ton "'ID MetaQuotes" (à retrouver sur ton application Mt5 mobile) dans l'onglet "Notifications" de ton application Mt5 de bureau, pour permettre justement la communication entre ton EA et ton application mobile.


2] Après analyse de ton code, si le point 1 précédent est bien fait, il est tout à fait normal que tu reçoive infiniment des notifications à l'arrivée de chaque nouveau tick puisque tu n'utilises aucune condition devant être vérifiée avant éventuellement d'envoyer une notification vers ton appareil mobile. C'est pour cela que tu te plaints tantôt de recevoir trop de notifications incessantes.

Alors, pour éviter cela, toujours en me basant sur ton propre bout de code, tu peux, par exemple, faire ceci :

input group "MA_10";
input int MA_10_MA_PERIOD = 10;
input int MA_10_MA_SHIFT = 0;
input ENUM_MA_METHOD MA_10_MA_METHOD = MODE_SMA;
input ENUM_APPLIED_PRICE MA_10_MA_PRICE = PRICE_CLOSE;

input group "MA_06";
input int MA_06_MA_PERIOD = 6;
input int MA_06_MA_SHIFT = 0;
input ENUM_MA_METHOD MA_06_MA_METHOD = MODE_SMA;
input ENUM_APPLIED_PRICE MA_06_MA_PRICE = PRICE_CLOSE;

//+-----------------------------------------------------------------------------------------------------------------------------------------------------+

int Signal(string symbolName, ENUM_TIMEFRAMES timeframe)
{
 double Ma10[];
 double Ma06[];
      
 ArraySetAsSeries(Ma10, true);
 ArraySetAsSeries(Ma06, true);

 int Ma10_Definition = iMA(symbolName, timeframe, MA_10_MA_PERIOD, MA_10_MA_SHIFT, MA_10_MA_METHOD, MA_10_MA_PRICE);
 int Ma06_Definition = iMA(symbolName, timeframe, MA_06_MA_PERIOD, MA_06_MA_SHIFT, MA_06_MA_METHOD, MA_06_MA_PRICE);

 if  (CopyBuffer(Ma10_Definition, 0, 1, 2, Ma10) == 2 &&  CopyBuffer(Ma06_Definition, 0, 1, 2, Ma06) == 2)
   {
    if (Ma06[1] < Ma10[1] && Ma06[0] > Ma10[0]) return 1; 
   }
  
  return 0;
 } 

//+-----------------------------------------------------------------------------------------------------------------------------------------------------+

void OnTick()

{  
 string message = "Message envoyé depuis MetaTrader5.";
 int sig = Signal(_Symbol, PERIOD_CURRENT);
 
 if(sig)
   {
    if(!SendNotification(message))
      {
       Print(message);
      }
   }
 }

Et bien, avec cette vérification préalable, tu ne reçois de notification que lorsque ton signal est détecté...

Ainsi, ça t'évite de recevoir des notifications à flot comme c'est fût le cas avant...

Voilà ! Espérant que c'était cela le problème...

 

🥳 SUPERRRR, VRAIMENT MERCI 🤩 !!!!

Maintenant il faut juste que je règle le problème de la notification qui revient à chaque seconde 🫤🧐

 
JORDAN #:

🥳 SUPERRRR, VRAIMENT MERCI 🤩 !!!!

Maintenant il faut juste que je règle le problème de la notification qui revient à chaque seconde 🫤🧐

Ok, c'est cool.