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

 
Seric29 :

예를 들어, 입력 매개변수를 선언하고 이 매개변수에서 전역 변수를 가져와야 하지만 문제가 있습니다. 입력 매개변수는 배열이 될 수 없습니다

입력 변수 에 대해 이야기하는 경우 단순화할 수 있습니다. 전역 가시성을 가지며 코드의 모든 부분에서 사용할 수 있습니다.

또는 OnInit() 섹션의 배열에 한 번 쓰고 나중에 배열에 배열 을 복사하도록 할당 할 수 있지만 여기에서는 배열이 동일해야 합니다. 버그가 발생하지 않도록 배열 인덱스 번호 - 아마도 빈 배열 값을 사용할 것입니다 - 컴파일러는 오류를 제공하지 않으며 계산이 잘못됩니다.

 input int a1= 1 ;
input int a2= 2 ;
input int a3= 3 ;

int ArrayOfInput[ 3 ];
int OnInit ()
  {
   ArrayOfInput[ 0 ] =a1;
   ArrayOfInput[ 1 ] =a2;
   ArrayOfInput[ 2 ] =a3;
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
 // delete cx;
  }
//+------------------------------------------------------------------+
void OnTick ()
  {
       int arr[ 3 ];
       ArrayCopy (arr,ArrayOfInput);
  }
//+------------------------------------------------------------------+
추신: 어떤 이유로 할당 연산자가 동일한 배열에 대해 작동한다고 확신했습니다. 아마도 클래스와 혼합했을 것입니다. 동일한 클래스의 객체가 있는 경우 확실히 작동합니다.
 
Igor Makanu :

입력 변수 에 대해 이야기하는 경우 단순화할 수 있습니다. 전역 가시성을 가지며 코드의 모든 부분에서 사용할 수 있습니다.

또는 OnInit() 섹션의 배열에 한 번 쓰고 나중에 배열에 배열 을 복사하도록 할당 할 수 있지만 여기에서는 배열이 동일해야 합니다. 버그가 발생하지 않도록 배열 인덱스 번호 - 아마도 빈 배열 값을 사용할 것입니다 - 컴파일러는 오류를 제공하지 않으며 계산이 잘못됩니다.

추신: 어떤 이유로 할당 연산자가 동일한 배열에 대해 작동한다고 확신했습니다. 아마도 클래스와 혼합했을 것입니다. 동일한 클래스의 객체가 있는 경우 확실히 작동합니다.

아니요, 저도 거기에서 이것을 시도했습니다(아마 제가 잘하지 못하기 때문에 조금 그리고 나쁘게 시도했지만, 제가 시도한 한 그것은 작동하지 않습니다. 게다가 클래스를 콜론으로 칠해야 합니다. 알려주신대로 하는게 낫습니다) 수업을 들으며 그럴 필요가 없을 것 같아서 어떻게 한줄씩 배정하셨나요?

 

안녕하세요.

알려주십시오. 알림이 있는 표준 팝업 창에서 시간대 를 변경할 수 있습니까?

알림 시간을 단말기 시간과 동기화해야 합니다(단말기와 알림 창에서 다른 경우). 가능합니까?
 
mql4에서 int(및 다른 반환 값) 및 void(절차적 함수) 형식 함수를 같은 방식으로 모두 호출할 수 있는 이유는 무엇입니까?
 

문제. 루프에서 같지 않은 단계로 모든 열거형 값 을 반복하는 방법은 무엇입니까?


열거형 {

하나=11,

2=12,

3=15,

4=22,

다섯=27

};

 
The_Sheikh :

문제. 루프에서 같지 않은 단계로 모든 열거형 값 을 반복하는 방법은 무엇입니까?


열거형 {

하나=11,

2=12,

3=15,

4=22,

다섯=27

};

안 돼요, sizeof()는 enum https://docs.mql4.com/en/basis/types/integer/enumeration 에 대해 작동하지 않습니다.

유형을 변환할 때 상수의 이름이 손실됩니다.

 enum Types { One= 11 , Two= 12 , Three= 15 , Four= 22 , Five= 27 ,Six = 111 ,Seven = 222 };
enum Types_abc { a, b, c, d, e,f,g};
void OnStart ()
  {
   int sz = sizeof (Types);
   Print ( "sz = " ,sz);
   Types z = Two;
   Types_abc x = b;
   Print ( "z = " , EnumToString (z), " , x = " , EnumToString (x));
   x = (Types_abc)z;
   Print ( "z = " , EnumToString (z), " , x = " , EnumToString (x));
  }

2019.08.03 10:52:13.288 tst EURUSD,H1: sz = 4

2019.08.03 10:52:13.288 tst EURUSD,H1: z = 2 , x = b

2019.08.03 10:52:13.288 tst EURUSD,H1: z = 2 , x = 유형_abc::12


 
Elena Baranova :

안녕하세요.

알려주십시오. 알림이 있는 표준 팝업 창에서 시간대를 변경할 수 있습니까?

알림 시간을 단말기 시간과 동기화해야 합니다(단말기와 알림 창에서 다른 경우). 가능합니까?
경고는 컴퓨터의 현지 시간을 표시합니다. 터미널 시간과 일치시키려면 컴퓨터 시간 을 변경하기만 하면 됩니다.
 
Seric29 :
mql4에서 int(및 다른 반환 값) 및 void(절차적 함수) 형식 함수를 같은 방식으로 모두 호출할 수 있는 이유는 무엇입니까? 어떻게 수행됩니까?

"과부하"라고 합니다

Документация по MQL5: Основы языка / Функции / Перегрузка функций
Документация по MQL5: Основы языка / Функции / Перегрузка функций
  • www.mql5.com
Обычно в названии функции стремятся отобразить ее основное назначение. Читабельные программы, как правило, содержат разнообразные и грамотно подобранные идентификаторы. Иногда различные функции используются для одних и тех же целей. Например, рассмотрим функцию, которая вычисляет среднее значение массива чисел двойной точности, и такую же...
 

안녕하세요. 코드에서 타사 표시등의 입력 신호를 포착하는 방법은 무엇입니까? 표시기는 차트에 양초를 칠하고 진입 경고를 표시합니다.

간단히 말해서 이 표시기에 대한 로봇을 작성하고 싶습니다.

 
Alexey Viktorov :
경고는 컴퓨터의 현지 시간을 표시합니다. 터미널 시간과 일치시키려면 컴퓨터 시간을 변경하기만 하면 됩니다.

감사합니다 ) 이 방법밖에 없는데 알람에 시간을 설정하는 방법은 없나요? 그리고 경보 시간을 터미널 시간으로 설정할 수 있는 MQL4의 표준 Alert() 함수 에 대한 대안이 있습니까?