Au secours !

 
Comment prescrire qu'à l'ouverture d'une bougie, une commande était ouverte, et qu'à l'ouverture de la suivante, elle était fermée et une nouvelle était ouverte !
 
Anton Tarasov:
Comment spécifier qu'à l'ouverture d'une bougie, un ordre a été ouvert, et qu'à l'ouverture de la suivante, il a été fermé et qu'un nouvel ordre a été ouvert !
La première chose à faire est de spécifier la plate-forme.
 
Alexey Kozitsyn:
Vous devez d'abord spécifier la plate-forme.
Mt4
 
Anton Tarasov:
Mt4

Voici la fonction permettant de déterminer le début d'une nouvelle mesure

/// Определяет начало нового бара
bool NewBar()
{
    static datetime lastbar = 0;
    datetime curbar = iTime(Symbol(), PERIOD_M1, 0);
    if(lastbar!=curbar)
    {
        lastbar=curbar;
        return (true);
    }
    return(false);
}
 
Alexey Volchanskiy:

Voici une fonction pour déterminer le début d'une nouvelle mesure

Merci !

 
Alexey Volchanskiy:

Voici une fonction permettant de déterminer le début d'une nouvelle mesure

ce n'est pas la bonne fonction !!!

Il donnera un faux signal lors de la première exécution de l'EA.

C'est la méthode correcte et fiable :

// =========================================================================================================// 
bool NewBar()
  {
   static datetime time=0;
   datetime cur_time = iTime(Symbol(), PERIOD_CURRENT, 0);
   if(time==0)
     {
      time=cur_time;
      return false;
     }
   if(time!=cur_time)
     {
      time=cur_time;
      return true;
     }
   return false;
  }
// =========================================================================================================//
 
Vladimir Pastushak:

ce n'est pas la bonne fonction !!!

Il donnera un faux signal au premier démarrage de l'EA.

C'est la manière correcte et fiable de le faire :

Un if inutile à l'EA est comme une pierre sur le cou.
 
Anton Tarasov:
Comment prescrire qu'avec l'ouverture d'une bougie un ordre a été ouvert, et qu'avec l'ouverture de la bougie suivante il a été fermé et un nouveau a été ouvert !
Si l'heure d'ouverture d'une barre de l'ordre est inférieure à Time[0], alors nous la fermons. S'il n'y a pas de commande après cela, nous en ouvrons une nouvelle.
 
Dmitry Fedoseev:
Un si inutile est comme une pierre sur le cou de l'EA.
Mettez un deuxième autre alors
 
bool NEW_BAR() еще короче
 {
  static int nBars=0;
  if(nBars!=Bars)
   {
    nBars=Bars;
    return(true);
   }
  return(false);
 }
 
Alexey Busygin:
Posez le deuxième alors.
Et c'est la même chose que pour la bite.