Hilfe!

 
Wie kann man vorschreiben, dass beim Öffnen einer Kerze ein Orden geöffnet wurde, und beim Öffnen der nächsten Kerze wurde er geschlossen und ein neuer geöffnet!
 
Anton Tarasov:
Wie kann man angeben, dass mit dem Öffnen einer Kerze ein Auftrag eröffnet wurde, und mit dem Öffnen der nächsten Kerze wurde er geschlossen und ein neuer eröffnet!
Als erstes muss die Plattform festgelegt werden.
 
Alexey Kozitsyn:
Zunächst müssen Sie die Plattform angeben.
Mt4
 
Anton Tarasov:
Mt4

Hier ist die Funktion zur Bestimmung des Beginns eines neuen Taktes

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

Hier eine Funktion zur Bestimmung des Beginns eines neuen Taktes

Ich danke Ihnen!

 
Alexey Volchanskiy:

Hier ist eine Funktion zur Bestimmung des Beginns eines neuen Taktes

dies ist nicht die richtige Funktion!!!

Es wird ein falsches Signal beim ersten Durchlauf des EA geben

Dies ist der richtige und zuverlässige Weg:

// =========================================================================================================// 
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:

dies ist nicht die richtige Funktion!!!

Beim ersten Start des EA wird ein falsches Signal ausgegeben

Dies ist der richtige und zuverlässige Weg:

Ein unnötiges "Wenn" für den EA ist wie ein Stein im Brett.
 
Anton Tarasov:
Wie kann man vorschreiben, dass mit dem Öffnen einer Kerze ein Auftrag eröffnet wurde, und mit dem Öffnen der nächsten Kerze wurde er geschlossen und ein neuer eröffnet!
Wenn die Eröffnungszeit eines Balkens des Auftrags kleiner als Time[0] ist, wird er geschlossen. Wenn danach keine Bestellungen vorliegen, eröffnen wir eine neue.
 
Dmitry Fedoseev:
Ein unnötiges Wenn ist wie ein Stein im Nacken des EA.
Setzen Sie dann ein zweites else
 
bool NEW_BAR() еще короче
 {
  static int nBars=0;
  if(nBars!=Bars)
   {
    nBars=Bars;
    return(true);
   }
  return(false);
 }
 
Alexey Busygin:
Dann setzen Sie den zweiten ein.
Und das ist eine große Erleichterung für Sie
Grund der Beschwerde: