Frage für Kenner - Seite 21

 
Hallo. Ich habe meine Arbeit auf die folgende Funktion beschränkt:
bool isTradeTimeInt(int hb=0, int mb=0, int he=0, int me=0) {
  datetime db, de;         
  int      hc;              

  db=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+hb+":"+mb);
  de=StrToTime(TimeToStr(TimeCurrent(), TIME_DATE)+" "+he+":"+me);
  hc=TimeHour(TimeCurrent());
  if (db>=de) {
    if (hc>=he) de+=24*60*60; else db-=24*60*60;
  }

  if (TimeCurrent()>=db && TimeCurrent()<=de) return(True);
  else return(False);
}

Die offenen Aufträge sind jedoch sich selbst überlassen...

Ich möchte, dass der EA nicht zu einem bestimmten Zeitpunkt neue Aufträge platziert, sondern die offenen Aufträge begleitet.

Ich gehe davon aus, dass Sie die Bildung eines Signals zu einem bestimmten Zeitpunkt deaktivieren/deaktivieren können.

Bitte teilen Sie mir mit, wie ich dies tun kann.

 

Ich erinnere mich, dass I.Kim solche Zeitfunktionen hatte: https://www.mql5.com/ru/forum/131859 - S.9

isTradeTimeString - Gibt das Flag zurück, das den Handel nach Zeit erlaubt.
isTradeTimeInt - Gibt das Flag zurück, das den Handel nach Zeit erlaubt.

Um sicherzustellen, dass offene Aufträge nicht "dem Zufall überlassen" werden, wird die Bedingung if (isTradeTimeString()==false) { ... gelten nur für offene Stellen. Verwenden Sie diese Funktion (diese Bedingung) nicht für alle anderen Aktionen (Nachlauf, Änderung, Positionsschließung).

Vinin:
Kommentare entfernen
Ich danke Ihnen.
 

Ich grüße alle.

Mein Indikator zeichnet mehrere Linien in einem separaten Fenster. Zum Beispiel - MA von zwei Währungen. Und auch die Linie ihres Unterschieds.

#property indicator_separate_window
#property indicator_buffers 4
... ...
// Буферы для отображения данных
double Buf1[];    // Первый инструмент ма1
double Buf2[];    // Второй инструмент ма2
double BufS[];    // Средняя линия (ма1+ма2)/2
double BufW[];    // разность ма1-ма2
double BufW_Up[]; // Восходящиая разность
double BufW_Dn[]; // Нисходящая разность

...
int init() {
 IndicatorBuffers(7);
  
  SetIndexStyle(0,DRAW_LINE);
  SetIndexBuffer(0,Buf1);
  SetIndexLabel(0, Symbol1); 

  SetIndexStyle(1,DRAW_LINE);
  SetIndexBuffer(1,Buf2);
  SetIndexLabel(1,Symbol2); 

  SetIndexStyle(2,DRAW_LINE);
  SetIndexBuffer(2,BufW_Up);
  SetIndexLabel(2,"Channel width Up");

  SetIndexStyle(3,DRAW_LINE);
  SetIndexBuffer(3,BufW_Dn);
  SetIndexLabel(3,"Channel width Down");
  
  SetIndexBuffer(4,BufW);
  SetIndexBuffer(5,BufS);

Ich "hänge" diesen Indikator manuell im Terminal im Modus "Erste Indikatordaten" auf einen anderen Indikator, z. B. Anleihen oder Hüllkurven.

Dieser zweite Indikator muss genau an der Differenzlinie "hängen" - Puffer BufW,

Bitte beraten Sie mich - wie kann ich es programmatisch im Code angeben? Um "hängen" jeden anderen Indikator in der "Erste Indikatoren Daten"-Modus zu wählen, streng die Zeile der Differenz in den Puffer BufW?

Im Moment "hängt" der zweite Indikator ständig an der MA-Linie des ersten Symbols Buf1.