Array außerhalb der Reichweite in Need of help - Seite 3

 

OK

während dieses Zeitraums

 
Dark Kchlyzov:

Sie verstehen es nicht?

für eine Woche oder einen Monat, das nächste Minimum von welchem Tag?
 
Ich verstehe, über den gesamten Zeitraum
 
Low_D1_Level   = iLow (_Symbol,PERIOD_D1,1);   // Возвращает значение минимальной цены бара  D1

Das nächstgelegene Minimum in der Historie ist kleiner als Low_1_Level , das ist dann .

Führen Sie den Code aus, um zu sehen, wie er funktioniert.

 
Dark Kchlyzov:

Ich habe keine Fehler für den gesamten Zeitraum

Ich hänge das Protokoll an

Dateien:
20201209.log  3729 kb
 
MakarFX:

Ich habe keine Fehler für den gesamten Zeitraum

Ich hänge das Protokoll an.

Es scheint kein Fehler vorzuliegen, aber es steht im Protokoll

Sie haben in Ihrem Log 19:31:53.126 2016.12.15 00:00:00 Array EURUSD,H1: i = 456 Bar_data_D1 [i][2] = 1.04789

da ich einen Preis Min_D:104789 mehr als Low_D1 1.03660 habe, kann es nicht so sein.

Wenn ich die for-Schleife ersetze, tritt ein Fehler auf. und es ist korrekt.

eigentlich maskiert expression2 nur einen Fehler

i<ArrayRange(Bar_data_D1,0)
 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;
       }
    } 


 
Dark Kchlyzov:


Es stellt sich eine Frage. Warum beginnen Sie die Schleife mit dem ersten Element und nicht mit Null?

 
Dark Kchlyzov:

Könnten Sie mir ein Beispiel geben, wie man es richtig schreibt?

Ich habe einige Erfahrung im Handel, aber ich fange gerade erst an, MQL4 zu lernen.

Wenn Sie MqlRates verwenden, dann deklarieren Sie ein Array:

MqlRates Bar_data_D1[];

Das heißt, Sie erhalten ein eindimensionales Array anstelle eines zweidimensionalen Arrays. MqlRates ist eine Standardstruktur (beschrieben in der MQL4-Referenz unter "Grundlagen der Sprache" - "Datentypen" - "Strukturen, Klassen, Interfaces"). Es enthält alle Felder, die Sie in diesem Fall benötigen. Sie können sie auf diese Weise ansprechen:

Bar_data_D1[i].high; Максимум свечи
Bar_data_D1[i].low; Минимум свечи

i ist der Index des Arrays.

Auf die gleiche Weise können Sie Ihre eigene Struktur erstellen, um die Parameter von Candlesticks aufzuzeichnen. Sie wird um zwei Felder (spread und real_volume) kleiner sein als Mqlrates, die Sie nicht benötigen. Die Struktur wird folgendermaßen aussehen:

struct BarData
{ 
   datetime time;         // время начала периода 
   double   open;         // цена открытия 
   double   high;         // наивысшая цена за период 
   double   low;          // наименьшая цена за период 
   double   close;        // цена закрытия 
   long     tick_volume;  // тиковый объем 
};

Die Deklaration eines Arrays von solchen Strukturen sieht folgendermaßen aus:

BarData Bar_data_D1[];

Der Zugriff auf die Mitglieder der Struktur ist ähnlich wie der Zugriff auf die Mitglieder der MqlRates-Struktur.

Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура исторических данных
Документация по MQL5: Константы, перечисления и структуры / Структуры данных / Структура исторических данных
  • www.mql5.com
Структура исторических данных - Структуры данных - Константы, перечисления и структуры - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Ihor Herasko:

Ganz genau!

 
Ihor Herasko:

Wenn Sie über MqlRates das Array wie folgt deklarieren:

Das heißt, Sie erhalten ein eindimensionales Array anstelle eines zweidimensionalen Arrays. MqlRates ist eine Standardstruktur (beschrieben in der MQL4-Referenz unter "Language Fundamentals" - "Data Types" - "Structures, Classes, Interfaces"). Es enthält alle Felder, die Sie in diesem Fall benötigen. Sie können sie auf diese Weise ansprechen:

i ist der Index des Arrays.

Auf die gleiche Weise können Sie Ihre eigene Struktur erstellen, um die Parameter von Candlesticks aufzuzeichnen. Sie wird um zwei Felder (spread und real_volume) kleiner sein als Mqlrates, die Sie nicht benötigen. Die Struktur wird folgendermaßen aussehen:

Die Deklaration eines Arrays von solchen Strukturen sieht folgendermaßen aus:

Die Bezugnahme auf Mitglieder der Struktur ist ähnlich wie die Bezugnahme auf Mitglieder der MqlRates-Struktur.

Okay, ich werde es morgen versuchen!

Ich danke Ihnen für Ihre Hilfe. Ich werde Ihnen Bescheid geben, wenn ich es herausgefunden habe.

Grund der Beschwerde: