array out of range in '_Test.mq4' (451,34)
A la ligne 451,34 il y a une sortie en dehors du tableau.
Voir en , ce qu'il y a derrière <=
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; } } //--- изначально было так
pouvez-vous penser à une meilleure option ? comment la mettre en œuvre ?
CODE RETOURNÉ : Pas d'erreur, pas de tableau supplémentaire et pas de redessin de ligne ce jour.
//--- 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; } } }
Imprimer
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
l'erreur n'est peut-être pas là. Sans le code, il est difficile de comprendre
l'erreur n'est peut-être pas là. Sans le code, il est difficile de comprendre
//--глобальные переменные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; } } //---
De quoi d'autre avez-vous besoin ?
- www.mql5.com
- www.mql5.com
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Vous acceptez la politique du site Web et les conditions d'utilisation
Salutations à tous ! Merci d'avance à tous !
Bug de ce type :
Il y a une ligne Low_D1_Level par rapport à laquelle nous cherchons dans le tableau Bar_data_D1 [][6] ; nouveau niveau Min_D_Level
//--- variables globales
double_D1_Niveau ;
double Bar_data_D1 [][6] ; //copie les données des barres du graphique spécifié dans le tableau et renvoie le nombre de barres D1 copiées.
La première dimension du tableau contient le nombre de barres. La deuxième dimension comporte 6 éléments avec les valeurs :
0 - heure,
1 - cours d'ouverture,
2 - cours le plus bas (low),
3 - cours le plus haut (high),
4 - cours de clôture (close),
5 - volume.
Imprimer Imprimer