Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 473

 
Bek001:

Laissez-moi le dire autrement. Comment pouvez-vous déterminer le prix maximum dans les 10 dernières secondes ?

Dans MT5 - CopyTicks()

Dans MT4 - enregistrer les ticks dans un tableau de structures MqlTick. A partir de là, prenez les prix max/min.

 

Pouvez-vous me dire comment faire ? J'ai écrit une fonction de notification et les notifications apparaissent à chaque tic-tac! La fonction elle-même est simplement écrite en int Start. PATTERN conditions sur la M30.

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

int DayT=0,BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

Pouvez-vous me dire comment faire ? J'ai écrit une fonction de notification et les notifications apparaissent à chaque tic-tac! La fonction elle-même est simplement écrite en int Start.

statique int DayT=0 ;
 
@Artyom Trishkin Merci ! Intéressant est sorti maintenant c'est silencieux du tout !
 
Rewerpool:
@Artyom Trishkin Merci ! Intéressant est sorti maintenant c'est silencieux du tout !
Il est difficile de lire le code depuis un mobile. Il y a probablement un autre problème.
 
Rewerpool:

Pouvez-vous me dire comment faire ? J'ai écrit une fonction de notification et les notifications apparaissent à chaque tic-tac! La fonction elle-même est simplement écrite en int Start. PATTERN conditions sur la M30.

int DayT=0;
datetime BarTime=TimeCurrent();
void NOTIFICATION()
{
   if(DayT!=Day())// Если новый день - нужно опросить
   {
      DayT=Day();
      if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
      if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
   }
   if (BarTime==Time[0]) // Если новый бар - нужно опросить
   {
      BarTime=Time[0];
      if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
      if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
   }
}

Vous déclarez des variables et comparez immédiatement avec elles. Bien sûr, vous obtenez toujours le même résultat.

 
Artyom Trishkin:
C'est difficile de lire le code sur un mobile. Il doit y avoir un autre problème.

Je pense que ça aurait dû se passer comme ça

datetime BarTime;
 

@Konstantin Nikitin Bonjour ! !! C'est réparé ! !! Les signaux quotidiens sont en hausse ! Il faut encore vérifier les intraday !

Corrigé ! Ici :

///--------------------------------------------------------------------------------------------
/// ФУНКЦИЯ ОТПРАВКИ УВЕДОМЛЕНИЙ
///--------------------------------------------------------------------------------------------
void NOTIFICATION()
{

static int DayT=0;
datetime BarTime;
 if(DayT!=Day())// Если новый день - нужно опросить
 {
 DayT=Day();
if(Push_On&&DAY_HIGH())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ -" + Symbol());
if(Push_On&&DAY_LOW())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ -" + Symbol());
}
if (BarTime==Time[0]) // Если новый бар - нужно опросить
{
   BarTime=Time[0];
if(Push_On&&DAY_HIGH()&&PATERN_BUY())SendNotification("ДЕНЬ ЗАКРЫЛСЯ ВЫШЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
if(Push_On&&DAY_LOW()&&PATERN_SELL())SendNotification("ДЕНЬ ЗАКРЫЛСЯ НИЖЕ ЛИНИИ + ПАТТЕРН -" + Symbol());
}
}
 
Rewerpool:

@Konstantin Nikitin Bonjour ! !! C'est réparé ! !! Les signaux quotidiens sont en hausse ! Il faut encore vérifier les intraday !

Corrigé ! Ici :

static int DayT=0;
datetime BarTime;

Passez au niveau mondial. Ils seront toujours égaux à 0, car chaque fois que la fonction est appelée, un nouveau sera déclaré.

 
@Konstantin Nikitin Suggérez-vous de prendre ces paramètres en dehors du corps de la fonction ? Ou les laisser comme je l'ai écrit dans la dernière capture d'écran ?