[WARNUNG GESCHLOSSEN!] Alle Fragen von Neulingen, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen. - Seite 1071

 
eddy:
dafür ist es da, deshalb ist es in if()
Ja, aber Sie gehen in eine Schleife, und wenn die Bedingung nicht erfüllt ist, kommen Sie mit Ihrer Codekonstruktion nie aus der Schleife heraus, sie wird unendlich und wird nicht unterbrochen. Sie können nicht sehen, was der Parameter sec! ist, er ist nicht deklariert.
 
eddy:
int sec=Seconds();

wie kann es nicht deklariert werden? :)

der Zyklus muss unterbrochen werden, wenn die Sekunde wechselt

 
eddy:

wie kann es nicht deklariert werden? :)

der Zyklus muss unterbrochen werden, wenn die Sekunde wechselt

Deklariert sec, aber sec! (mit einem Ausrufezeichen) ?
 
!=
es ist "nicht gleich"
 
eddy:
ist "nicht gleich".
sec ist immer gleich Seconds(), da letztere eine Konstante ist und Sie den Wert der Konstante "sec" zuweisen.
 
diese Schleife in init(), sec an der gleichen Stelle deklariert
 
Wo werden die "Alert"-Meldungen gespeichert und bis wann? Ist es möglich, sie nicht im "Signal"-Fenster zu lesen, sondern indem man den Ort, an dem sie sich befinden, im Terminal öffnet (es kommt vor, dass das Fenster geschlossen wird, wenn man zu einer anderen Anwendung wechselt, und man muss den Expert Advisor erneut starten, um sie zu sehen, was unpraktisch ist)?
 

Warum funktioniert dieser Code bei einem dc einwandfrei, bei einem anderen jedoch mit dem OrderModify-Fehler 4051 (ungültiges Ticket)?

 void Modify ()
      int total = OrdersTotal();
      for(int i=total-1;i>=0;i--)
      {
       OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
       if   (OrderModify (OrderTicket(),OrderOpenPrice(),
            OrderOpenPrice()-NormalizeDouble(300*Point,Digits),
            OrderTakeProfit(),0,CLR_NONE)== false)
         {
          Modify();
         }
       }
 
         int sec=Seconds();
       while(true)
         if(sec!=Seconds()) break;   // new sec

Warum wird der Kreislauf nicht unterbrochen?

 
eddy:

warum wird die Schleife nicht unterbrochen?

try while (false)

die Schleife läuft so lange, wie sec!=Seconds()

oder so

while(true)

if(sec==Sekunden()) break; // neue sec