MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 436

 
WinProject :
감사합니다!) 귀하의 답변에서 각 유형의 개체에 대해 별도의 기능을 만들어야 한다는 결론을 내렸습니다. 파일을 읽는 메인 함수의 While 루프에 중첩된 객체를 구성 하는 함수를 따로따로 실행하면 어떻게든 할 수 있지 않을까 하는 생각이 들었습니다. 어쩌면 스위치?

나는 아마도 문제의 핵심을 충분히 이해하지 못했을 것입니다.

모든 그래픽 개체의 첫 번째 구성은 어려움과 질문을 일으키지 않습니다. 하지만 두 번째는 이해가 되지 않습니다. 분명히 문제는 여러 유형의 개체에 대해 하나의 버튼 작업을 어떻게든 구성하는 것이 아니라 한 유형의 개체에 대해 하나의 버튼을 구성하는 것이었습니다. 이 경우 개체 매개변수와 여러 구조 배열을 사용하여 각 개체 유형에 대해 하나의 배열을 만드는 구조를 만들 것입니다. 따라서 이러한 구조 배열을 해당 유형의 버튼에 바인딩합니다.

그런 다음 버튼을 누르면 해당 유형의 개체가 삭제됩니다. 그리고 버튼을 놓으면 구조 배열에서 사용 가능한 매개변수에 따라 객체가 복원됩니다.

따라서 파일을 다운로드할 때 한 번만 읽어야 합니다.

 
Alexey Viktorov :

나는 아마도 문제의 핵심을 충분히 이해하지 못했을 것입니다.

모든 그래픽 개체의 첫 번째 구성은 어려움과 질문을 일으키지 않습니다. 하지만 두 번째는 이해가 되지 않습니다. 분명히 문제는 여러 유형의 개체에 대해 하나의 버튼 작업을 어떻게든 구성하는 것이 아니라 한 유형의 개체에 대해 하나의 버튼을 구성하는 것이었습니다. 이 경우 개체 매개변수와 여러 구조 배열을 사용하여 각 개체 유형에 대해 하나의 배열을 만드는 구조를 만들 것입니다. 따라서 이러한 구조 배열을 해당 유형의 버튼에 바인딩합니다.

그런 다음 버튼을 누르면 해당 유형의 개체가 삭제됩니다. 그리고 버튼을 놓으면 구조 배열에서 사용 가능한 매개변수에 따라 객체가 복원됩니다.

따라서 파일을 다운로드할 때 한 번만 읽어야 합니다.

답변 주셔서 대단히 감사합니다. STARIJ가 제안한 대로 플래그를 통해 두 가지 옵션을 모두 만들려고 노력할 것이며 귀하의 옵션도 시도해 볼 수 있습니다. 그와 동시에 질문을 적게 하려고 노력하겠습니다. 답변이 되는 것은 축복입니다!)
 
STARIJ :

플래그는 변수입니다. 또는 bool: false=생략, true=raised 또는 int - 한 번에 한 숫자에 많은 플래그가 있습니다. 0 - 모든 플래그가 생략되고, 1=첫 번째가 발생하고, 2=초가 발생하고, 3=첫 번째와 두 번째가 발생합니다. , 4=세 번째 상승, 5=3위와 1위, 6=3위와 2위, 7=1위, 2위, 3위, 8=4위.... 음, 바이너리입니다. 그리고 알아내는 방법?

감사합니다. 인터넷에서 좋은 설명을 찾았습니다. 시도해 보겠습니다. 이 사이트의 문서나 교과서에 이와 같은 것이 없다는 것이 이상합니다. 아마도 여기에 온 모든 사람들이 이미 프로그래밍 기술을 가지고 있다는 의미일 것입니다.
 
WinProject :
답변 주셔서 대단히 감사합니다. STARIJ가 제안한 대로 플래그를 통해 두 가지 옵션을 모두 만들려고 노력할 것이며 귀하의 옵션도 시도해 볼 수 있습니다. 그와 동시에 질문을 적게 하려고 노력하겠습니다. 답변이 되는 것은 축복입니다!)

플래그가 있으면 나쁘지 않을 수 있지만 질문의 주요 내용이 누락되었습니다.

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

MQL4에 대한 모든 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론

윈프로젝트 , 2018.01.26 18:17

