초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 503

 
Vladimir Fionov :
통화쌍의 경우 한도를 설정하면 모든 것이 작동하지만 어떤 이유로 시간 프레임이 작동하지 않는 경우 h1을 넣어도 표시기가 작동하지 않습니다

https://docs.mql4.com/en/chart_operations/periodwindow

https://docs.mql4.com/en/constants/chartconstants/enum_timeframes

반환 값 현재 차트의 기간(분)입니다.

 if ( Period () != 60 )   return (- 1 ); // для H1

시도해 보세요. 효과가 있을 수 있습니다.

 if ( Period () != PERIOD_H1 )   return (- 1 );

또는 따옴표를 제거하십시오.

Period - Документация на MQL4
  • docs.mql4.com
Period - Документация на MQL4
 
Vladimir Zubov :

https://docs.mql4.com/en/chart_operations/periodwindow

https://docs.mql4.com/ru/constants/chartconstants/enum_timeframes

반환 값 현재 차트의 기간(분)입니다.

시도해 보세요. 효과가 있을 수 있습니다.

정말 감사합니다, 성공했습니다!!!
 
또 다른 질문은 #property strict 표시자가 'Indicator name'(100,41)에서 범위를 벗어난 오류 배열을 제공할 때 처음에 추가할 때 처리하는 방법입니다.

 
Vladimir Fionov :
또 다른 질문은 #property strict 표시자가 'Indicator name'(100,41)에서 범위를 벗어난 오류 배열을 제공할 때 처음에 추가할 때 처리하는 방법입니다.

범위를 벗어난 배열 을 수정해야 합니다. 코드의 문제 현지화: 100행, 위치 42에 있는 문자.
 
Vladimir Fionov :

그리고 여기에 무엇이 잘못 되었습니까?

  1. 포럼에 코드를 올바르게 붙여넣으십시오.
  2. " ema[] " 배열에 대한 범위를 벗어난 오류를 수정해야 합니다. 아마도 " limit " 변수를 잘못 계산하고 있을 것입니다.
 
Karputov Vladimir :
  1. 포럼에 코드를 올바르게 붙여넣으십시오.
  2. " ema[] " 배열에 대한 범위를 벗어난 오류를 수정해야 합니다. 아마도 " limit " 변수를 잘못 계산하고 있을 것입니다.
죄송합니다. 코드를 삽입하는 방법을 몰랐지만 코드 자체에 대해 #property strict를 삽입하고 이 코드 없이는 모든 것이 작동할 때 왜 이런 일이 발생합니까?
 
Vladimir Fionov :
죄송합니다. 코드를 삽입하는 방법을 몰랐지만 코드 자체에 대해 #property strict를 삽입하고 이 코드 없이는 모든 것이 작동할 때 왜 이런 일이 발생합니까?

MetaEditor'에서 도움말을 보셨습니까?

함수 작업, 변수 범위 및 로컬 배열의 메모리 해제도 변경되었습니다. 많은 변경 사항이 있었기 때문에 MQL4 프로그램 작성에 대한 이전 접근 방식과의 최대 호환성을 보장하기 위해 새로운 #property strict 속성을 도입하기로 결정했습니다. MQL4 마법사를 사용하여 새 MQL4 프로그램을 생성할 때 이 속성은 항상 템플릿에 추가됩니다.

그리고 더:

컴파일러 간의 차이점 표:

이전 MQL4 컴파일러

새로운 MQL4 컴파일러

#property strict가 있는 새로운 MQL4 컴파일러

진입점 init(), start(), deinit()는 모든 매개변수와 반환 유형을 가질 수 있습니다.

init(), start(), deinit(), 호환성을 위해 왼쪽,

그리고 new OnInit() , OnStart() , OnCalculate() , OnTick() , OnTimer() , OnChartEvent() , OnTester() , OnDeinit() 는 서명과 정확히 일치해야 합니다.

같은

init() 함수의 반환 결과는 실행 하위 시스템에서 어떤 식으로든 구문 분석되지 않습니다.

init() 및 OnInit() 함수의 반환 결과는 실행 하위 시스템에서 어떤 식으로든 분석되지 않습니다.

