오류, 버그, 질문 - 페이지 1631

 
fxsaber :
mt5, 1375는 업데이트 후 발생했습니다. winhp32

무엇을 위한 업데이트인가? 가능한 결함을 지적하는 경우 잉크를 절약하지 말고 가능한 한 자세히 상황을 표시하십시오.

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

카르푸토프 블라디미르 , 2016.08.07 14:11

  1. MetaEditor의 빌드는 무엇입니까?
  2. MT4 또는 MT5에서 실행 중입니까?
  3. 그 전에는 정확히 이 MetaEditor에서 파일을 열었습니까?
  4. MetaEditor' 파일에 대한 권한으로, 어떻게 되고 있습니까?
  5. 최근에 발생했습니까 아니면 터미널을 설치한 직후에 발생했습니까?
  6. 어떤 운영 체제를 실행하고 있습니까(Windows, Wine에서)?

 

런타임 에러

시퀀싱:

1. 오류가 발생할 때까지 같은 유형의 텍스트를 차트에 한 줄씩 표시하는 Test.ex5 전문가를 실행합니다.

2. 동일한 차트에서 오류를 보여주는 단순화된 스크립트를 실행합니다.

//Test.ex5 //Проверочный скрипт void OnStart () {          string text1 = NULL ;                        :: ChartGetString ( 0 , CHART_COMMENT , text1 ); //(1)          string text2 = :: ChartGetString ( 0 , CHART_COMMENT ); //(2)          if ( text1 != text2 )                  Print ( :: StringLen ( text1 ), "-" , :: StringLen ( text2 ));          else                  Print ( "OK" ); }

우리는 결과를 얻는다

2016.08.08 02:21:25.979 테스트 (EURUSD,M15) 120-136

... "OK"여야 합니다.

파일:
Test.ex5  13 kb
 
A100 :

런타임 에러

시퀀싱:

1. 오류가 발생할 때까지 같은 유형의 텍스트를 차트에 한 줄씩 표시하는 Test.ex5 전문가를 실행합니다.

2. 동일한 차트에서 오류를 보여주는 단순화된 스크립트를 실행합니다.

우리는 결과를 얻는다

2016.08.08 02:21:25.979 테스트 (EURUSD,M15) 120-136

... "OK"여야 합니다.

ChartGetString 호출 사이에 오류가 표시되지 않고 차트 주석이 변경되었으므로 행 간의 차이는 16자이며 차트 주석에 추가된 행의 크기일 뿐입니다.
 
Ilyas :
ChartGetString 호출 사이에 오류가 표시되지 않고 차트 주석이 변경되었으므로 행 간의 차이는 16자이며 차트 주석에 추가된 행의 크기일 뿐입니다.

Expert Advisor가 언로드됩니다(즉, 차트에 더 이상 영향을 줄 수 없음). 테스트 스크립트를 다운로드합니다(10줄). 질문: 다음 중 플롯 주석을 변경하는 행은 무엇입니까?

:: ChartGetString() 호출 사이에 코드가 없습니다.

파일:
Test.ex5  6 kb
 

포럼의 모바일 버전은 어떻습니까?

"답장"을 누르면 htlm 코드 악어와 함께 인용문이 나타납니다. 그리고 커서를 꺼낼 수 없습니다.

안드로이드 2.3.4


 
A100 :

Expert Advisor가 언로드됩니다(즉, 차트에 더 이상 영향을 줄 수 없음). 테스트 스크립트를 다운로드합니다(10줄). 질문: 다음 중 플롯 주석을 변경하는 행은 무엇입니까?

:: ChartGetString() 호출 사이에 코드가 없습니다.

작업별(차트 작업은 동기/순차적이며 EA와 스크립트는 자체 스레드에서 작동합니다):

  1. 스크립트는 첫 번째 ChartGetString을 호출합니다.
  2. 전문가 가 ChartSetString을 호출합니다.
  3. 전문가가 일을 끝내다
  4. 스크립트는 두 번째 ChartGetString을 호출합니다.
 
Ilyas :
작업별(차트 작업은 동기/순차적이며 EA와 스크립트는 자체 스레드에서 작동합니다):

  1. 스크립트는 첫 번째 ChartGetString을 호출합니다.
  2. 전문가 가 ChartSetString을 호출합니다.
  3. 전문가가 일을 끝내다
  4. 스크립트는 두 번째 ChartGetString을 호출합니다.

Expert Advisor Test.ex5는 아무 것도 호출할 수 없습니다(항목 2). 스크립트가 실행될 때 이미 미리 언로드되었기 때문입니다.

저것들. 항목 3은 분명히 항목 1보다 앞서 있습니다.

아래는 Test.ex5 스크립트의 결과입니다.

2016.08.08 02:21:25.979 테스트 (EURUSD,M15) 120-136

..."OK"여야 합니다.

 
A100 :

Expert Advisor Test.ex5는 아무 것도 호출할 수 없습니다(항목 2). 스크립트가 실행될 때 이미 미리 언로드되었기 때문입니다.

저것들. 항목 3은 분명히 항목 1보다 앞서 있습니다.

아래는 Test.ex5 스크립트의 결과입니다.

2016.08.08 02:21:25.979 테스트 (EURUSD,M15) 120-136

..."OK"여야 합니다.

ExpertRemove는 차트에서 Expert Advisor를 즉시 제거하지 않고 OnTick 완료 시에만 제거합니다. 그리고 이것은 exit() 함수와 유사하지 않습니다.

로그의 인용문은 ExpertRemove() 함수가 호출 되었다는 사실만을 보여줍니다. Expert Advisor가 언로드되었다는 사실은 "expert Removed" 항목과 함께 클라이언트 터미널의 로그에 반영됩니다.

전문가의 출처 표시

 
Slawa :

로그의 인용문은 ExpertRemove() 함수가 호출 되었다는 사실만을 보여줍니다. Expert Advisor가 언로드되었다는 사실은 "expert Removed" 항목과 함께 클라이언트 터미널의 로그에 반영됩니다.

자세한 작업 순서:

  1. 새 차트 열기
  2. 차트에서 Test.ex5 Expert Advisor를 실행합니다(몇 초 후 Experts 탭에 다음과 같은 메시지가 나타납니다: '2016.08.08 15:40:47.267 Test (EURUSD,M15) ExpertRemove() function called' 및 Expert Advisor가 차트에서 언로드됩니다.
  3. 로그 탭에 '2016.08.08 15:40:47.286 전문가 전문가 테스트(EURUSD,M15) 제거됨'과 같은 메시지가 표시되는지 확인합니다.
  4. 동일한 차트에서 스크립트 Script1.ex5 실행(여기서 스크립트 이름은 Expert Advisor 이름과 겹치지 않음)

결과적으로 전문가 탭에 다음 메시지가 나타납니다. '2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) 120-136'
'2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK'여야 합니다.

 //Script1.mq5
void OnStart ()
{
         string text1 = NULL ;
                       ChartGetString ( 0 , CHART_COMMENT , text1 ); //(*)
         string text2 = ChartGetString ( 0 , CHART_COMMENT );
         if ( text1 != text2 )
                 Print ( StringLen ( text1 ), "-" , StringLen ( text2 ));
         else
                 Print ( "OK" );
}
파일:
Test.ex5  13 kb
Script1.ex5  7 kb
 
A100 :

'2016.08.08 15:52:43.173 Scripts1 (EURUSD,M15) OK'여야 합니다.

이것은 Script1.mq5의 줄(*)을 다음으로 바꾸면 쉽게 알 수 있습니다.

               text1 = ChartGetString ( 0 , CHART_COMMENT );