좋은 저녁이에요! 그리고 다시 도움을 받으러 왔습니다. My Expert Advisor는 파일을 읽고 다른 조건에 따라 다른 그래픽 개체를 즉시 구축하는 OnInit의 주요 기능을 가지고 있습니다. 차트에도 버튼이 있으며, 클릭하면 이러한 개체(예: 텍스트 레이블)를 삭제하는 기능이 작동합니다. 버튼을 누른 후 텍스트 레이블이 삭제되도록 하려면 버튼을 놓으면 모든 객체를 완전히 빌드하지만 텍스트 레이블만 빌드하는 전체 기능을 시작할 수 없게 만들 수 있습니다. 마음에 떠오르는 유일한 것은 파일 열기 및 읽기와 관련된 모든 작업으로 각 유형의 객체에 대해 별도로 주요 기능의 아날로그를 만드는 것입니다. 그러나 일종의 스마트 솔루션을 사용하고 싶지만 그렇지 않습니다. 주요 기능 또는 기능 버튼 중 무엇을 어떻게 알고 있습니까?

이 경우 파일 읽기를 별도의 사용자 정의 함수로 옮기고 여러 번 호출하여 동일한 코드를 여러 번 생성하지 않도록 하는 것이 더 쉽습니다. 하지만 아무리 애써도 플래그를 사용할 때 파일을 읽는 것은 남아 있습니다. 그리고 원격 객체를 생성할 때 확인해야 할 사항(객체 유형별 부재 또는 플래그 상태)에는 차이가 없습니다. 결국 개체의 유형은 특정 유형에 부착된 버튼에 의해 결정되며 이것이 플래그입니다.
 

MQL5 에서 현재 시간 값을 얻는 방법을 알려주십시오.
MqlDateTime 구조의 개체를 만들었습니다. 시간은 아무 것도 제공하지 않습니다.

 
Roman Sharanov :

MQL5 에서 현재 시간 값을 얻는 방법을 알려주십시오.
MqlDateTime 구조의 개체를 만들었습니다. 시간은 아무 것도 제공하지 않습니다.

구조체는 날짜-시간으로 채워져야 합니다.
 
Artyom Trishkin :
구조체는 날짜-시간으로 채워져야 합니다.

TimeCurrent()를 사용 합니까? 난 그냥 어떻게 이해하지

 
Roman Sharanov :

TimeCurrent()를 사용 합니까? 난 그냥 어떻게 이해하지

TimeToStruct()
 
Artyom Trishkin :
TimeToStruct()

아, 알겠습니다. 작동했습니다. 감사합니다!

 

https://docs.mql4.com/en/basis/types/casting

끝에서 두 번째 예, RGB 표현의 색상은 문자열입니다. " 내용을 복사하여 두 개의 구조체를 캐스팅 "이 작동하지 않습니다.

 #property script_show_inputs
input color           testColor= clrBlue ; // задайте цвет для тестирования
//--- структура для представления цвета в RGB
struct RGB
  {
   uchar              blue;           // синяя составляющая цвета
   uchar              green;         // зеленая составляющая цвета
   uchar              red;           // красная составляющая цвета
   uchar              empty;         // этот байт не используется
   string             toString();     // функция для получения в виде строки
  };
//--- функция для вывода цвета в виде строки
string RGB::toString( void )
  {
   string out= "(" +( string )red+ ":" +( string )green+ ":" +( string )blue+ ")" ;
   return out;
  }
//--- структура для хранения встроенного типа color 
struct builtColor
  {
   color              c;
  };
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//--- переменная для хранения в RGB
   RGB colorRGB;
//--- переменная для хранения типа color
   builtColor test;
   test.c=testColor;
//--- приведение двух структур путем копирования содержимого
   colorRGB=test;
   Print ( "color " ,test.c, " = " ,colorRGB.toString());
//---
  }

컴파일러에서 이 오류가 발생했습니다... ( '=' - 잘못된 연산 사용 test.mq4 34 12)

뭔가를 올바르게 복사하지 않았거나 예제에 오류가 있습니까 ??? 말해 주세요.

Приведение типов - Типы данных - Основы языка - Справочник MQL4
Приведение типов - Типы данных - Основы языка - Справочник MQL4
  • docs.mql4.com
Часто возникает необходимость преобразовать один числовой тип в другой. Не каждый числовой тип допустимо преобразовать в другой, допустимые преобразования в MQL4 показаны на схеме: Сплошные линии со стрелками обозначают преобразования, которые выполняются без потери информации. Вместо типа char может выступать тип bool (оба занимают в памяти 1...