OnInit()에서 0이 아닌 값이 반환되면 Expert Advisor 또는 표시기의 실행이 종료되고 프로그램이 언로드됩니다.

특수 문자 및 점을 포함한 거의 모든 변수 이름(예약어 제외)

변수 이름에는 특수 문자나 점을 사용할 수 없습니다.

예약어 목록이 확장되어 short, long, const 등과 같은 일반적인 단어는 이름이 될 수 없습니다.

같은

변수 범위 - 선언(중첩 블록에서도)에서 함수 끝까지

같은

변수의 범위는 선언에서 변수가 선언된 블록 끝까지입니다.

0으로 모든 변수(글로벌 및 로컬 모두)의 암시적 초기화

같은

전역 변수만 초기화합니다. 지역 변수 중 문자열만 암시적으로 초기화됩니다.

함수를 종료할 때 로컬 배열이 해제되지 않습니다.

함수가 종료되면 로컬 배열이 해제됩니다.

{} 블록을 종료하면 로컬 배열이 해제됩니다.

"Array out of range" 오류 로 인해 치명적인 오류가 발생하지 않음*

같은. 이 오류가 중요한 구조체 및 클래스 배열 제외

"Array out of range" 는 심각한 오류이며 프로그램을 중지시킵니다.

구조 또는 클래스 없음

구조체와 클래스 가 있습니다. 추가 데이터 유형 추가

같은

문자열은 단일 바이트입니다.

날짜 시간 - 32비트 정수

사전 정의된 변수 Volume은 double 유형입니다.

문자열은 유니코드입니다.

날짜 시간 - 64비트 정수

사전 정의된 변수 Volume 은 유형이 long입니다.

같은

ArrayCopyRates() 는 배열 double[][6]에 가상 복사를 수행합니다.

ArrayCopyRates() 는 MqlRates[] 배열로 가상 복사를 수행합니다. 호환성을 위해 double[][6] 배열로 복사하는 것은 유지되지만 이 복사는 가상이 아니라 실제입니다.

같은

함수는 유형이 있더라도 값을 반환하지 않을 수 있습니다. 이렇게 하려면 함수 끝에 컴파일러가 자동으로 return(0)을 넣습니다.

같은

모든 유형의 함수는 항상 값을 반환해야 합니다.

동시에 열린 파일 수 - 32

동시에 열린 파일 수 - 64

같은

파일은 항상 공유 모드로 열립니다**

공유 모드는 FILE_SHARE_READ 및/또는 FILE_SHARE_WRITE로 명시적으로 지정해야 합니다.

같은

스크립트의 경우 extern 변수의 이름이 입력 매개변수 창에 표시됩니다.

show_inputs 모드의 스크립트의 경우 extern 및 입력 변수의 이름이 입력 매개변수 창에 표시됩니다.

show_inputs 모드의 스크립트의 경우 입력 매개변수 창에 extern입력 변수 이름 대신 줄 주석이 표시됩니다.

* "Array out of range" 오류에 특별한 주의를 기울여야 합니다. 차트에서 실행할 때 많은 오래된 사용자 지정 표시기가 엄격 모드의 새 컴파일러에서 이 오류를 발생시킵니다. 원인을 찾아 제거하는 것이 좋습니다.

** 새 MQL4 및 MQL5에서는 이전 MQL4에 없었던 FILE_SHARE_READ 및 FILE_SHARE_WRITE 플래그가 파일 공유 모드를 담당합니다.

Препроцессор - Документация на MQL4
  • docs.mql4.com
Препроцессор - Документация на MQL4
 
Vladimir Fionov :
말해봐 여기 뭐가 잘못됐어?
   int idx;
   int counted = IndicatorCounted();
   if (counted < 0 ) return (- 1 );
   if (counted > 0 ) counted--;
   int limit = Bars - counted;
   if (counted == 0 ) limit-= 1 ;
이 줄을 추가해 보십시오.
 
Vladimir Fionov :

내가 당신을 얻었다면 미안하지만 지금은이 오류가 발생합니다

39위

동일한 오류, 배열이 범위를 벗어났습니까?
 
Vladimir Zubov :
동일한 오류, 배열이 범위를 벗어났습니까?