Bedingung mit genauen Uhrzeiten

 

Ich bin am verzweifeln, weil ich es einfach nicht hinkriege, eine einfache Bedingung mit exakter Uhrzeit zu formulieren. Und in allen möglichen Beispielen wird immer nur mit vollen Stundenangaben hantiert.

Die Aufgabe: High und Low für die Zeitspanne von 14:30 - 15:30. Das Problem dabei ist die Zeitspanne (Std und Min als integer Variable).

Der Versuch innerhalb eines for loops: geht nur von x:30 bis x:59, erzeugt also "Löcher" zwischen :00 und folgendem :29

Die Zeiten habe ich extra in Klammern gesetzt, damit klar ist, daß das als Einheit zu verstehen ist, aber scheinbar werden die Klammern nicht so verstanden wie ich es gemeint habe. Was also mache ich falsch - oder wie müßte es richtig aussehen.  Mein Code sieht so aus:

for(i=limit;i>=0;i--)
{
   if(   (TimeHour(Time[i])>=RStartHour && TimeMinute(Time[i])>=RStartMin) // int 14, 30 =14:30
      && (TimeHour(Time[i])<=RStopHour  && TimeMinute(Time[i])<=RStopMin)  // int 15, 30 =15:30
     )
   {
      Top=iHigh(0,PERIOD_M30,iBarShift(0,PERIOD_M30,Time[i]));
      Bot=iLow(0,PERIOD_M30,iBarShift(0,PERIOD_M30,Time[i]));
   }
}

Danke für Eure Aufmerksamkeit.

 

Auf welchen Zeitrahmen arbeitest Du? Time[i] ist immer der Eröffnungszeitpunkt der Bar i!

Ergo auf einem H1-Chart ist TimeMinute(Time[i]) IMMER 0!

Nimm vielleicht iTime()?

BTW. Ich werde das Thema später in den Thread für MT4/MQL4 nach ganz unten verschieben - denk das nächste Mal bitte daran.

Calli

 

du kannst dir auch deine eigenen Variblen basteln in MQL5

hier mal ein beispiel


double High(int index, ENUM_TIMEFRAMES TF)
        {
        if(index<0 return(-1);
        double Arr[];
        if(CopyHigh(_Symbol,TF,index,Arr)>0
                return(arr[0];
        else return(-1)
        }


dies kannst du mit allen Open, High, Low, Close machen


im Code schreibst du dann einfach


High(0,PERIODE_M30) und du bekommst den Wert für die Periode raus welche du benötigst.


Welche Stunden und Minuten du benötigst kannst du dann selbst ausrechnen.

Damit du die Funktion Minute() und Hour() analog zu MT4 verwenden kannst, kannst du dir ebenfalls eine Variable bauen.


lg

Amando

Grund der Beschwerde: