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

 
zaskok3 :

아무것도 이해하지 못하는 척 하지 마세요. 플래시 드라이브에서 배경을 훔칠 수 있습니다. 더 많은 방법이 있습니다. 가장 중요한 것은 드래그하는 것입니다. 다른 사람의 컴퓨터에서 할 필요도 없습니다.

당신은 당신의 암호를 넘겨주고, 다른 사람의 컴퓨터에 암호 저장(바인딩)을 켜고 그것을 구멍이라고 불렀습니다. 동시에 그들은 자신이 암호 저장을 켜는 것을 마지막까지 숨겼습니다.

결론은 논리적입니다. 이미 12개의 클론이 재발을 방지하고 있습니다.

 
Renat Fatkhullin :
MetaEditor의 기능을 변경하고, 변수를 강조 표시하고, 디버거에서 사용된 모든 변수를 자동으로 생성할 계획이 있습니까? Qt Creator IDE 또는 VS에서와 같이.
 
coderex :
MetaEditor의 기능을 변경하고, 변수를 강조 표시하고, 디버거에서 사용된 모든 변수를 자동으로 생성할 계획이 있습니까? Qt Creator IDE 또는 VS에서와 같이.
예, 확실히.
 
Renat Fatkhullin :
예, 확실히.
얼마나 빨리?
 
Slawa :
전역/정적 변수 초기화에 대한 티켓 번호 1416121 을 확인하세요!
 
Alexey Kozitsyn :
전역/정적 변수 초기화에 대한 티켓 번호 1416121 을 확인하세요!

대기열에 있습니다. 요청한지 2시간밖에 되지 않았습니다.

일반적으로 이러한 질문은 포럼에서 해야 합니다. 많은 사람들이 만질 수 있기 때문입니다. 인용해 주시면 바로 답변드리겠습니다

안녕하세요. 틀 렸으면 고쳐줘. 정적 및 전역 변수는 프로그램을 시작하기 전에 한 번 초기화됩니다(즉, OnInit() 함수). 따라서 프로그램이 초기화 해제되는 경우(OnDeinit() 함수 호출) 프로그램은 전역/정적 변수의 값을 "잊어버리고" 다음 OnInit() 실행 전에 초기 값으로 초기화해야 합니다.

mql4 Expert Advisors에서 흥미로운 사실을 발견했습니다. 거기에서 전역/정적 변수를 선언하면, 예를 들어 입력 매개변수를 변경할 때, 즉 OnDeinit() 함수 후에 이러한 변수의 값은 재설정되지 않습니다 . 그러나 표시기에서는 재설정 됩니다. 어떻게 될 것인가, 어떻게 해야 할까? 버그처럼 보입니다.

mql5(빌드 1241 x64)에서 확인했습니다. 유사합니다. Expert Advisors에서는 재설정되지 않고 표시기에서는 재설정됩니다.

이것은 의도된 동작입니다. 또한 설명서에 명시적으로 설명되어 있습니다.

로드 및 언로드 표시기

표시기는 다음과 같은 경우에 로드됩니다.

차트에 지표를 첨부합니다.

터미널 시작(이전 터미널 닫기 전에 지표가 차트에 첨부된 경우)

템플릿 로드(템플릿에 차트에 첨부된 지표가 포함된 경우);

프로필 변경(지표가 프로필 차트 중 하나에 첨부된 경우);

지표가 첨부된 차트의 기호 및/또는 기간 변경;

지표를 성공적으로 재컴파일한 후 이 지표가 차트에 첨부된 경우.

표시기의 입력 매개변수 변경.

표시기는 다음과 같은 경우에 언로드됩니다.

차트에서 지표를 분리할 때;

터미널 닫기(지표가 차트에 첨부된 경우);

지표가 차트에 첨부된 경우 템플릿을 로드합니다.

지표가 첨부된 차트 닫기;

지표가 변경된 프로필의 차트 중 하나에 첨부된 경우 프로필 변경,

지표가 첨부된 차트의 기호 및/또는 기간 변경;

표시기의 입력 매개변수 변경.

언로딩과 로딩은 모든 것의 완전한 재초기화를 수반합니다.

상위 5개에서 올바르게 언급했듯이 상황은 비슷합니다.

사실, 이것이 역사적으로 4개에서 일어난 방식이며, 새로운 MQL4로 전환할 때 먼저 이 동작을 변경했습니다(전문가처럼, 즉, 예상한 동작이 되도록). 그러나 이전 지표와 관련하여 많은 질문이 생겼습니다. 이전 지표는 초기화를 위해 정확하게 마련되었습니다. 강제로 돌아갔다

상위 5위 안에 드는 것은 아키텍처 때문에 바로 발생했습니다. 매개변수가 변경되면 이전 매개변수가 있는 이전 지표가 소멸되고 변경된 매개변수가 있는 새 지표가 생성됩니다.

Input переменные
Input переменные
  • docs.mql4.com
Input переменные
 
Slawa :
대기열에 있습니다. 요청한지 2시간밖에 되지 않았습니다.

만일을 대비하여 여기에 복사했습니다.

이것은 의도된 동작입니다. 또한 설명서에 명시적으로 설명되어 있습니다 .

여기 저기 봤습니다. 그리고 이것이 논리적이라고 생각합니다. 왜냐하면. 정적 메모리 클래스로 작업하고 있습니다. 그리고 다른 유형의 프로그램과 관련하여 잘 정립된 트릭의 형태로 "트릭"이 있는 경우 정적 메모리 클래스(정적 및 전역 변수).

댓글에 추가해주세요.

 
Alexey Kozitsyn :

만일을 대비하여 여기에 복사했습니다.

여기 저기 봤습니다. 저는 이것이 논리적이라고 생각합니다. 왜냐하면. 정적 메모리 클래스로 작업하고 있습니다. 그리고 다른 유형의 프로그램과 관련하여 잘 정립된 트릭의 형태로 "트릭"이 있는 경우 정적 메모리 클래스(정적 및 전역 변수).

댓글에 추가해주세요.

무슨 말? 프로그램 로드 및 언로드에 대해?
 
Slawa :
무슨 말? 프로그램 로드 및 언로드에 대해?
정적 및 전역 변수의 초기화가 표시기 및 어드바이저의 서로 다른 이벤트로 인해 발생한다는 사실에 대해. "비고" 하위 섹션의 전역 및 정적 변수 에 대한 단락에 각각 추가합니다.
 

도움말 MT5:

 IsStopped
 
Проверяет принудительное завершение работы mql5-программы.
 
bool    IsStopped ();
 
Возвращаемое значение
 
Возвращает true , если в системной переменной _StopFlag содержится значение, отличное от 0 . Ненулевое значение записывается в переменную _StopFlag , если поступила команда завершить выполнение mql5-программы. 
В этом случае необходимо как можно быстрее завершить работу программы, в противном случае программа будет завершена принудительно извне через 3 секунды.

방금 확인했습니다 - 표시기가 차트에서 제거되었지만 3초, 10초, 3분 동안 계속 작동합니다... ( IsStopped 는 거기에서 확인되지 않았으며 질문은 그것에 관한 것이 아닙니다)

1) 도움말에는 3초 강제종료라고 써있지만 실제로는 그렇게 되지 않는 이유

2) 차트에서 제거될 때, 사용자가 테스트를 중지할 때 등의 프로세스(스크립트, 지표, Expert Advisors, 테스터의 에이전트)를 강제 종료하면 안 되는 이유는 무엇입니까?