MetaTrader 4 Build 529 베타가 새로운 컴파일러와 함께 출시됨 - 페이지 37

 
Renat :
즉, 개인적으로 프로그램 수행에 문제가 없고 일반적인 질문을 하는 것입니다.

귀하의 질문을 여러 번 읽었지만 전혀 이해하지 못했습니다. 우리는 여기서 구체적인 이야기를 하고 있습니다.

컴파일에는 문제가 없습니다. 작업성이 있고 MQL4에 MQL5 로직이 혼재되어 있기 때문이라고 이해합니다. 그러나 여기에서 논의된 문제는 모든 경우에 충분하지 않습니다. 이 모든 것은 특별한 경우입니다. 규칙이 필요합니다. MQL5에서 MQL4로 포팅된 기능 및 규칙에 대한 예비 가이드나 최소한 발표를 게시했다면 당사뿐만 아니라 새로운 문제를 이해하는 데 도움이 될 것입니다. 예, 여기에 500페이지 이상을 쌓는다고 상상해 보십시오. 그것을 읽는 방법?

 
ForexMoneyMaker :

컴파일에는 문제가 없습니다. 작업성이 있고 MQL4에 MQL5 로직이 혼재되어 있기 때문이라고 이해합니다. 그러나 여기에서 논의된 문제는 모든 경우에 충분하지 않습니다. 이 모든 것은 특별한 경우입니다. 규칙이 필요합니다. MQL5에서 MQL4로 포팅된 기능 및 규칙에 대한 예비 가이드나 최소한 발표를 게시했다면 당사뿐만 아니라 새로운 문제를 이해하는 데 도움이 될 것입니다. 예, 여기에 500페이지 이상을 쌓는다고 상상해 보십시오. 그것을 읽는 방법?

예, 확실히 이전 코드를 적용하는 지침이 있을 것입니다. 모의 버전을 실행하기 직전. 지금 설명을 하는 것이 무슨 의미가 있겠습니까? 첫째, 다른 것이 변경될 수 있습니다(호환성에 영향을 미치는 요소 포함. 둘째, 이제 모든 "설명 리소스"가 도움말 준비에 전념합니다. 이미 마모에 대해 작동하는 시스템을 과도하게 사용하는 이유는 무엇입니까? 버그 수를 늘리기 위해?
 

MT4 빌드 536, ME 빌드 872.

별도 창에 대한 표시기는 입력 매개변수를 사용합니다. extern string Currency_Name = "EURUSD";

입력 매개변수를 변경하지 않고 표시기가 시작되면 표시기가 그려지고 오류 없이 작동합니다. 그러나 첫 번째 출시 후 금융 상품을 다른 것으로 교체합니다. 예를 들어 "GBPUSD"를 입력하면 표시기가 금융 상품의 새 이름을 허용하지 않습니다. 표시기의 Short_Name은 이전 이름을 유지하지만 표시기는 전혀 그려지지 않습니다(빈 필드). 최초 로드 시 금융상품의 이름을 변경하면 프로그램에서 지정한 원래 이름에 따라 인디케이터가 그려집니다.

지표의 초기 데이터의 수치를 변경하는 것은 어떤 경우에도 변경되어 지표가 오류 없이 그려집니다.

 
Renat :

프로그램에 수백 개의 전역 변수가 있는 것은 좋지 않습니다.

OOP와 클래스는 범위를 숨기고 데이터에 대한 보안 액세스를 제공하여 문제를 완전하고 근본적으로 해결합니다.

아마도 적합하지 않을 수 있습니다. 그런데 왜 그런지 같은 곳에 썼습니다. MT4에서 다르게 계획한 것을 구현하는 것은 불가능했습니다. 그래픽에서는 작동하지 않았습니다. 외부 변수를 통해서만 그래픽 요소 의 스타일을 설정할 수 있습니다. 그리고 다른 그래픽 요소가 많다면 외부 변수도 많다. 스타일 외에도 외부 변수를 통해서만 변경할 수 있는 그래픽 요소의 속성이 엄청나게 많습니다. 그래픽이 있는 기장은 훌륭합니다. 그러나 MT4에서는 지속적인 어려움이 있습니다. 따라서 수백 개의 외부 변수가 있습니다. MT4의 새 버전이 어떻게 될지는 아직 알려지지 않았습니다. 우리는 볼 것이다.
 
nen :
아마도 적합하지 않을 수 있습니다. 그런데 왜 그런지 같은 곳에 썼습니다. MT4에서 다르게 계획한 것을 구현하는 것은 불가능했습니다. 그래픽에서는 작동하지 않았습니다. 외부 변수를 통해서만 그래픽 요소의 스타일을 설정할 수 있습니다. 그리고 다른 그래픽 요소가 많다면 외부 변수도 많다. 스타일 외에도 외부 변수를 통해서만 변경할 수 있는 그래픽 요소의 속성이 엄청나게 많습니다. 그래픽이 있는 기장은 훌륭합니다. 그러나 MT4에서는 지속적인 어려움이 있습니다. 따라서 수백 개의 외부 변수가 있습니다. MT4의 새 버전이 어떻게 될지는 아직 알려지지 않았습니다. 우리는 볼 것이다.

따라서 그래픽이 아닌 변수에 대해 이야기하십시오. 또한 그래픽은 MT5에서 우수합니다. 컴퓨터 게임까지 무엇이든 할 수 있습니다. 이제 Mt4도 따라잡을 것입니다.

사용자가 언제든지 변경해야 하는 수백 개의 매개변수를 프로그램에서 어떻게 전달할 수 있습니까? 입력 매개변수의 테이블만. 프로그램 유형에 관계없이.

어쨌든 수백 개의 매개변수는 프로그래머의 길입니다. 매개변수의 수를 수십 배 줄이기 위해서는 지능적인 자동 제어 방법을 적용해야 합니다. 그것에 대해 생각하기 시작하자마자 솔루션이 즉시 제공됩니다.

 
nen :

표시기에 수백 개의 외부 변수가 있고 설치 중에 수십 개를 변경해야 하는 경우...

다시 설치하기 전에 표시기의 이전 설치 중에 변경된 값에서 어떤 변수를 저장해야 하는지 기억해야 합니다.

100개의 매개변수를 없애는 불가능에 빠지지 않고...

이미 변경된 내용을 기억하지 않기 위해 "재설정" 버튼이 있습니다.

그리고 새로운 동작(재컴파일 후 입력된 변수 값 저장)은 반대로 작업을 더 편리하게 만듭니다. 표시기에서 무언가를 변경하면 표시기의 모든 복사본을 재구성할 필요가 없습니다.

 

레나트, 스트링고, 유니코드는 영원히 남을까?

 
input datetime   Date_From = D'08.10.2013' ;       // Начало периода
input datetime   Date_To = D'08.11.2013' ;         // Окончание периода
input bool       Column_Headers = true ;           // Создавать заголовки колонок?

이것은 스크립트입니다. 실행될 때 Date_From 필드는 Date_To 필드에 항상 현재 현지 날짜/시간을 포함합니다. 모든 것이 정상입니다. 설정 순서 변경 - 날짜/시간 유형 변수가 목록의 첫 번째가 아니면 이 결함이 존재하지 않습니다.

---

도움말에서 PRICE_CLOSE에는 ENUM_APPLIED_PRICE 유형이 있지만 컴파일러는 'ENUM_APPLIED_PRICE' 유형 없는 선언을 인식하지 못합니다. 도움말이나 컴파일러가 문제를 해결합니까?

---

일반적으로 이 편집기/컴파일러에 감사드립니다!

 

통화 쌍 차트에 있는 이미 컴파일된 표시기를 변경합니다. 다시 컴파일 중입니다. 변경 사항을 적용하려면 터미널을 완전히 다시 시작해야 합니다. 차트에서 지표를 제거하고 다시 시작하는 것은 도움이 되지 않으며, 기간을 변경하는 것은 도움이 되지 않습니다. 터미널 자체를 다시 시작해야만 변경 사항을 확인하는 데 도움이 됩니다.

수정 해주세요.

 
ObjectSetInteger ( 0 , "Name" , OBJPROP_CORNER , CORNER_RIGHT_LOWER );
ObjectSetInteger ( 0 , "Name" , OBJPROP_ANCHOR , ANCHOR_RIGHT_LOWER );

CORNER_RIGHT_LOWER 및 ANCHOR_RIGHT_LOWER가 정의되지 않았습니다.

Mqh 파일, 로그의 "선언되지 않은 식별자" 오류


StringConcatenate 가 이상하게 작동합니다.

이것이 작동하는 방식입니다

 StringConcatenate ( "Text 1 " , "Text 2" );
StringConcatenate ( "Text 1 " , 10 );
StringConcatenate ( 10 , " Text 2" );
StringConcatenate ( 10 , 11 );
StringConcatenate ( "Copyright " , CharToString ( 169 ));

그러나 아니오("©"만 표시됨)

 StringConcatenate ( CharToString ( 169 ), " Copyright" );