MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 1317

 

모두를 환영합니다! 모두 미리 감사드립니다!

이 유형의 오류:

라인이 있다   배열에서 찾고 있는 상대적인 Low_D1_Level   Bar_data_D1[][6]; 새로운 수준   최소_D_레벨

//---   전역 변수

이중 Low_D1_Level;

이중 Bar_data_D1[][6]; // 지정된 차트의 막대 데이터를 배열에 복사하고 복사한 막대의 개수를 반환 D1

배열의 첫 번째 차원에는 막대 수가 포함됩니다. 두 번째 차원에는 값이 있는 6개의 요소가 있습니다.

0 - 시간(시간),
1 - 시가(오픈),
2 - 최저 가격(낮음),
3 - 가장 높은 가격(높음),
4 - 종가(종가),
5 - 볼륨.

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

인쇄

 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 :
도와주세요.

나는 모든 것을 시도했지만 여전히 오류 130 을 제공합니다.

모든 것이 나를 위해 작동합니다. 오류가 없습니다.

 

전략 테스터 에서 2016.12.15부터 실행합니다.

 2016.12 . 16
 
MakarFX :

모든 것이 나를 위해 작동합니다. 오류가 없습니다.

최적화를 실행합니다 . Critical Error 메시지로 인해 최적화가 중단되었습니다.

 
Aliaksei Karalkou :
도와주세요.

나는 모든 것을 시도했지만 여전히 오류 130 을 제공합니다.

도움에서

 
Dark Kchlyzov :

사이클이 어떻게 끝나는지 이해하지 못합니까?

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

이론적 으로 배열의 마지막 요소 여야 합니다. 아니다?

그런 다음 불평등을 확인하십시오.

 for ( int i = 0 ; i< ArrayRange (Bar_data_D1, 0 ) ;i++)
   {
   if (Bar_data_D1 [i][ 2 ]>= 0 )
      {
      
      }
   }
그러면 어레이를 넘어서는 놀라움이 없을 것입니다.
 
Aliaksei Karalkou :

최적화를 실행합니다 . Critical Error 메시지로 인해 최적화가 중단됨

2016년 1월 12일부터 오늘까지 최적화된 오류 없음


 

괜찮으시다면 https://www.mql5.com/ru/forum/357558로 이동하십시오.

모든 것이 자세히 나와 있습니다.

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


내 게시물을 업데이트했습니다
 
Aleksei Stepanenko :

사이클이 어떻게 끝나는지 이해하지 못합니까?

이론적 으로 배열의 마지막 요소 여야 합니다. 아니다?

그런 다음 불평등을 확인하십시오.

그러면 어레이를 넘어서는 놀라움이 없을 것입니다.
알렉세이 스테파넨코 :

사이클이 어떻게 끝나는지 이해하지 못합니까?

이론적 으로 배열의 마지막 요소 여야 합니다. 아니다?

그런 다음 불평등을 확인하십시오.

그러면 어레이를 넘어서는 놀라움이 없을 것입니다.

알겠습니다. 바로 시도하겠습니다.

고맙습니다!