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

 

바의 시가를 올바르게 구하는 방법과 시가를 구하지 못한 경우 종료하는 방법은 무엇입니까?

몇 가지 옵션을 스케치했습니다. 하지만 더 좋고 더 정확한 코드가 있을까요?

   if ( iOpen ( Symbol (), Period (), 0 )== 0 )
     {
       return ;
     }
     {
       if ( iOpen ( Symbol (), Period (), 0 )!= 0 )
        {
         double    open= iOpen ( Symbol (), Period (), 0 );
        }
     }
   if ( iOpen ( Symbol (), Period (), 0 )== 0.0 )
     {
       return ;
     }
     {
       if ( iOpen ( Symbol (), Period (), 0 )!= 0.0 )
        {
         double    open= iOpen ( Symbol (), Period (), 0 );
        }
     } 
   if ( iOpen ( Symbol (), Period (), 0 )== 0 && iOpen ( Symbol (), Period (), 0 )== 0.0 )
     {
       return ;
     }
     {
       if ( iOpen ( Symbol (), Period (), 0 )!= 0 && iOpen ( Symbol (), Period (), 0 )!= 0.0 )
        {
         double    open= iOpen ( Symbol (), Period (), 0 );
        }
     }     
 
ilvic :

바의 시가를 올바르게 구하는 방법과 시가를 구하지 못한 경우 종료하는 방법은 무엇입니까?

몇 가지 옵션을 스케치했습니다. 하지만 더 좋고 더 정확한 코드가 있을까요?

루프가 없고 다른 iXXXX 기능에 대한 호출 없이 일회성 요청이 이루어진 경우에만 iXXXX 기능을 사용하는 것이 합리적입니다.

시작 가격을 한 번만 확인해야 하는 경우 iOpen 도움말을 참조하세요.

반환 값

*** 오류의 경우 0.

따라서 가격을 요청하고 0과 같은지 확인해야 합니다. 0이 아니면 가격이 수신되고 0이면 오류입니다.

 double open= iOpen ( Symbol (), Period (), 0 );
if (open== 0.0 )
   retutn;
 
컴파일러에서 오류가 발생하지 않도록 9번째 매개변수를 해시(#CL)와 함께 넣는 방법을 알려주시겠습니까?
enum Symboll_
  {
   AUDUSD=0,
   NZDUSD=1,
   USDCAD=2,
   USDCHF=3,
   USDJPY=4,
   EURJPY=5,
   EURUSD=6,
   GBPUSD=7,
   #CL   =8
  };
 
Vladimir Karputov :

루프가 없고 다른 iXXXX 기능에 대한 호출 없이 일회성 요청이 이루어진 경우에만 iXXXX 기능을 사용하는 것이 합리적입니다.

시작 가격을 한 번만 확인해야 하는 경우 iOpen 도움말을 참조하세요.

반환 값

*** 오류의 경우 0.

따라서 가격을 요청하고 0과 같은지 확인해야 합니다. 0이 아니면 가격이 수신되고 0이면 오류입니다.

고맙습니다. 질문 하나 더. 주어진 코드에 대괄호를 적용해야 하는지 아니면 차이가 없는지요?

   double    open= iOpen ( Symbol (), Period (), 0 );
   if (open== 0.0 )
     {
       return ;
     }
 
xxz :
컴파일러에서 오류가 발생하지 않도록 9번째 매개변수를 해시(#CL)와 함께 넣는 방법을 알려주시겠습니까?

이와 같이:

   enum MySymbol
     {
      symbol_0= 0 , // AUDUSD
      symbol_1= 1 , // NZDUSD
      symbol_2= 2 , // USDCAD
      symbol_3= 3 , // USDCHF
      symbol_4= 4 , // USDJPY
      symbol_5= 5 , // EURJPY
      symbol_6= 6 , // EURUSD
      symbol_7= 7 , // GBPUSD
      symbol_8= 8 , // #CL
     };
 
ilvic :

고맙습니다. 질문 하나 더. 주어진 코드에 대괄호를 적용해야 하는지 아니면 차이가 없는지요?

   double    open= iOpen ( Symbol (), Period (), 0 );
   if (open== 0.0 )
      return ;

그것은 완벽하게 작동합니다. 괄호는 일반적으로 일부 작업 그룹에 필요합니다. 하나의 행동이면 아무 소용이 없습니다.

 int n;
double y;
if (бла-бла-бла)
        n = бла-бла;
else
  {
        n = бла-бла;
        y = бла;
  )
 
Vladimir Karputov :

이와 같이:

정말 감사합니다!

그런 다음 나는 다음과 같이 시도했지만 그것은 나를 위해 작동하지 않았습니다.

  enum  Symboll_
  {
   SIM_0,  //AUDUSD
   SIM_1,  //NZDUSD
   SIM_2,  //USDCAD
   SIM_3,  //USDCHF
   SIM_4,  //USDJPY
   SIM_5,  //EURJPY
   SIM_6,  //EURUSD
   SIM_7   //#CL
  };  
 
xxz :

정말 감사합니다!

그런 다음 나는 다음과 같이 시도했지만 그것은 나를 위해 작동하지 않았습니다.

또는 다음과 같이:

   enum MySymbol
     {
      symbol_0= 0 , // AUDUSD
      symbol_1= 1 , // NZDUSD
      symbol_2= 2 , // USDCAD
      symbol_3= 3 , // USDCHF
      symbol_4= 4 , // USDJPY
      symbol_5= 5 , // EURJPY
      symbol_6= 6 , // EURUSD
      symbol_7= 7 , // GBPUSD
      symbol_8= 8 , // #CL
     };
   string my_symbol[ 9 ]=
     {
       "AUDUSD" ,
       "NZDUSD" ,
       "USDCAD" ,
       "USDCHF" ,
       "USDJPY" ,
       "EURJPY" ,
       "EURUSD" ,
       "GBPUSD" ,
       "#CL"
     };
 
Vladimir Karputov :

또는 다음과 같이:

이것이 필요한 것입니다!

해당 옵션에서 일련 번호 또는 SIM_1, ... 등으로 나왔습니다.

 
다중 통화 Expert Advisor 를 테스트할 때 로트에 문제가 나타납니다. 고정 0.03세트가 있는데 테스트 중에 0.1세트 주문이 나옵니다. 그리고 즉시 하락이 차트에 나타납니다. 나 뿐인가요?
사유: