Einzelnen Beitrag anzeigen
  #6 (permalink)  
Alt 26.05.19
Angel Angel ist offline
Mitglied
 
Registriert seit: Dec 2017
Ort: 76891
Beiträge: 126
Angel befindet sich auf einem aufstrebenden Ast
Standard

Ich habe nun mal versucht, eine NewBar-Funktion einzubauen, die alle 60 Minuten eine neue Kerze anzeigt. Die oft zu sehende Time[]-Funktion seheich nicht als so toll an, da die Kerze sich immer nur auf den aktuellen Chart bezeiht und ich gerne alles einstellen können möchte, in Drop-Down-Menüs etc.
Hier habe ich zur Vereinfachung einfach 60 eingetragen - für 60 Minuten.
Also der Code soll alle 60 Minuten die beiden Schleifen 1 x durchlaufen.
Das tut er auch - aber nur 1 x und zwar das erste Mal, nur bei der ersten Stunde. Obwohl ich im Strategietester einen ganzen zu testenden Tag einstellte. Was mache ich denn nur falsch?!?!?!?

Code:

datetime dt;
bool NewBar;
int i;
int z;
int y;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+


   static datetime dt;
   if(dt!=iTime(_Symbol,60,0)) //Alle 60 Minuten soll auf neue Kerze geprüft werden
     {
      dt=iTime(_Symbol,60,0);
      NewBar=true;
     }

   if(NewBar==true)
     {
      for(i=25;i>1;i--) // Erste Schleife; Soll alle 60 Minunten 1 x durchlaufen werden
        {
          for(z=i-1;z>0;z--) // Zweite Schleife; Anfang soll i-1 sein
           {
            y=y+1;//Einfache Zählvariable zur Kontrolle

            Alert("  i= ",i,"    z= ",z,"   y= ",y,"   dt= ",dt);//Ausgabe der benutzten Variablen zur Kontrolle

         
           }
        }
     }
   NewBar=false;
  }
__________________
MQL4-Interessiert... und noch gaaaanz am Anfang