Fehler, Irrtümer, Fragen - Seite 847

 

Der Compiler hat mir gegenüber etwas auf Englisch ausgedrückt. Die Klammer etwas ist kein Programm, das Programm im Allgemeinen ist bei dieser Klammer falsch und die Klammer ist unausgewogen. Aber es gibt Klammern. Könnten Sie mir bitte sagen, wo ich nach einem Fehler suchen soll?

'}' - Fehler am Ende des Programms Redo.mq5 3562 1
'{' - unausgewogene Klammern 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);   
} 

//////////////////////////////////////////////////////////////////////////////////////////////
 
Ich glaube, das Problem liegt weiter oben - so wie ich es sehe, ist es in Ordnung...
 
Yedelkin:

Nun, ich habe es bereits oben beendet. Ich wiederhole: Der "neue" Kurs für den Expert Advisor ist ein Kurs, der unmittelbar nach Abschluss der nächsten OnTick()-Funktion eintrifft, auch wenn dieser Kurs nicht der "erste Tick auf einem Balken" ist. Ihre Bedingung, dass ein neuer Balken kommt

wird erst dann geprüft, wenn der Expert Advisor die Verarbeitung des Kurses des "vorherigen" Balkens abgeschlossen hat. ...Wenn die Funktion OnTick() 90 Sekunden lang ausgeführt und um 00.00.00 Uhr gestartet wird, wird die "Bedingung für einen neuen Tick auf M1 mindestens einmal ausgeführt, nämlich nach 00.01.30

Danke, so sollte es sein.
 
Dimka-novitsek:

Der Compiler hat mir gegenüber etwas auf Englisch ausgedrückt. Klammer etwas ist nicht das Programm, das Programm im Allgemeinen ist falsch mit dieser Klammer und unausgewogene Klammer. Aber es gibt Klammern. Bitte sagen Sie mir, wo der Fehler zu suchen ist?

'}' - unerwartetes Ende des Programms Redo.mq5 3562 1
'{' - unausgewogene Klammern Remake.mq5 3330 1

Vielleicht fehlen beim Schreiben von Code die geschweiften Klammern (unabhängig davon, was der Compiler sagt)?

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);   
   }
}
 
Ich danke Ihnen!!!
 
Tut mir leid, dieselbe Frage. Es heißt '{' - some operator expected parenthesis.mq5 612 62 Ich habe es etwa 20-25 Minuten lang in einem separaten EA versucht und kann die Ursache nicht finden.
/////////////////////////////////////////////////////////////////////// 

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;

           }

    }



  }
//+------------------------------------------------------------------+
Ich habe sie 6 Mal nach Paaren durchgesehen, sie scheinen alle gepaart zu sein. Und sie sind nicht so dunkel, nicht so viele. Ich schaue mir alles an, Punkte mit Punkten, andere Klammern... Schauen Sie es sich bitte an, wenn Sie können!
 
Dimka-novitsek:
Entschuldigung, dieselbe Frage. Es sagt '{' - einige Operator erwartet parenthesis.mq5 612 62 Ich versuche es für etwa 20-25 Minuten oder vielleicht mehr in einem separaten EA und ich kann die Ursache nicht finden, alle großen Klammern habe ich gesehen, 6 mal, gut, alle gepaart. Und sie sind nicht so dunkel, nicht so viele. Ich schaue mir alles an, Punkte mit Punkten, andere Klammern... Schauen Sie es sich bitte an, wenn Sie können!

Um den Code nicht nur für Sie, sondern auch für alle anderen verständlich zu machen, gibt es eine sehr nützliche Funktion im MetaEditor. Er heißt Styler (folgen Sie diesem Link für weitere Informationen). Klicken Sie auf Werkzeuge => Styler. Tastenkombination Strg+, . Probieren Sie es aus, es wird Ihnen helfen, es zu verstehen. ))

 
Ja, sofort, tut mir leid.
 
/////////////////////////////////////////////////////////////////////// 

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;

                }

    }



}
//+------------------------------------------------------------------+
Es gibt nur drei Paare von Grundklammern
 
Dimka-novitsek:
Es gibt nur drei Paare von Klammern

Der Compiler zeigt die Zeile an, über die er gestolpert ist. Das nächste Mal sollten Sie solche Zeilen hervorheben. Es ist mühsam, "Zeile 612 und die 62. Cursorposition" zu finden.

Auf dieser Linie.

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

Ich mag es nicht, dass true und false nicht von Klammern umgeben sind. Ich weiß nicht, ob die Sprache dies zulässt, aber so sollte es in fen-shui geschrieben werden:

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