MQL 전문가를 위한 질문 - 페이지 7

 

작동하는 한. 그리고 또 다른 질문.

그런 코드를 또 찾았습니다.

 
if (OrderSymbol() == Symbol () && OrderType() == OP_SELL) {
         switch (OrderMagicNumber()) {
             case 212 :  MMMMM = 12 ;   break ;
             case 211 :  MMMMM = 11 ;   break ;
             case 210 :  MMMMM = 10 ;   break ;
             case 209 :  MMMMM = 9 ;     break ;
                                    }

로 교체하는 것이 맞을까요?

 if (OrderSymbol() == Symbol () && OrderType() == OP_SELL) 
     {     
             if ( OrderMagicNumber()==Magic_212)  MMMMM = 12 ;   
             if ( OrderMagicNumber()==Magic_211)  MMMMM = 11 ;   
             if ( OrderMagicNumber()==Magic_210)  MMMMM = 10 ;   
             if ( OrderMagicNumber()==Magic_209)  MMMMM = 9 ;    
     }
 
그래서 나는 당신의 운동을보고 스스로 생각합니다.
- 당신은 몇 명의 마술사를 감습니다.
- 그런 다음 마술사 수를 추적하고 숫자에 따라 적절한 숫자 값을 MMMMM 변수에 할당합니다.

질문: 주기 없이 초기화에서 이 값을 마술사에게 즉시 할당하고 사용하는 것이 더 쉽지 않습니까?
 
Rita :

작동하는 한. 그리고 또 다른 질문.

그런 코드를 또 찾았습니다.

로 교체하는 것이 맞을까요?


 if (OrderSymbol() == Symbol () && OrderType() == OP_SELL) 
     {     
            MMMMM = OrderMagicNumber()- 200 ;   
     }
물론 이 특별한 경우에만 해당됩니다.
 

Spsb. 답변을 위해.

아니요, granit77 - 그렇지 않습니다.

나는 다른 사람의 EA를 수정/개선해 달라는 요청을 받았습니다(마법을 글로벌 것으로 옮기기 위해). 다양한 주문을 상호 제어하기 위한 1800줄의 코드와 복잡한 복합 알고리즘이 있습니다. 마술사.

나는 물리적으로 이러한 복잡한 제어 체계를 탐구하는 데 시간을 낭비할 수 없습니다. 디지털 마법을 "전역" 마법으로 대체하고 여러 기능에서 이러한 마법을 수정하는 것이 순전히 기계적으로(깊이 파고들지 않고) 더 쉽습니다.

 
Rita :

Spsb. 답변을 위해.

아니요, granit77 , 정확히는 그렇지 않습니다.

나는 다른 사람의 EA를 수정/개선해 달라는 요청을 받았습니다(마법을 글로벌 것으로 옮기기 위해). 다양한 주문을 상호 제어하기 위한 1800줄의 코드와 복잡한 복합 알고리즘이 있습니다. 마술사.

나는 물리적으로 이러한 복잡한 제어 체계를 탐구하는 데 시간을 낭비할 수 없습니다. 디지털 마법을 "전역" 마법으로 대체하고 여러 기능에서 이러한 마법을 수정하는 것이 순전히 기계적으로(깊이 파고들지 않고) 더 쉽습니다.


Leonidas는 어디로 갔습니까?
 
그는 거래합니다. 그는 시간이 없는 척합니다. 금-은 스프레드에서 임의로 "할머니"를 깎습니다.
 
Rita :
그는 거래합니다. 그는 시간이 없는 척합니다. 금-은 스프레드에서 임의로 "할머니"를 깎습니다.
글쎄, 그가 스탠드에 돈을 넣으면 중재를 믿는 척하십시오.
 
네, 제가 하는 일이...

--------------------------

그리고 아마도 마지막 질문일 것입니다.

다음은 코드의 일부입니다.

 //double getNextOrderPriceByNum( int TTTT, double DDDD) {

   if (StepSum == FALSE && StepMultiply == FALSE) {

       switch (TTTT) {
       case 101 :
         return (DDDD - Step * Point );
       case 102 :
         return (DDDD - Step * MathPow ( 1 , 1 ) * Point );
       case 103 :
         return (DDDD - Step * MathPow ( 1 , 2 ) * Point );
      ... ... ...
         
      }
       return ( 0 );
   }

케이스 101-102-103....을 Magic_101, Magic_102, Magic_103으로 교체하려면 -...

이렇게 하는 것이 맞을까요?

   if (StepSum == FALSE && StepMultiply == FALSE) {

switch (TTTT) {
for (i= 0 ; i<k; i++)                           {
if ( OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
  if (OrderSymbol() == Symbol ())                 {
    double Result ;
    if ( OrderMagicNumber()==Magic_101)  Result = (DDDD - Step * Point );   
    if ( OrderMagicNumber()==Magic_102)  Result = (DDDD - Step * MathPow ( 1 , 1 ) * Point );   
    if ( OrderMagicNumber()==Magic_103)  Result = (DDDD - Step * MathPow ( 1 , 2 ) * Point ); 
                                                    }}}
       return (Result);
                     }
                                                   }
 
Rita :
네, 제가 하는 일이...

--------------------------

101-102-103....을 Magic_101 - Magic_102 - Magic_103 -...으로 교체하려면

이렇게 하는 것이 맞을까요?

잘못된. 스위치 설명 읽기 https://docs.mql4.com/en/basis/operators/switch
귀하의 예에서는 switch 문을 if로 바꾸면 됩니다.

       switch (TTTT) {
       case 101 :
         return (DDDD - - Step * Point );
       case 102 :
         return (DDDD - Step * MathPow ( 1 , 1 ) * Point );
       case 103 :
         return (DDDD - Step * MathPow ( 1 , 2 ) * Point );
      }

~로 교체되다

       if (TTT==Magic_ 101 ) return (DDDD - - Step * Point );
       else if (TTT==Magic_ 102 ) return (DDDD - Step * MathPow ( 1 , 1 ) * Point );
       else if (TTT==Magic_ 103 ) return (DDDD - Step * MathPow ( 1 , 2 ) * Point );
      ... ... ...
 
설명 해주셔서 감사합니다.