포럼을 어지럽히 지 않도록 모든 초보자 질문. 프로, 놓치지 마세요. 너 없이는 아무데도 - 6. - 페이지 9

 
gyfto :

if((ba)*(ca)*(da)>0)을 쓸 수 있지만 더 빨리 작동한다는 사실은 그렇지 않습니다. 논리 AND는 이진 곱셈입니다. 동일한 표현식을 작성하는 다른 방법일 뿐입니다. 차이점은 변수 유형의 크기뿐입니다. a>b는 부울 변수인 4바이트이고 ba가 두 배이면 차이는 두 배(8바이트)가 되고 이 곱셈은 최소 2배 더 깁니다.


귀중한 조언.

이제 설명하겠습니다. 표현식을 if((a>b)*(a>c)*(a>d)==1) 로 다시 작성할 수도 있습니다. 괄호 안의 표현식은 0 또는 1 값을 취하기 때문입니다. 사전 컴파일러에서 정의에서 false 및 true로 정의됨).

감사합니다. 더 빨리 작동할 것 같습니다.
 

얘들아, 제발 말해줘

전략 테스트 모드에서 최적화 속성의 숫자를 변경할 수 없습니다.

최소 잔액 200

최대 이익 10000

등.

문제가 무엇입니까?

 

init , startdeinit 가 반환할 수 있는 값을 알려주시겠습니까? 그리고 그들은 무엇을 의미합니까?

포럼을 검색하려고했지만 찾을 수 없습니다. 이 정보는 가이드에 없습니다. 아마도 기밀 정보일 것입니다. :)) ( 감정글 삭제... )

내가 추측하는 것처럼 - "0" - 모든 것이 잘 진행되었습니다 ... 하지만, 왜냐하면. 그들의 유형은 정수이고 분명히 2 개의 값만있을 수 없습니다 ...

 
Chiripaha :

init , startdeinit 가 반환할 수 있는 값을 알려주시겠습니까? 그리고 그들은 무엇을 의미합니까?

포럼을 검색하려고했지만 찾을 수 없습니다. 이 정보는 가이드에 없습니다. 아마도 기밀 정보일 것입니다. :)) ( 감정적인 텍스트가 삭제되었습니다... )

내가 추측하는 것처럼 - "0" - 모든 것이 잘 진행되었습니다 ... 하지만, 왜냐하면. 그들의 유형은 정수이고 분명히 2 개의 값만있을 수 없습니다 ...

이것은 꽤 최근에 논의되었습니다. 참조:

MQL4에는 사전 정의된 이름을 가진 3개의 함수가 있습니다.

init()는 모듈 초기화 중에 호출되는 함수입니다. 없는 경우 초기화 중에 함수가 호출되지 않습니다.

start()는 주요 기능입니다. 다음 틱이 도착한 후 Expert Advisors를 위해 호출됩니다. 지표가 차트에 연결된 후 재계산할 때, 클라이언트 터미널을 열 때(지표가 차트에 연결된 경우), 다음 틱이 도착한 후에도 사용자 지정 지표에 대해 호출됩니다. 스크립트의 경우 차트에 첨부하고 초기화를 수행한 직후에 실행됩니다. 모듈에 start() 함수가 포함되어 있지 않으면 이 모듈(EA, 스크립트 또는 사용자 지정 표시기)을 시작할 수 없습니다.

deinit() - 모듈 초기화 해제 중에 호출되는 함수. 없으면 초기화 해제 중에 함수가 호출되지 않습니다.

미리 정의된 함수는 매개변수를 가질 수 있습니다. 그러나 클라이언트 단말에서 이러한 함수를 호출하면 외부에서 매개변수가 전달되지 않고 기본값이 사용됩니다.
start(), init() 및 deinit() 함수는 다른 함수와 함께 일반 규칙에 따라 모듈의 어느 곳에서나 호출할 수 있습니다.

모듈 초기화 시 차트 데이터, 시장 가격 등이 준비되지 않을 수 있으므로 init() 함수에서 start()를 호출하거나 거래 작업을 수행하는 것은 바람직하지 않습니다. init() 및 deinit() 함수는 가능한 한 빨리 작업을 완료해야 하며 어떠한 경우에도 start() 함수가 호출되기 전에 본격적인 작업을 시작하려는 시도에 끼어들지 않아야 합니다.

시스템 호출을 사용하면 반환 값이 없습니다.
 

좋아요, 그럼 질문을 명확히 하려고 합니다.

예를 들어 초기화 단계에서 일부 매개변수를 확인하고 결과에 따라 시작 단계로 전달하거나 전달하지 않기를 원합니다.

Vadim 님의 의견을 올바르게 이해했다면 초기화 결과에 값이 없고(이 경우) 시작 기능이 시작됩니까? 주위에 방법이 없나요? 시작 시 이 수표를 복제해야 합니까?

 

그런 다음 처음부터 init를 직접 호출해야 합니다.

왜 그러한 어려움이 있습니까? 전역 변수 는 아직 취소되지 않았습니다 ...

 
Chiripaha :

좋아요, 그럼 질문을 명확히 하려고 합니다.

예를 들어 초기화 단계에서 일부 매개변수를 확인하고 결과에 따라 시작 단계로 전달하거나 전달하지 않기를 원합니다.

Vadim 님의 의견을 올바르게 이해했다면 초기화 결과에 값이 없고(이 경우) 시작 기능이 시작됩니까? 주위에 방법이 없나요? 시작 시 이 수표를 복제해야 합니까?

루스탐은 이렇게 대답했습니다.

자주 묻는 질문 :

그런 다음 처음부터 init를 직접 호출해야 합니다.

왜 그러한 어려움이 있습니까? 전역 변수는 아직 취소되지 않았습니다 ...

전역 수준에서 변수를 선언하고 필요에 따라 초기화합니다. 한 모듈의 모든 기능은 전역 변수 를 봅니다.
 
Zhunko :

루스탐은 이렇게 대답했습니다.

전역 수준에서 변수를 선언하고 필요에 따라 초기화합니다. 한 모듈의 모든 기능은 전역 변수를 봅니다.

예, 예를 들어 프로그램에 대한 액세스를 제한 하기 위한 검사가 아닌 한.
 
FAQ :

그런 다음 처음부터 init를 직접 호출해야 합니다.

왜 그러한 어려움이 있습니까? 전역 변수는 아직 취소되지 않았습니다 ...


플래그로 확인하는게 더 쉽겠죠? Ess하지만 글로벌..
 
hoz :

플래그로 확인하는게 더 쉽겠죠? Ess하지만 글로벌..

아니, 더 쉽지 않습니다. 왜냐하면 음수 플래그(또는 전역 변수 )가 있는 경우 검사를 계속 실행해야 합니다. 플래그와 전역 모두 긍정적인 경우에만 작동합니다. 그리고 일부 기능은 여전히 시작에 필요합니다(여기서는 다르게 발생하지만).

무슨 말을 하든, 처음에는 실행하는 것이 모두 동일합니다. "초기화"의 반복을 통해, 눈속임은 덜하지만 필요한 기능의 반복을 통해 말입니다.

사유: