エラー、バグ、質問 - ページ 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() 関数の完了直後に到着する気配値で、この気配値が「バーの最初のティック」でない場合もあります。 新しいバーが来るというあなたの条件

は、Expert Advisor が「前の」バーに来た気配値の処理を終了した後にのみチェックされます。 ...OnTick() 関数が 90 秒間実行されて 00.00.00 に開始した場合、「M1 の新しいティックの条件は、少なくとも一度、すなわち 00.01.30 以後に実行されます

ありがとうございます、そういうものなんですね。
 
Dimka-novitsek:

コンパイラーは、私に英語で何かを表現した。ブラケット何とかはプログラムではなく、プログラム全般がこのブラケットではおかしいし、ブラケットもアンバランスだ。しかし、ブラケットがある。お願い、教えてください、どこにエラーがあるのか?

'}'- 予期せぬプログラムの終了 Redo.mq5 3562 1
'{' - アンバランスな括弧 Remake.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);   
   }
}
 
ありがとうございます!!!
 
すみません、同じ質問です。'{' - some operator expected parenthesis.mq5 612 62 別々のEAで20~25分ほど試しましたが、原因がわかりません。
/////////////////////////////////////////////////////////////////////// 

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回ほどp-pairに目を通しましたが、すべてpairedのようでした。しかも、そんなに暗くない、多くない。全部見てるんですよ、点には点、他の括弧には他の括弧...。できれば、ご覧になってください
 
Dimka-novitsek:
すみません、同じ質問です。'{' - some operator expected parenthesis.mq5 612 62 私は別のEAで約20-25分、あるいはそれ以上試していますが、原因が見つかりません、私は6回見たすべての大カッコ、まあ、すべてのペアを見ました。しかも、そんなに暗くない、多くない。全部見てるんですよ、点には点、他の括弧には他の括弧...。できれば、ご覧になってください

自分だけでなく、誰もが理解できるコードにするために、MetaEditorには とても便利な機能があります。その名も「スタイラー」(詳細はこちらをご覧ください)。ツール」⇒「スタイラー」をクリックします。ショートカット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;

                }

    }



}
//+------------------------------------------------------------------+
基本的なブラケットは3組だけ
 
Dimka-novitsek:
括弧は3組だけです

コンパイラは、つまずいた行を指摘する。次回は、そのような行を強調してください。612行目と62番目のカーソル位置」を探すのがめんどくさい。

この路線で。

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

trueとfalseが括弧で囲まれていないのが気になる。言語が許すかどうかわかりませんが、風水ではこう書くべきでしょう。

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