Array out of Range

 

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);
     
     

}
     
      //+------------------------------------------------------------------+
 

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.

 
  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().
 

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

Grund der Beschwerde: