Array out of Range

Einloggen oder registrieren, um einen Kommentar zu schreiben
MrSeedan
33
MrSeedan  

Auf dem Chart sollen zwei Linien beim Hoch und Tief einer gewissen Zeitrange erscheinen. Beim Kompilieren bekomme ich keine Fehler, aber beim Ausführen bricht er ab und gibt den Fehler Array out of Range(47,70) (in den Zeilen ist ein Kommentar und sonst nichts). Danke für die Hilfe.

input color           InpColor=clrRed;     // Linienfarbe
input ENUM_LINE_STYLE InpStyle=STYLE_DASH; // Linienstil
input int             InpWidth=2;          // Linienbreite
input int             Periode=PERIOD_M5;

//Eingabe der Zeiten für die ORB
input datetime Anfangszeit =D'10:00';
input datetime Endzeit =D'11:00';
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {
   datetime RangeTimeBegin=StringToTime(Anfangszeit);
   datetime RangeTimeEnde=StringToTime(Endzeit);
datetime timelocal= TimeLocal();
string hoursandminuteslocal=TimeToString(timelocal,TIME_MINUTES);


      int AnzahlBarsBeginn=Bars(_Symbol,_Period,RangeTimeBegin,RangeTimeEnde);
      // Hoch und Tief Array
      double Hoch[];
      double Tief[];

      ArraySetAsSeries(Hoch,true);
      ArraySetAsSeries(Tief,true);

      CopyHigh(_Symbol,_Period,Anfangszeit, Endzeit,Hoch);
      CopyLow(_Symbol,_Period,Anfangszeit,Endzeit,Tief);

      //PreisInfoArray
      MqlRates PriceInformation[];
      ArraySetAsSeries(PriceInformation,true);
      int HighestCandle;
      int LowestCandle;
      HighestCandle=ArrayMaximum(Hoch,1,WHOLE_ARRAY);
      LowestCandle=ArrayMinimum(Tief,1,WHOLE_ARRAY);

      int Data=CopyRates(Symbol(),Period(),Anfangszeit, Endzeit,PriceInformation);

      //Hochlinie zeichnen
      ObjectCreate(_Symbol,"Hochlinie",OBJ_HLINE,0,0,PriceInformation[HighestCandle].high);
      ObjectCreate(_Symbol,"Tieflinie",OBJ_HLINE,0,0,PriceInformation[LowestCandle].low);

      //Hochlinie einstellen
      ObjectSetInteger(0,"Hochlinie",OBJPROP_COLOR,InpColor);
      ObjectSetInteger(0,"Hochlinie",OBJPROP_WIDTH,InpWidth);
      ObjectSetInteger(0,"Hochlinie",OBJPROP_STYLE,InpStyle);

      //Tieflinie einstellen
      ObjectSetInteger(0,"Tieflinie",OBJPROP_COLOR,InpColor);
      ObjectSetInteger(0,"Tieflinie",OBJPROP_WIDTH,InpWidth);
      ObjectSetInteger(0,"Tieflinie",OBJPROP_STYLE,InpStyle);
     
      ObjectMove(0,"Hochlinie",0,0,PriceInformation[HighestCandle].high);
      ObjectMove(0,"Tieflinie",0,0,PriceInformation[LowestCandle].low);
      ChartRedraw(0);
     
     

}
     
      //+------------------------------------------------------------------+
Sergey Golubev
Moderator
105245
Sergey Golubev  

Forum on trading, automated trading systems and testing trading strategies

When you post code please use the CODE button (Alt-S)!

Use the CODE button

Thank you.

Carl Schreiber
Moderator
6869
Carl Schreiber  
  1. Wie Sergey schon zeigte, sollte man Code als code (Alt+s) posten!
  2. Du kannst hier deutsch sprechen.
  3. Du schreibst, der Fehler ist bei 47,70 - wie sollen wir den Fehler lokalisieren? Wo ist Zeile 47?
  4. Lasse Dir mal die Größe des(der) Array(s) ausgeben mit Comment(), wenn danach das Prg. abstürzt bleibt Comment stehen und Du könntest sehen, woran es lag.
  5. Ich vermute, dass dem Array keine Größe zugewiesen wurde, richte Dich nach dem Beispiel in der Referenz zu ArraySetAsSeries().
Carl Schreiber
Moderator
6869
Carl Schreiber  

Bitte KEINE Doppeltposts - ich hab ihn daher gelöscht!

Einloggen oder registrieren, um einen Kommentar zu schreiben