Expert Advisors: Flat Channel - Seite 2

 
refounder83:

Können Sie mir sagen, ob die Zeitsteuerung in diesem EA nicht funktioniert? In der TimeControl-Prozedur gibt es Zeilen

d.h. wenn der Wert von InpTimeControl false ist, wird true an die TimeControl-Prozedur zurückgegeben?

Ich empfehle die Verwendung einer erweiterten TimeControl-Prozedur:

Eingabeparameter dafür:

input bool     InpTimeControl    = true;     // Zeitsteuerung verwenden
input uchar    InpStartHour      = 10;       // Beginn der Stunde
input uchar    InpEndHour        = 15;       // Ende der Stunde

Die Prozedur selbst (kann von morgens bis abends oder von abends bis morgens eingestellt werden - d.h. mit einem Übergang durch den Tag)

//+------------------------------------------------------------------+
//| TimeControl|
//+------------------------------------------------------------------+
bool TimeControl(void)
  {
   if(!InpTimeControl)
      return(true);
   MqlDateTime STimeCurrent;
   datetime time_current=TimeCurrent();
   if(time_current==D'1970.01.01 00:00')
      return(false);
   TimeToStruct(time_current,STimeCurrent);
   if(InpStartHour<InpEndHour) // Intraday-Zeitintervall
     {
/*
Beispiel:
input uchar InpStartHour = 5;// Anfangsstunde
input uchar InpEndHour = 10; // Endstunde
0 1 2 3 4 5 6 7 8 910 11 12 13 14 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 78 9 9 10 11 11 11 12 13 13 14 15
_ _ _ _ _ _ _ _ _ _ _ + + ++ + + _ _ _ _ _ _ _ __ _ _ _ _ _ _ _ _ _ _+ + + + + + + _ _ _ _ _ _ _ _ _ _ _
*/
      if(STimeCurrent.hour>=InpStartHour && STimeCurrent.hour<InpEndHour)
         return(true);
     }
   else if(InpStartHour>InpEndHour) // Zeitintervall mit dem Übergang in einen Tag
     {
/*
Beispiel:
input uchar InpStartHour = 10; // Startstunde
input ucharInpEndHour = 5;// Endstunde
0 1 2 3 4 5 6 7 8 910 11 12 13 14 15 16 17 18 19 20 21 22 23 0 1 2 3 4 5 6 78 9 9 10 11 11 11 12 13 13 14 15
_ _ _ _ _ _ _ _ _ _ _ __ _ _ + + + + + + + ++ + + + + + + + + + +_ _ _ _ _ _ _ _ _ _ + + + + + + + + + +
*/
      if(STimeCurrent.hour>=InpStartHour || STimeCurrent.hour<InpEndHour)
         return(true);
     }
   else
      return(false);
//---
   return(false);
  }
 
Und ja, wenn der Parameter"Use time control" auf"false" gesetzt ist - das heißt, das Zeitintervall ist überhaupt nicht aktiviert -, dann wird die Prozedur bool TimeControl(void) immer "true" zurückgeben. Das heißt, sie nimmt einfach nicht teil und mischt sich nicht in den Prozess des Signalempfangs ein.
[Gelöscht]  
Hallo bladimir es nicht zulassen, zu platzieren oder die ea funktioniert nur in Vermögenswerten von 0,01 und 0,10 der Makler, die ich verwenden, die deriv ist und es gibt volatilitys Vermögenswerte funktioniert nicht die ea ist eine gute ea, aber es funktioniert nicht in diesem Makler es funktioniert nur in der Schritt-Index-Anlage, die 0,10 die anderen Vermögenswerte der Makler erlaubt von 0,001 0,002 0,003 0,004