초보자의 질문 MQL5 MT5 MetaTrader 5 - 페이지 84

 
lobo :

질문: 신호가 오지 않도록 무엇을 어디에 어떻게 설정합니까? 나는 신호에 가입하지 않았습니다.


+ 터미널에서 신호 탭을 비활성화합니다 .

 
"경고" 탭의 상황에 맞는 메뉴는 활성화되어 있지 않으며 "생성"만 할 수 있습니다. "신호" 탭에서는 들어오는 신호만 볼 수 있으며 수신 거부 또는 삭제할 수 없습니다 ???
 

안녕하세요!

mql5를 알아내고 버전 4의 전문가를 다시 작성하려고 하는데 몇 가지 질문이 있습니다.

1. 컴파일러는 변수가 할당되더라도 'cH' - if (fcorH== 1 ) countH=cH; 행에 선언되지 않은 식별자를 씁니다. 캐치 뭔데?

             if (fdelH== 0 )                                   // проверить на близость при отсутствии уровня в массиве удаленных
               {
                 int cH=countH- 1 ;                             // предыдущее значение счетчика
                ...
                fcorH= 1 ;                                     // перезапись уровня в массиве
               }
             if (f1== 0 )                                       // если занесение хая в массив разрешено
               {
                 if (fcorH== 1 ) countH=cH;                     // если разрешена перезапись уровня, то счетчик отматывается на один назад
                ...
               }

2. TimeRes 변수가 다른 동일한 스토리:

   for ( int y2= 0 ;y2<finish;y2++)                           // поиск ближайших уровней
      {
       double Level=SupRes[y2][ 0 ];                       // выбор проверяемого уровня
       double rL=Level-Bid;                               // разность цены и уровня
       if ((rL<dPlus && rL> 0 ) || (rL> 0 && dPlus== 0 ))       // при наличии положительной разницы
         {
          dPlus=rL;                                       // фиксировать ее
          Res= NormalizeDouble (SupRes[y2][ 0 ], _Digits );     // уровень сопротивления
           datetime TimeRes=SupRes[y2][ 1 ];                 // время сопротивления
         }
      }
   ObjectSetInteger ( 0 ,oRes, OBJPROP_TIME ,TimeRes);         // отрисовка ближайшего сопротивления

그러나 이 외에도 두 번째 예에서는 "형식 변환으로 인한 데이터 손실 가능성 "이라는 경고가 datetime TimeRes=SupRes[y2][ 1 ] 행에 발생합니다.

전역 수준의 배열은 다음 형식으로 선언됩니다. double SupRes[][2];

이러한 오류 및 경고를 수정하려면 어떻게 해야 합니까?

 
WindSW :

안녕하세요!

mql5를 알아내고 버전 4의 전문가를 다시 작성하려고 하는데 몇 가지 질문이 있습니다.

1. 컴파일러는 변수가 할당되더라도 'cH' - if (fcorH== 1 ) countH=cH; 행에 선언되지 않은 식별자를 씁니다. 캐치 뭔데?

2. TimeRes 변수가 다른 동일한 스토리:

두 경우 모두 조건/루프 내부에 변수를 선언합니다. 조건이 충족되지 않으면 변수가 정의되지 않습니다.

변수 정의를 함수의 맨 위로 이동하거나 전역으로 만듭니다.

그러나 그 외에도 두 번째 예에서는 datetime TimeRes=SupRes[y2][ 1 ] 행에 "형식 변환으로 인한 데이터 손실 가능성 " 경고가 발생합니다.

전역 수준의 배열은 다음 형식으로 선언됩니다. double SupRes[][2];

이러한 오류 및 경고를 수정하려면 어떻게 해야 합니까?

글쎄, 하나의 유형으로 캐스팅

 datetime TimeRes=( datetime )SupRes[y2][ 1 ];
또는 처음에 같은 유형의 배열과 변수를 정의합니다.
 
fyords :

두 경우 모두 조건/루프 내부에 변수를 선언합니다. 조건이 충족되지 않으면 변수가 정의되지 않습니다.

변수 정의를 함수의 맨 위로 이동하거나 전역으로 만듭니다.

변수 정의를 발행했지만 변수 cH 및 TimeRes에 대해 "초기화되지 않은 변수 사용 가능성" 경고가 있었습니다.

날짜 시간에 "형식 변환으로 인한 데이터 손실 가능성 " 경고와 함께 수행할 작업 TimeRes=SupRes[y2][1]; ???

 
WindSW :

변수 정의 및 "초기화되지 않은 변수 'cH' 사용 가능" 경고가 발생했습니다.

잘 뽑았는데 초기화 값을 줬나?

 int cH= 0 ;
결국 코드는 값을 읽고 거기에 아무것도 없으면 읽을 수 있는 것입니다. 다음은 경고입니다.
 
fyords :

글쎄, 하나의 유형으로 캐스팅

또는 처음에 같은 유형의 배열과 변수를 정의합니다.
그러나 배열에 double 형식의 수준이 포함되어야 하고 날짜/시간 형식의 이러한 수준 시간이 포함되어야 하는 경우 어떻게 배열과 같은 유형의 변수를 정의할 수 있습니까?
 
fyords :

날짜 시간 TimeRes=(날짜 시간)SupRes[y2][1];

감사합니다. 귀하의 팁이 도움이 되었습니다. 그리고 그러한 유형 정의에 대해 (datetime)SupRes[y2][1]; 어디에서 읽을 수 있습니까?
 
WindSW :
그러나 배열에 double 형식의 수준이 포함되어야 하고 날짜/시간 형식의 이러한 수준 시간이 포함되어야 하는 경우 어떻게 배열과 같은 유형의 변수를 정의할 수 있습니까?

이 경우 double 및 datetime의 2a 배열이 필요합니다.

그리고 레벨을 찾아 첫 번째 배열에 쓰는 즉시 시간을 가져와서 두 번째 배열에 써야 합니다.

 
WindSW :
감사합니다. 귀하의 팁이 도움이 되었습니다. 그리고 그러한 유형 정의에 대해 (datetime)SupRes[y2][1]; 어디에서 읽을 수 있습니까?

깁스

사유: