array out of range in '_Test.mq4' (451,34)
In Zeile 451,34 gibt es einen Ausgang außerhalb des Arrays.
Siehe in , was sich dahinter verbirgt <=
for(int i = 1; 0 <= Bar_data_D1 [i][2] ;i++)
for(int i = 1; ;i++) { Print(" i = ",i," Bar_data_D1 [i][2] = ",Bar_data_D1 [i][2]); if( Bar_data_D1 [i][2] < Low_D1_Level) { Min_D_Level = Bar_data_D1 [i][2];break; } } //--- изначально было так
Fällt Ihnen eine bessere Option ein? Wie kann sie umgesetzt werden?
CODE RETURNED : Kein Fehler, kein weiteres Array und kein Zeilenumbruch an diesem Tag.
//--- Min_D_Leve for(int i = 1; i<ArrayRange(Bar_data_D1,0) ;i++) { Print(" i = ",i," Bar_data_D1 [i][2] = ",Bar_data_D1 [i][2]); if(Bar_data_D1 [i][2]>=0) { if( Bar_data_D1 [i][2] < Low_D1_Level) { Min_D_Level = Bar_data_D1 [i][2];break; } } }
2020.12.09 17:03:30.363 2016.12.16 00:00:00 _Test EURUSD,H1: i = 996 Bar_data_D1 [i][2] = 1.33147
2020.12.09 17:03:30.363 2016.12.16 00:00:00 _Test EURUSD,H1: i = 997 Bar_data_D1 [i][2] = 1.3426
2020.12.09 17:03:30.363 2016.12.16 00:00:00 _Test EURUSD,H1: i = 998 Bar_data_D1 [i][2] = 1.3364
2020.12.09 17:03:30.363 2016.12.16 00:00:00 _Test EURUSD,H1: i = 999 Bar_data_D1 [i][2] = 1.33562
2020.12.09 17:03:30.363 2016.12.16 00:00:00 _Test EURUSD,H1: i = 1000 Bar_data_D1 [i][2] = 1.33532
2020.12.09 17:03:30.363 2016.12.16 00:00:00 _Test EURUSD,H1: i = 1001 Bar_data_D1 [i][2] = 1.33705
der Fehler liegt möglicherweise nicht hier. Ohne den Code ist es schwierig zu verstehen
der Fehler liegt möglicherweise nicht hier. Ohne den Code ist es schwer zu verstehen
//--глобальные переменныеdouble Low_D1_Level;
double Bar_data_D1 [][6]; // Копирует в массив данные баров указанного графика и возвращает количество скопированных баров D1
//--- тело void On_Timer() { if(Day()!= Time_Day) { Level(); Time_Day = Day(); } } //+------------------------------------------------------------------+ //| Функция Level //+------------------------------------------------------------------+ void Level() ArrayCopyRates(Bar_data_D1,_Symbol,PERIOD_D1); // Копирует в массив данные баров указанного графика и возвращает Low_D1_Level = iLow (_Symbol,PERIOD_D1,1); // Возвращает значение минимальной цены бара D1 //--- Min_D_Leve for(int i = 1; 0 <= Bar_data_D1 [i][2] ;i++) { Print(" i = ",i," Bar_data_D1 [i][2] = ",Bar_data_D1 [i][2]); if( Bar_data_D1 [i][2] < Low_D1_Level) { Min_D_Level = Bar_data_D1 [i][2];break; } } //---
Was brauchen Sie noch?
![Документация по MQL5: Основы языка / Переменные / Глобальные переменные Документация по MQL5: Основы языка / Переменные / Глобальные переменные](https://c.mql5.com/36/43/dokumentaciya-po-mql5-osnovi-yazika__5.png)
- www.mql5.com
![Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура исторических данных Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура исторических данных](https://c.mql5.com/36/43/dokumentaciya-po-mql5-konstanti__10.png)
- www.mql5.com
![MQL5 - Sprache von Handelsstrategien, eingebaut ins Kundenterminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Grüße an alle! Ich danke Ihnen allen im Voraus!
Fehler dieser Art:
Im Array Bar_data_D1 [][6] gibt es eine Zeile Low_D1_Level, auf die wir uns beziehen ; neuer Level Min_D_Level
//--- globale Variablen
double_D1_Level;
double Bar_data_D1 [][6]; //kopiert die Balken des angegebenen Charts in das Array und gibt die Anzahl der kopierten D1-Balken zurück
Die erste Dimension des Arrays enthält die Anzahl der Balken. Die zweite Dimension hat 6 Elemente mit den Werten:
0 - Uhrzeit,
1 - Eröffnungskurs,
2 - niedrigster Kurs (low),
3 - höchster Kurs (high),
4 - Schlusskurs (close),
5 - Volumen.
Drucken Drucken