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

 

안녕하세요. 2주 전에 업데이트한 후 MT5의 버그에 대해 쓸 수 있는 위치를 알려주세요.


요점은 다음과 같습니다. 포지션을 열고 SL과 TP 위로 마우스를 가져가면 데이터 창이 표시되지 않거나(SL과 TP의 사실을 보여주는 창) 매우 느리게 열립니다. 다른 계정의 여러 컴퓨터에서 시도했습니다. 이것은 Expert Advisor가 둘 이상의 터미널 창에 설치된 경우에만 발생합니다. 전에는 그런 문제가 없었습니다.

메타 인용문은 항상 그렇듯이 이메일에 응답하지 않으며 중개인도 모든 것을 메타 인용부로 비난합니다.

파일:
 
Artyom Trishkin :

새 전역 변수 를 만듭니다. 입력 매개변수 Inp_element_2542795 의 값을 다음과 같이 설정합니다 .

Ctrl + H 를 사용하여 Inp_element_2542795 문자열의 전체 항목을 이 새 변수 g_element_2542795 로 바꿉니다.

여전히 질문은 동일합니다. EA는 자체적으로 노력하고 있습니다. 이 전역 변수가 도움이 될 요점 을 얻지 못했습니다. 나는 그것을 변경하려고 시도했지만 400은 동일하게 유지됩니다. 200으로 변경해 보았는데 200으로 일정합니다. 하지만 EA가 어떤 포인트를 적용할지 결정할 수 있기를 바랍니다.

 
jaffer wilson :

여전히 질문은 동일합니다. EA는 자체적으로 노력하고 있습니다. 이 전역 변수가 도움이 될 요점을 얻지 못했습니다. 나는 그것을 변경하려고 시도했지만 400은 동일하게 유지됩니다. 200으로 변경해 보았는데 200으로 일정합니다. 하지만 EA가 어떤 포인트를 적용할지 결정할 수 있기를 바랍니다.

어드바이저가 변수를 변경하도록 하려면 g_element_2542795 변수를 변경해야 합니다. 초기화 시 변수 Inp_element_2542795의 값을 가져온 다음 어드바이저에서 원하는 대로 변경할 수 있습니다.

 

왜 그렇게 작동하지 않습니까?

 int massiv[ OrdersTotal ()];
 
igrok333 :

왜 그렇게 작동하지 않습니까?

Stroustrup과 Ritchie는 그렇게 되기를 원했습니다.
 
igrok333 :

왜 그렇게 작동하지 않습니까?

그것이 효과가 있다면 놀랍습니다.

 
igrok333 :

왜 그렇게 작동하지 않습니까?

arrayresize 를 통해 작동합니다
 

도와주세요, 이제 막 시작했어요...
조건에 따라 로트 크기를 결정하는 방법은 무엇입니까? 이것을 썼지만 뭔가 작동하지 않습니다.

더블 로트()
{
if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid >= L2b1) ||
(입찰가 >= L5b1) || (입찰가 >= L8b1))
lot=( NormalizeDouble (Lots, 2));

if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
(입찰가 >= L5b) || (입찰가 >= L8b))
lot=(NormalizeDouble((Lots*1.5), 2));

if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
(입찰가 >= L2b3) || (입찰가 >= L5b3) || (입찰가 >= L8b3))
lot=(NormalizeDouble((Lots*2.5), 2));
반환 제비;
}

 
wolder1 :

도와주세요, 이제 막 시작했어요...
조건에 따라 로트 크기를 결정하는 방법은 무엇입니까? 이것을 썼지만 뭔가가 작동하지 않습니다.

더블 로트()
{
if((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid >= L2b1) ||
(입찰가 >= L5b1) || (입찰가 >= L8b1))
lot=(NormalizeDouble(Lots, 2));

if((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
(입찰가 >= L5b) || (입찰가 >= L8b))
lot=(NormalizeDouble((Lots*1.5), 2));

if((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
(입찰가 >= L2b3) || (입찰가 >= L5b3) || (입찰가 >= L8b3))
lot=(NormalizeDouble((Lots*2.5), 2));
반환 제비;
}

변수와 함수에 대해 혼동이 있을 수 있습니다. 함수인 경우 다음을 시도하세요.

ALT + S를 통해 코드 붙여넣기

 double _LOTS()
  {
   double lot= 0 ;
   if ((Ask <= L0a3) || (Ask <= L2a3) || (Ask <= L5a3) || (Ask <= L8a3) || (Bid >= L0b1) || (Bid > = L2b1) ||
      (Bid >= L5b1) || (Bid >= L8b1))
      {
       lot=( NormalizeDouble (Lots, 2 ));
       Print ( " lot = " , lot); 
       return (lot);
      }
      
     if ((Ask <= L0a) || (Ask <= L2a) || (Ask <= L5a) || (Ask <= L8a) || (Bid >= L0b) || (Bid >= L2b) ||
      (Bid >= L5b) || (Bid > = L8b))
      {
       lot=( NormalizeDouble ((Lots* 1.5 ), 2 ));
       Print ( " lot = " , lot); 
       return (lot);
      }
     
    

   if ((Ask <= L0a1) || (Ask <= L2a1) || (Ask <= L5a1) || (Ask <= L8a1) || (Bid >= L0b3) ||
      (Bid >= L2b3) || (Bid >= L5b3) || (Bid >= L8b3))      
      {
       lot=( NormalizeDouble ((Lots* 2.5 ), 2 ));
       Print ( " lot = " , lot); 
       return (lot);
      }
  } 
 
간단한 질문입니다. 올빼미는 컴파일되지 않습니다. 코드 끝에 오류가 있습니다. + __FUNCSIg__
+ ": "+Market_Err_To_Str(errIndex)
+ "; 주문 티켓 = " + (문자열)OrderTicket()
+ "; 주문 유형 = " + (문자열)OrderType()
+ "; 주문 손절매 = " + DoubleToStr(OrderStopLoss(), Digits())
+ "; 새로운 손절매 = " + DoubleToStr(newStopLoss, Digits())
+ "; 입찰가 = " + DoubleToStr(입찰가, 자릿수())
+ "; 묻기 = " + DoubleToStr(묻기, 숫자())
);
}
}
lastSetNonlosTryTime = TimeLocal();
}


컴파일할 때 오류가 발생합니다. 어렵지 않다면 도와주세요. 고맙습니다!