mql4 언어의 기능, 미묘함 및 작업 방법 - 페이지 5

 
Artyom Trishkin :

지금은 확인할 수 없지만 MQL_TESTER에 다른 모든 것이 포함되어 있는 것 같습니다. 그러나 다른 모든 것은 서로를 별도로 포함하지 않습니다.

즉, 프로그램이 테스터에서(나열된 모드 중 하나에서) 작동한다는 것을 이해하려면 맨 처음 플래그만 확인하는 것으로 충분합니다.

예는 다른 것에 관한 것이었습니다.
 
fxsaber :
예는 다른 것에 관한 것이었습니다.
그런 다음 나는 이해하지 못했습니다. 무엇에 대해?
 
Artyom Trishkin :
그런 다음 나는 이해하지 못했습니다. 무엇에 대해?
static const는 함수에 의해 초기화됩니다.
 
fxsaber :
static const는 함수에 의해 초기화됩니다.
A-ah-ah ..., "... Semyon-Semeyoyoyonych"... (c)
 
fxsaber :
static const는 함수에 의해 초기화됩니다.

1. 프로그램에서 이것은 어디에 있습니까?

전역 변수 분야에서 가정합니다. 전역 변수는 정적 수정자가 필요하지 않지만 초기화 순서도 매우 중요한 역할을 한다는 것은 말할 것도 없습니다.

내 프로그래밍 전문성 수준은 당신보다 훨씬 낮습니다. 그래서 나는 당신이 생각조차하지 않는 수준에서 몇 가지 실험을하고 있습니다 ... 아마도.

다음은 초기화 순서입니다. (모르는 사람들을 위해)

먼저 전역 수준 변수, OnInit(), OnTick() 또는 OnCalculate() 함수의 우선 순위에 따라 위치하는 정적 변수... 그런 다음 관심이 없었지만 한 번에 로컬 변수였습니다. 따라서 이 코드에서 함수는 정적 변수 초기화가 끝나기 전에 호출되므로 문제의 오류가 발생합니다. stInt 변수가 초기화되기 전에 함수가 호출되었습니다.

2. 이 스레드의 시작 부분에서 우리는 OrderClosePrice() 가격으로 주문을 마감하는 것에 대해 이야기했습니다. 기억하시나요? 역시 작동하지만 문제가 발생할 수 있습니다 ...이 경우에도 마찬가지입니다.

따라서 인증서에 그러한 기회가 없습니다. g *** 코드를 작성할 때 문서에 명시된 내용이 작동하지 않는다는 주장으로 SD를 채우지 않도록 합니다. 여기에 그러한 프로그래머가 얼마나 많은지 알고 있습니다. 그리고 얼마나 많은 평생 금지된 부적절함. 또 아마...

 
Alexey Viktorov :
분명히 그들은 한 구절의 단어 사이에서 무언가를 읽었습니다.

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

mql4 언어의 기능, 미묘함 및 작업 방법

fxsaber , 2017.04.29 10:54

정적이라는 주제에 관해서는 두 언어 모두에 미묘한 점이 있습니다.

이 구문에는 숨겨진 하위 텍스트가 없습니다.


는 어떤 경우에도 작동합니다.

 
fxsaber :
분명히 그들은 한 구절의 단어 사이에서 무언가를 읽었습니다.

이 구문에는 숨겨진 하위 텍스트가 없습니다.


는 어떤 경우에도 작동합니다.

따라서 귀하의 문구 외에도 오류가 있는 코드의 예가 제공 되는 링크 가 있습니다. 내 대답은 당신의 문구가 아니라 g *** 코드를 참조하는 그 잘못된 코드에 대한 것입니다.

귀하의 코드 예제가 제대로 작동하고 있다는 데 의심의 여지가 없습니다.

 
Alexey Viktorov :

따라서 귀하의 문구 외에도 오류가 있는 코드의 예가 제공 되는 링크 가 있습니다.

지점 이름에는 "미묘함"이라는 단어가 있습니다. 그 코드는 미묘함을 보여줍니다.

언뜻 보면 개발자가 이 코드를 작동하도록 허용하지 않을 이유가 없습니다. 작성자가 보고 싶었던 것입니다. 그들이 하든 하지 않든 그것은 SD에 대한 그의 적용입니다. 그러나 예 자체는 암시적입니다.

 
fxsaber :

지점 이름에는 "미묘함"이라는 단어가 있습니다. 그 코드는 미묘함을 보여줍니다.

언뜻 보면 개발자가 이 코드를 작동하도록 허용하지 않을 이유가 없습니다. 작성자가 보고 싶었던 것입니다. 그들이 하든 하지 않든 그것은 SD에 대한 그의 적용입니다. 그러나 예 자체는 암시적입니다.

이것은 우리의 대화 후에 미묘한 부분에 적용되기 시작했습니다. 그리고 이전 에는 오류 메시지 와 같았습니다. 그냥 실수라고 할 수 없습니다.

그러한 코드가 원하는 대로 작동하도록 초기화 순서를 변경하는 방법에 대한 제안이 있습니까? 어떤 이유에서인지 이 응용 프로그램이 응답하지 않고 중단될 것 같습니다.

 
Alexey Viktorov :

이것은 우리의 대화 후에 미묘한 부분에 적용되기 시작했습니다. 그리고 이전 에는 오류 메시지 와 같았습니다. 그냥 실수라고 할 수 없습니다.

이것이 실수였다면 다른 지점이 선택되었을 것입니다. 더군다나 나는 리포스트조차 하지 않을 것이다. 왜냐하면 SD에서 응용 프로그램이 중단됩니다. 이것이 바로 알아두면 유용한 미묘함입니다.

그러한 코드가 원하는 대로 작동하도록 초기화 순서를 변경하는 방법에 대한 제안이 있습니까? 어떤 이유에서인지 이 응용 프로그램은 응답하지 않고 중단될 것 같습니다.

프로그래머가 아닙니다. C ++에서 이 코드가 작동한다고 가정합니다.
사유: