터미널 전역 문제

 

안녕하세요 여러분

MT 프로그래밍에 작별인사를 하게 될 일이 생겼습니다. 문제는 터미널 전역을 설정하는 데 있습니다. 내가하고있는 일은 다음과 같습니다.

BuyEntrySignalGiven = Symbol () + "BuyEntrySignalGiven" ;
GlobalVariableSet (BuyEntrySignalGiven, ( double ) 1.0 );

세트에서 계속 4051 오류가 발생합니다. 첫 번째 매개변수 는 문자열이고 두 번째 매개변수는 원래대로 double입니다. 매개변수 유형이 유효하지 않다고 계속 주장하는 이유는 제가 이해할 수 없습니다. 두 매개변수 모두 올바른 유형입니다. 매개 변수가 정확할 때 퓨즈가 끊어지는 이유를 모르겠습니다. 저는 무역을 통한 맞춤형 소프트웨어 개발자이며 제 제품에 MT 앱을 추가하려고 합니다. 플랫폼이 신뢰할 수 없다면 만지지 않을 것입니다. 엉뚱한 짓은 나를 나쁘게 만들고 내 사업을 방해할 뿐입니다. 누구든지 제공할 통찰력이 있다면 가장 감사할 것입니다.

많은 감사,

교수

 
GlobalVariableSet (BuyEntrySignalGiven, ( double ) 1.0 );

이중 선언을 제거하십시오 . GV는 이미 이중이므로 다시 선언할 필요가 없습니다.



BuyEntrySignalGiven = Symbol () + "BuyEntrySignalGiven" ;

그 코드도 문제가 있습니다. 다른 사람이 시간이 있으면 알려줄 것입니다.

 
ProfessorMetal :

안녕하세요 여러분

MT 프로그래밍에 작별인사를 하게 될 일이 생겼습니다. 문제는 터미널 전역을 설정하는 데 있습니다. 내가하고있는 일은 다음과 같습니다.

세트에서 계속 4051 오류가 발생합니다. 첫 번째 매개변수는 문자열이고 두 번째 매개변수는 반드시 이중이어야 합니다. 매개변수 유형이 유효하지 않다고 계속 주장하는 이유는 제가 이해할 수 없습니다. 두 매개변수 모두 올바른 유형입니다. 매개변수가 정확할 때 퓨즈가 끊어지는 이유를 모르겠습니다. 저는 무역을 통한 맞춤형 소프트웨어 개발자이며 제 제품에 MT 앱을 추가하려고 합니다. 플랫폼이 신뢰할 수 없다면 만지지 않을 것입니다. 엉뚱한 짓은 나를 나쁘게 만들고 내 사업을 방해할 뿐입니다. 누구든지 제공할 통찰력이 있다면 가장 감사할 것입니다.

많은 감사,

교수

이 코드에는 문제가 없습니다.

 string BuyEntrySignalGiven = Symbol () + "BuyEntrySignalGiven" ;
GlobalVariableSet (BuyEntrySignalGiven, ( double ) 1.0 );     
어떤 빌드를 사용하고 있습니까? 문제를 재현하는 방법은 무엇입니까?
 
더 오래된 빌드라고 생각합니다.
 

더블 캐스트는 원래 거기에 없었습니다. 오류 때문에 추가했습니다. 두 번째 매개변수 는 double이어야 합니다. 내 배경은 C++/C#이고 단순히 인수를 1.0으로 입력하면 충분할 것으로 예상했습니다. 호출이 실패했기 때문에 캐스트를 추가했고 그것이 MQL4의 일부 특이성인지 확신할 수 없었습니다. MQL4가 항상 예상 규칙에 따라 작동하지 않는다는 것을 이미 보았습니다. 문자열 할당이 진행되는 한, 동일한 형식을 따르고 완벽하게 작동하는 또 다른 표시기가 제가 작성한 것입니다. 나는 거기에 문제가 있다고 볼 수 없습니다. Symbol()은 문자열을 반환하고 연결은 완벽하게 허용되는 문자열로 이루어지며 표현식이 할당되는 변수도 문자열입니다. 내가 볼 수있는 유일한 문제는 쌍 기호를 GV 이름과 동일한 문자열과 연결하는 것입니다. "finished" 문자열이 GV 이름과 동일하지 않기 때문에 문제가 되지 않습니다. 그게 문제일 수도 있어요. 그렇다면 왜 그렇게 말하지 않습니까?

아무튼 답변 감사합니다

교수

 

실제로 MetaQuotes는 MQL4/5에서 C++/C# 코딩 스타일과 규칙을 기대할 수 없다고 말했습니다.


그건 그렇고, 당신은 사회자의 질문에 대답하지 않았습니다.

 

흥미롭군. 빌드 646을 실행 중입니다. 그게 문제가 아닌 것 같아요. 어 - 방금 알아낸 것 같아요. 내가 피곤하고 바보입니다. GV 이름은 OnStart()에서 호출하려고 했지만 호출하지 않은 메서드에서 설정됩니다. 헉! 멍청한 미국인을 때리고 더 이상 코딩을 시도하기 전에 잠자리에 들고 잠을 자라고 말합니다. 나는 약 36시간 동안 깨어 있었다. 여러분은 제가 한 발 물러나서 제가 하고 있는 일을 다시 한 번 돌아보도록 영감을 주어 저를 확실히 도왔습니다. 당신이 어디에 있든 많은 감사와 Good Night, Good Day. :-)

교수

 
나는 대답했다, 데스매크로. 당신은 내 대답이 나타날 시간을주지 않았습니다. 내가 말했듯이, 그것은 기본적으로 문제가 되지 않습니다. 문제는 피로로 인한 신인 실수였다. BTW, MQL4/5의 모든 것이 C++/C#에서와 동일하게 작동하지 않는다는 것을 알고 있습니다. 그러나 MQL4/5에 대한 변경 의도의 일부는 C++와 더 유사하게 만드는 것이라는 설명을 본 기억이 있습니다. 문서는 좀 더 잘 정리되고 더 철저할 수 있습니다. 공정하게 말하면 Microsoft에 대해서도 마찬가지입니다.
 
그것은 실제로 매우 간단합니다. 가르쳐 주거나 철저한 문서를 올려 놓으면 어느 시점에서 ... ... ...
 

MetaQuotes에게 공정하게 말하면 그들이 하는 일은 사소한 일이 아닙니다. 나는 스스로 가르치는 것이 항상 표준이 될 것이라고 생각합니다. 솔직히 말해서, 그것은 전문 개발자를 위한 코스와 동등합니다. 영토와 함께 옵니다. 문서화 및 다른 개발자와의 상호 작용은 일반적으로 얻을 수 있는 유일한 "가르침"입니다. 세라비. :-)

나는 여전히 MQL4에 대한 새로운 디버깅이 작동하도록 하는 방법을 알아 내려고 노력하고 있습니다. 나는 문서가 나에게 하라고 하는 것을 따랐다. 디버거를 시작하려고 하면 H1 창과 디버그하려는 표시기에 대한 속성 대화 상자가 나타납니다. 대화 상자를 확인했을 때 디버거가 종료되고 창이 사라졌습니다. 오, 글쎄. 그것은 다른 스레드의 주제입니다.

 
ProfessorMetal :

MetaQuotes에게 공정하게 말하면 그들이 하는 일은 사소한 일이 아닙니다. 나는 스스로 가르치는 것이 항상 표준이 될 것이라고 생각합니다. 솔직히 말해서, 그것은 전문 개발자를 위한 코스와 동등합니다. 영토와 함께 옵니다. 문서화 및 다른 개발자와의 상호 작용은 일반적으로 얻을 수 있는 유일한 "가르침"입니다. 세라비. :-)

나는 여전히 MQL4에 대한 새로운 디버깅이 작동하도록 하는 방법을 알아 내려고 노력하고 있습니다. 나는 문서가 나에게 하라고 하는 것을 따랐다. 디버거를 시작하려고 하면 H1 창과 디버그하려는 표시기에 대한 속성 대화 상자가 나타납니다. 대화 상자를 확인했을 때 디버거가 종료되고 창이 사라졌습니다. 오, 글쎄. 그것은 다른 스레드의 주제입니다.


입력 항목이 아닌 입력 대화 상자의 다른 창을 선택할 때 피할 수 있었던 오래 지속되는 버그였습니다. 그런 다음 다음 실행에 성공했습니다. 646에서는 해결된 것 같습니다. 불행히도 이 사이트에는 그러한 정보가 많지 않습니다. 일반적으로 대부분의 문제는 추가 추적 없이 " 서비스 데스크에 보고 "로 끝납니다.