Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 1317

 

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 tableauBar_data_D1 [][6] ; nouveau niveauMin_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.

//+------------------------------------------------------------------+
//|                        Функция 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;
       }
    } 
//---

Imprimer Imprimer

2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 998 Bar_data_D1 [i][2] = 1.3364
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 999 Bar_data_D1 [i][2] = 1.33562
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 1000 Bar_data_D1 [i][2] = 1.33532
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1:  i = 1001 Bar_data_D1 [i][2] = 1.33705
2020.12.09 15:19:29.109 2016.12.16 00:00:00  _Test EURUSD,H1: array out of range in '_Test.mq4' (451,34)
2020.12.09 15:19:29.110 2016.12.16 00:00:00  Testing pass stopped due to a critical error in the EA
2020.12.09 15:19:29.110 EURUSD,H1: 136637 tick events (25 bars, 63904705 bar states) processed in 0:00:17.844 (total time 0:00:24.547)
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
Документация по MQL5: Основы языка / Переменные / Глобальные переменные
  • www.mql5.com
Глобальные переменные создаются путем размещения их объявлений вне описания какой-либо функции. Глобальные переменные определяются на том же уровне, что и функции, т. е. не локальны ни в каком блоке. Область видимости глобальных переменных - вся программа, глобальные переменные доступны из всех функций, определенных в программе...
 
Aliaksei Karalkou:
Aidez-moi, s'il vous plaît.

J'ai tout essayé et j'obtiens toujours l'erreur 130.

Tout fonctionne pour moi, aucune erreur

 

Dans le testeur de stratégie, exécutez à partir de 2016.12.15.

2016.12.16
 
MakarFX:

Cela fonctionne pour moi, aucune erreur

Exécutez l'optimisation. L'optimisation est interrompue par un message CriticalError.

 
Aliaksei Karalkou:
Aidez-moi, s'il vous plaît.

J'ai tout essayé et j'obtiens toujours l'erreur 130.

extrait de la fiche d'information

 
Dark Kchlyzov:

Je ne comprends pas, où s'arrête la boucle ?

for(int i = 1; 0 <= Bar_data_D1 [i][2] ;i++)

C'est censé être le dernier élément du tableau. Non ?

Et ensuite faire une vérification de l'inégalité

for(int i = 0; i<ArrayRange(Bar_data_D1,0) ;i++)
   {
   if(Bar_data_D1 [i][2]>=0)
      {
      
      }
   }
Alors il n'y aura pas de surprises en dehors du tableau.
 
Aliaksei Karalkou:

Commencez l'optimisation. L'optimisation est interrompue par le message CriticalError.

Aucune erreur, avec une optimisation du 01.12.2016 à aujourd'hui.


 

si vous souhaitez vous rendre sur https://www.mql5.com/ru/forum/357558

tout y est en détail

Array out of range in Нужна Помощь
Array out of range in Нужна Помощь
  • 2020.12.09
  • www.mql5.com
Приветствую Всех ! Заранее всем спасибо...
 
Dark Kchlyzov:


mis à jour mon post
 
Aleksei Stepanenko:

Je ne comprends pas, où s'arrête la boucle ?

C'est censé être le dernier élément du tableau. Non ?

Et ensuite faire une vérification de l'inégalité.

Ainsi, il n'y aura pas de surprises en dehors du tableau.
Aleksei Stepanenko:

Excusez-moi, où se termine la boucle ?

C'est censé être le dernier élément du tableau. Non ?

Et ensuite faire une vérification de l'inégalité.

Alors il n'y aura pas de surprises en dehors du tableau.

Ok, je l'ai. Je vais essayer maintenant.

Merci !

Raison: