MT4 개발자 및 프로그래머의 도움이 필요합니다.

 

안녕하세요.

MT4 터미널의 새 빌드는 사용자가 입력 매개변수의 값을 변경할 때 Expert Advisor를 초기화 해제하고 다시 초기화하지 않습니다. 이로 인해 기존 EA와 새로운 MT4 빌드가 근본적으로 호환되지 않습니다. 또한 모든 일회성 계산이 init() 블록에 배치되는 가장 최적화된 Expert Advisor는 비호환성에 해당합니다.

우스꽝스러운 일이 발생합니다. 하나 또는 다른 입력 매개변수 값의 대체를 보장하기 위해 사용자는 차트에서 Expert Advisor를 제거하고 다시 넣어야 합니다. (버튼이 있는 .set 파일에서 매개변수를 로드하려고 시도하지 않았지만 이것이 매개변수 값을 수동으로 변경하는 것과 동일하다고 생각합니다.)

MT4 개발자들에게 deinit(), init() 함수의 호출을 상식으로 되돌려 주실 것을 부탁드립니다.

감사합니다.

추신: 누군가 Expert Advisor의 입력 매개변수 값을 사용자가 교체하는 순간과 사실을 프로그래밍 방식으로 결정하는 메커니즘을 알고 있다면 여기에 대해 적어주세요.

 
적어도 인쇄물을 증거로 보여주십시오.
 

버전: 4.00 빌드 670

(2014년 6월 4일)

 
Wex :


MT4 터미널의 새 빌드는 사용자가 입력 매개변수의 값을 변경할 때 Expert Advisor를 초기화 해제하고 다시 초기화 하지 않습니다 . 이로 인해 기존 EA와 새로운 MT4 빌드가 근본적으로 호환되지 않습니다. 또한 모든 일회성 계산이 init() 블록에 배치되는 가장 최적화된 Expert Advisor는 비호환성에 해당합니다.

제작했습니다. Build 670. 간단한 지문으로 확인하십시오.
 
Wex :

안녕하세요.

MT4 터미널의 새 빌드는 사용자가 입력 매개변수의 값을 변경할 때 Expert Advisor를 초기화 해제하고 다시 초기화하지 않습니다. 이로 인해 기존 EA와 새로운 MT4 빌드가 근본적으로 호환되지 않습니다. 또한 모든 일회성 계산이 init() 블록에 배치되는 가장 최적화된 Expert Advisor는 비호환성에 해당합니다.

우스꽝스러운 일이 발생합니다. 하나 또는 다른 입력 매개변수 값의 대체를 보장하기 위해 사용자는 차트에서 Expert Advisor를 제거하고 다시 넣어야 합니다. (버튼이 있는 .set 파일에서 매개변수를 로드하려고 시도하지 않았지만 이것이 매개변수 값을 수동으로 변경하는 것과 동일하다고 생각합니다.)

MT4 개발자들에게 deinit(), init() 함수의 호출을 상식으로 되돌려 주실 것을 부탁드립니다.

감사합니다.

추신: 누군가 Expert Advisor의 입력 매개변수 값을 사용자가 교체하는 순간과 사실을 프로그래밍 방식으로 결정하는 메커니즘을 알고 있다면 여기에 대해 적어주세요.

시장 조성자들의 계략은 다음과 같습니다. -7 기존 고문의 거품을 날려 버리기
 
IvanIvanov :
시장 조성자들의 계략은 다음과 같습니다. -7 기존 고문의 거품을 날려 버리기
+
 
EA를 다시 작성하는 것은 옵션이 아닌가요?
 

추신. (저는 포럼에서 혀낭비한 사람과 별로 닮지 않은 것 같습니다.) 고문을 붙였습니다. 즉석에서 매개변수 A1 또는 A2의 값을 변경해 보십시오. 시간은 "지나갔고" EA는 새 매개변수 값을 "보지" 않습니다. 사실, "AutoTrading" 버튼을 두 번 클릭하여 초기화를 거치도록 할 수 있습니다. 물론 이것은 일정을 취소하고 다시 설치하는 것보다 빠릅니다. 그러나 그것은 여전히 비논리적입니다. 그러나 그것은 당신에게 달려 있습니다.

물론 바다에서 날씨를 기다리는 것보다 고문을 변경하는 것이 훨씬 쉽습니다. 그럼 다시 간단한 질문을 드리겠습니다. 사용자가 이동 중에 입력 매개변수 값을 변경했다는 정보를 프로그래밍 방식으로 얻는 방법을 아는 사람이 있습니까? 어떤 의미에서 가치의 변화와 시간의 순간.

실제로 MT4 터미널의 새 빌드는 이전 빌드보다 훨씬 좋습니다. 이 경우 Sleep() 함수를 실행하는 동안 매개변수 값의 교체가 발생합니다. 확실히 이것은 진보입니다. 이러한 경우 이전 어셈블리는 값 변경을 전혀 허용하지 않았습니다. 더 정확하게는 사용자가 입력 매개 변수가 있는 창을 가져오는 것조차 허용하지 않았습니다. 나는 고객에게 먼저 터미널 패널의 버튼으로 어드바이저를 끄고 매개변수를 변경한 다음 어드바이저를 다시 켜야 한다고 말했습니다. 그러나 이제 사용자는 장애물이 없으며 입력 매개변수가 변경되었다는 환상을 갖게 되었습니다. 더욱이 새로운 예는 init() 블록에서 얻은 복사본뿐만 아니라 원래 입력 매개변수도 Expert Advisor에서 변경되지 않고 "Inputs" 탭의 속성 창에서 변경되었음을 보여줍니다. 불일치가 분명합니다.

파일:
PROBLEM.mq4  2 kb
 
Wex :

추신. (저는 포럼에서 혀낭비한 사람과 별로 닮지 않은 것 같습니다.) 고문을 붙였습니다. 즉석에서 매개변수 A1 또는 A2의 값을 변경해 보십시오. 시간은 "지나갔고" EA는 새 매개변수 값을 "보지" 않습니다. 사실, "AutoTrading" 버튼을 두 번 클릭하여 초기화를 거치도록 할 수 있습니다. 물론 이것은 일정을 취소하고 다시 설치하는 것보다 빠릅니다. 그러나 그것은 여전히 비논리적입니다. 그러나 그것은 당신에게 달려 있습니다.

물론 바다에서 날씨를 기다리는 것보다 고문을 변경하는 것이 훨씬 쉽습니다. 그럼 간단한 질문 하나 더 드리겠습니다. 사용자가 이동 중에 입력 매개변수 값을 변경했다는 정보를 프로그래밍 방식으로 얻는 방법을 아는 사람이 있습니까? 어떤 의미에서 가치의 변화와 시간의 순간.

실제로 MT4 터미널의 새 빌드는 이전 빌드보다 훨씬 좋습니다. 이 경우 Sleep() 함수를 실행하는 동안 매개변수 값의 교체가 발생합니다. 확실히 이것은 진보입니다. 이러한 경우 이전 어셈블리는 값 변경을 전혀 허용하지 않았습니다. 더 정확하게는 사용자가 입력 매개 변수가 있는 창을 가져오는 것조차 허용하지 않았습니다. 나는 고객에게 먼저 터미널 패널의 버튼으로 어드바이저를 끄고 매개변수를 변경한 다음 어드바이저를 다시 켜야 한다고 말했습니다. 그러나 이제 사용자는 장애물이 없으며 입력 매개변수가 변경되었다는 환상을 갖게 되었습니다. 더욱이 새로운 예는 init() 블록에서 얻은 복사본뿐만 아니라 원래 입력 매개변수도 Expert Advisor에서 변경되지 않고 "Inputs" 탭의 속성 창에서 변경되었음을 보여줍니다. 불일치가 분명합니다.

비초기화 사유 를 활용하려 했는가?

 UninitializeReason ()
 REASON_PARAMETERS

물론 대각선으로 읽을 수도 있지만 ... 같은 것을 사용합니다 ...

 
Wex :

추신. (저는 포럼에서 혀를 낭비한 사람과 별로 닮지 않은 것 같습니다.) EA를 첨부했습니다. 즉석에서 매개변수 A1 또는 A2의 값을 변경해 보십시오. 시간은 "지나고" EA는 새 매개변수 값을 "보지" 않습니다. 사실, "AutoTrading" 버튼을 두 번 클릭하여 초기화를 거치도록 할 수 있습니다. 물론 이것은 일정을 취소하고 다시 설치하는 것보다 빠릅니다. 그러나 그것은 여전히 비논리적입니다. 그러나 그것은 당신에게 달려 있습니다.

물론 바다에서 날씨를 기다리는 것보다 고문을 변경하는 것이 훨씬 쉽습니다. 그럼 다시 간단한 질문을 드리겠습니다. 사용자가 이동 중에 입력 매개변수 값을 변경했다는 정보를 프로그래밍 방식으로 얻는 방법을 아는 사람이 있습니까? 어떤 의미에서 가치의 변화와 시간의 순간이라는 사실.

실제로 MT4 터미널의 새 빌드는 이전 빌드보다 훨씬 좋습니다. 이 경우 Sleep() 함수를 실행하는 동안 매개변수 값의 교체가 발생합니다. 확실히 이것은 진보입니다. 이러한 경우 이전 어셈블리는 값 변경을 전혀 허용하지 않았습니다. 더 정확하게는 사용자가 입력 매개 변수가 있는 창을 가져오는 것조차 허용하지 않았습니다. 나는 고객에게 먼저 터미널 패널의 버튼으로 어드바이저를 끄고 매개변수를 변경한 다음 어드바이저를 다시 켜야 한다고 말했습니다. 그러나 이제 사용자는 장애물이 없으며 입력 매개변수가 변경되었다는 환상을 갖게 되었습니다. 더욱이 새로운 예는 init() 블록에서 얻은 복사본뿐만 아니라 원래 입력 매개변수도 Expert Advisor에서 변경되지 않고 "Inputs" 탭의 속성 창에서 변경되었음을 보여줍니다. 불일치가 분명합니다.

같은 코드이지만 start() 내부에 루프가 없으면 잘 작동합니다. 분명히 이것이 문제입니다.
파일:
PROBLEM.mq4  2 kb
 
Wex :

추신. (저는 포럼에서 혀를 낭비한 사람과 별로 닮지 않은 것 같습니다.)


굉장히 유사한.

1. MQL4 언어 전용 포럼입니다. 이건 아니야.

2. MQL4 문서를 읽지 않았습니다. 이전 문서도 새 문서도 아닙니다.

사유: