도움이 필요한 배열이 범위를 벗어났습니다. - 페이지 3

 

확인

이 기간 동안

 
Dark Kchlyzov :

이해하지 못했어요?

일주일 또는 한 달 동안 어느 날의 가장 가까운 최소값입니까?
 
나는 전체 기간 동안 깨달았다
 
Low_D1_Level   = iLow ( _Symbol , PERIOD_D1 , 1 );   // Возвращает значение минимальной цены бара  D1

역사상 가장 가까운 최저치는 Low_1_Level보다 작으며, 이는 .

코드를 실행하고 어떻게 작동하는지 확인하십시오.

 
Dark Kchlyzov :

나는 전체 기간 동안 오류가 없습니다

첨부된 로그

파일:
20201209.log  3729 kb
 
MakarFX :

나는 전체 기간 동안 오류가 없습니다

첨부된 로그

오류는 없지만 로그에 있습니다.

로그에 19:31:53.126이 있습니다. 2016.12.15 00:00:00 배열 EURUSD,H1: i = 456 Bar_data_D1 [i][2] = 1.04789

내 가격처럼 Min_D:104789는 low_D1 1.03660보다 크며 조건에 따라 그럴 수 없습니다.

for 루프를 바꾸면 오류가 발생합니다. 그리고 그녀는 옳을 것입니다.

포즈 expression2는 오류를 마스킹합니다.

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 :


질문이 있습니다. 그리고 왜 0이 아닌 첫 번째 요소에서 루프를 시작합니까?

 
Dark Kchlyzov :

예제를 작성하는 것이 어렵지 않다면 어떻게 작성해야 할까요?

거래 경험이 있지만 MQL 4를 배우기 시작했습니다.

MqlRates를 통해 다음과 같이 배열을 선언합니다.

 MqlRates Bar_data_D1[];

즉, 2차원 배열 대신 1차원 배열을 얻습니다. MqlRates는 일반 구조입니다("언어 기본" - "데이터 유형" - "구조, 클래스, 인터페이스" 섹션의 MQL4 참조에 설명됨). 이 경우에 필요한 모든 필드가 있습니다. 다음과 같이 연락할 것입니다.

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

i는 배열의 인덱스입니다.

마찬가지로 촛대 매개변수를 기록하기 위한 고유한 구조를 만들 수 있습니다. 필요하지 않은 두 필드(spread 및 real_volume)만큼 Mqlrates보다 작은 것으로 판명됩니다. 구조는 다음과 같습니다.

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

이러한 구조의 배열 선언은 다음과 같습니다.

BarData Bar_data_D1[];

구조의 멤버에 액세스 하는 것은 MqlRates 구조의 멤버에 액세스하는 것과 유사합니다.

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

정확히!

 
Ihor Herasko :

MqlRates를 통해 다음과 같이 배열을 선언합니다.

즉, 2차원 배열 대신 1차원 배열을 얻습니다. MqlRates는 일반 구조입니다("언어 기본" - "데이터 유형" - "구조, 클래스, 인터페이스" 섹션의 MQL4 참조에 설명됨). 이 경우에 필요한 모든 필드가 있습니다. 다음과 같이 연락할 것입니다.

i는 배열의 인덱스입니다.

마찬가지로 촛대 매개변수를 기록하기 위한 고유한 구조를 만들 수 있습니다. 필요하지 않은 두 필드(spread 및 real_volume)만큼 Mqlrates보다 작은 것으로 판명됩니다. 구조는 다음과 같습니다.

이러한 구조의 배열 선언은 다음과 같습니다.

구조의 멤버에 액세스 하는 것은 MqlRates 구조의 멤버에 액세스하는 것과 유사합니다.

알았어 내일 해볼게!

도와 주셔서 감사합니다. 파악되는 대로 다시 작성하겠습니다.