Fragen von Neueinsteigern zu MQL4 und MQL5, Hilfe und Diskussion über Algorithmen und Codes - Seite 1317

 

Grüße an alle! Ich danke Ihnen allen im Voraus!

Fehler dieser Art:

Im ArrayBar_data_D1 [][6] gibt es eine Zeile Low_D1_Level, auf die wir uns beziehen; neuer LevelMin_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.

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

Drucken Drucken

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:
Bitte um Hilfe.

Ich habe alles versucht und erhalte immer noch die Fehlermeldung 130.

Bei mir funktioniert alles, keine Fehler

 

Im Strategietester ab 2016.12.15 ausführen.

2016.12.16
 
MakarFX:

Es funktioniert bei mir, keine Fehler

Führen Sie die Optimierung durch. Die Optimierung wird durch eine CriticalError-Meldung unterbrochen

 
Aliaksei Karalkou:
Bitte um Hilfe.

Ich habe alles versucht und erhalte immer noch die Fehlermeldung 130.

aus dem Merkblatt

 
Dark Kchlyzov:

Ich verstehe nicht, wo die Schleife endet?

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

Es sollte das letzte Element des Arrays sein. Nein?

Und dann eine Prüfung auf Ungleichheit durchführen

for(int i = 0; i<ArrayRange(Bar_data_D1,0) ;i++)
   {
   if(Bar_data_D1 [i][2]>=0)
      {
      
      }
   }
Dann wird es keine Überraschungen geben, wenn Sie das Feld verlassen.
 
Aliaksei Karalkou:

Starten Sie die Optimierung. Die Optimierung wird durch die Meldung CriticalError unterbrochen

Keine Fehler, mit Optimierung vom 01.12.2016 bis heute


 

wenn Sie die Website https://www.mql5.com/ru/forum/357558 besuchen möchten.

es ist alles im Detail vorhanden

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


meinen Beitrag aktualisiert
 
Aleksei Stepanenko:

Ich verstehe nicht, wo die Schleife endet?

Es sollte das letzte Element des Arrays sein. Nein?

Und dann eine Prüfung auf Ungleichheit durchführen.

Dann gibt es keine Überraschungen außerhalb des Feldes
Aleksei Stepanenko:

Entschuldigung, wo endet die Schleife?

Es sollte das letzte Element des Arrays sein. Nein?

Und dann eine Prüfung auf Ungleichheit durchführen.

Dann wird es keine Überraschungen geben, wenn Sie das Feld verlassen.

Okay, ich hab's. Ich probiere es gleich aus.

Ich danke Ihnen!