오류, 버그, 질문 - 페이지 847

 

컴파일러는 나에게 무언가를 영어로 표현했다. 브래킷은 프로그램이 아니며 일반적으로 이 브래킷과 불균형 브래킷에서 프로그램이 잘못되었습니다. 그리고 괄호가 있습니다. 어디에서 오류를 찾을 수 있는지 알려주실 수 있습니까?

'}' - 프로그램 Redo.mq5 3562 1의 예기치 않은 종료
'{' - 불균형 괄호 Redo.mq5 3330 1

 //////////////////////////////////////////////////////////////////////////////////////////////

int waitIfBusy() 
{   
   for ( int Yx = 0 ;   MQL5InfoInteger ( MQL5_TRADE_ALLOWED ) && Yx < 50 ; Yx++) Sleep ( 125 );   
   if (Yx >= 50 ) Print ( "Торговый поток занят больше " , DoubleToString ( 25 * Yx / 1000 , 2 ), " секунд" );
   else if (Yx > 0 ) Print ( "Торговый поток был занят " , DoubleToString ( 25 * Yx / 1000 , 2 ), " секунд" );   
   return (Yx);   
} 

//////////////////////////////////////////////////////////////////////////////////////////////
 
나는 문제가 더 높다고 생각합니다 - 여기에서 나는 어떻게 보든 상관없이 모든 것이 옳습니다 ..
 
Yedelkin :

글쎄, 나는 이미 위에 추가했다. 반복합니다: Expert Advisor에 대한 "새" 인용문은 이 인용문이 "막대의 첫 번째 눈금"이 아니더라도 다음 OnTick() 함수 실행이 완료된 직후에 나온 인용문입니다. 당신은 새로운 막대의 발생에 대한 조건이 있습니다

전문가가 "이전" 표시줄에 있는 견적 처리를 완료한 후에만 확인됩니다. ..OnTick() 함수가 90초 동안 실행되고 00.00.00에서 시작되면 "M1의 새 틱에 대한 조건이 적어도 언젠가는 충족될 것입니다", 즉: 00.01.30 이후

감사합니다. 그래야 합니다.
 
Dimka-novitsek :

컴파일러는 나에게 무언가를 영어로 표현했다. 브래킷은 프로그램이 아니며 일반적으로 이 브래킷과 불균형 브래킷에서 프로그램이 잘못되었습니다. 그리고 괄호가 있습니다. 어디에서 오류를 찾을 수 있는지 알려주실 수 있습니까?

'}' - 프로그램 Redo.mq5 3562 1의 예기치 않은 종료
'{' - 불균형 괄호 Redo.mq5 3330 1

코드를 작성할 때 중괄호가 누락되었을 수 있습니다(컴파일러가 말하는 것과 상관없이)?

 int waitIfBusy() 
{   
   for ( int Yx = 0 ;   MQL5InfoInteger ( MQL5_TRADE_ALLOWED ) && Yx < 50 ; Yx++) 
   {
     Sleep ( 125 );   
   if (Yx >= 50 ) Print ( "Торговый поток занят больше " , DoubleToString ( 25 * Yx / 1000 , 2 ), " секунд" );
   else 
     if (Yx > 0 ) Print ( "Торговый поток был занят " , DoubleToString ( 25 * Yx / 1000 , 2 ), " секунд" );   
   return (Yx);   
   }
}
 
감사해요!!
 
죄송합니다, 같은 질문입니다. 다음과 같이 맹세합니다. '{' - 일부 운영자는 Bracket.mq5 612 62를 예상함
 /////////////////////////////////////////////////////////////////////// 

bool OrderClose( string Symb)
  {



     PositionSelect (Symb);   Print ( "Start@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" );

   long PositionID= 0 ;
    PositionID= PositionGetInteger ( POSITION_IDENTIFIER ); //Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Переворот позиции не изменяет идентификатора позиции.

     Print ( "PositionID" );
     Print (PositionID);
   HistorySelect (
                 TimeCurrent ()-( 60 * 60 * 24 * 7 * 4 ), // с даты
                 TimeCurrent () // по дату
                 );

     for ( int i= 0 ; HistoryDealsTotal ()>i; i++) 
   
     {
       ulong TicetSdelki;
      TicetSdelki=
                   HistoryDealGetTicket (
                  i         // номер сделки
                 );

                   long   HistoryID= HistoryDealGetInteger (
                  TicetSdelki, // тикет
      DEAL_POSITION_ID           // идентификатор свойства
      );                           //Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции.

                                   // Print ( i ); Print ( "HistoryID" ); Print ( HistoryID ); 
       if (HistoryID!= 0 && PositionID!= 0 && PositionID==HistoryID)
        {
         ulong TicetTojSdelki; TicetTojSdelki=TicetSdelki;

         string TYP= "" ;
         if ( HistoryDealGetInteger (TicetTojSdelki, DEAL_TYPE )== DEAL_TYPE_BUY ){ TYP= "OP_SELL" ;}
         if ( HistoryDealGetInteger (TicetTojSdelki, DEAL_TYPE )== DEAL_TYPE_SELL ){ TYP= "OP_BUY" ;}
         ulong resultat=OrderSendSELLi( Symbol (),TYP, HistoryDealGetDouble (TicetTojSdelki, DEAL_VOLUME ), 10 , 10 ,
                                       ASK( Symbol ())+ 300 * SymbolInfoDouble ( Symbol (), SYMBOL_POINT ),BID( Symbol ())- 300 * SymbolInfoDouble ( Symbol (), SYMBOL_POINT ), " com " , 600 , 600 , 0 );
       
         if (resultat== 10009 ) return true ; else    return false ;

           }

    }



  }
//+------------------------------------------------------------------+
대괄호 6 번 vysvitili n-쌍, 음, 모든 쌍과 마찬가지로. 그리고 그들은 그렇게 어둡지도 않고 많지도 않습니다. 나는 모든 것을 봅니다. zpts가 있는 점, 다른 대괄호 .. 가능하면 보세요!
 
Dimka-novitsek :
죄송합니다, 같은 질문입니다. 다음과 같이 맹세합니다. '{' - 일부 운영자는 Bracket.mq5 612 62를 예상함 큰 괄호 6번 n-pairs, 음, 모든 것이 짝을 이루는 것 같습니다. 그리고 그들은 그렇게 어둡지도 않고 많지도 않습니다. 나는 모든 것을 봅니다. zpts가 있는 점, 다른 대괄호 .. 가능하면 보세요!

당신뿐만 아니라 다른 모든 사람들도 코드를 이해할 수 있도록 메타 에디터 편집기에 매우 유용한 기능이 있습니다. 스타일러라고 합니다 (자세한 내용은 링크 참조). 도구 => 스타일러 에 있습니다. 단축키 Ctrl+, . 그것을 시도하면 이해하기가 더 쉬울 것입니다. ))

 
네, 바로 지금, 죄송합니다.
 
/////////////////////////////////////////////////////////////////////// 

bool OrderClose( string Symb)


{



     PositionSelect (Symb);   Print ( "Start@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" );

   long PositionID= 0 ;
    PositionID= PositionGetInteger ( POSITION_IDENTIFIER ); //Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Переворот позиции не изменяет идентификатора позиции.

     Print ( "PositionID" );
     Print (PositionID);
   HistorySelect (
                 TimeCurrent ()-( 60 * 60 * 24 * 7 * 4 ), // с даты
                 TimeCurrent () // по дату
                 );

     for ( int i= 0 ; HistoryDealsTotal ()>i; i++) 
   
     {
                     ulong TicetSdelki;
                     TicetSdelki=
                     HistoryDealGetTicket (
                     i         // номер сделки
                     );

                     long   HistoryID= HistoryDealGetInteger (
                     TicetSdelki, // тикет
                     DEAL_POSITION_ID           // идентификатор свойства
                     );                           //Идентификатор позиции, в открытии, изменении или закрытии которой участвовала эта сделка. Каждая позиция имеет уникальный идентификатор, который присваивается всем сделкам, совершенным на инструменте в течение всей жизни позиции.

                                   // Print ( i ); Print ( "HistoryID" ); Print ( HistoryID ); 
                 if (HistoryID!= 0 && PositionID!= 0 && PositionID==HistoryID)
                {
                             ulong TicetTojSdelki; TicetTojSdelki=TicetSdelki;
                             string TYP= "" ;
                             if ( HistoryDealGetInteger (TicetTojSdelki, DEAL_TYPE )== DEAL_TYPE_BUY ){ TYP= "OP_SELL" ;}
                             if ( HistoryDealGetInteger (TicetTojSdelki, DEAL_TYPE )== DEAL_TYPE_SELL ){ TYP= "OP_BUY" ;}
                             ulong resultat=OrderSendSELLi( Symbol (),TYP, HistoryDealGetDouble (TicetTojSdelki, DEAL_VOLUME ), 10 , 10 ,
                            ASK( Symbol ())+ 300 * SymbolInfoDouble ( Symbol (), SYMBOL_POINT ),BID( Symbol ())- 300 * SymbolInfoDouble ( Symbol (), SYMBOL_POINT ), " com " , 600 , 600 , 0 );
       
                             if (resultat== 10009 ) return true ; else    return false ;

                }

    }



}
//+------------------------------------------------------------------+
여기에는 세 쌍의 기본 브래킷만 있습니다.
 
Dimka-novitsek :
여기에는 세 쌍의 기본 브래킷만 있습니다.

컴파일러는 우연히 발견된 라인을 나타냅니다. 다음에는 해당 라인을 강조 표시해야 합니다. 그런 다음 vlomy에서 "612번째 줄과 커서의 62번째 위치"를 찾습니다.

여기 이 줄에

 if (resultat== 10009 ) return true ; else    return false ;

나는 참과 거짓이 대괄호로 둘러싸여 있지 않다는 것을 좋아하지 않습니다. 나는 모릅니다. 언어가 그러한 기록을 허용할 수도 있지만 Feng Shui에 따르면 다음과 같아야 합니다.

 if (resultat== 10009 ) 
     return ( true );
else   
     return ( false );