[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 313
Ich hoffe, ich habe nicht alles gelöscht, was ich brauche, sonst würde sich der Compiler über das Wort else beschweren:
if(OrdersTotal()>0){/// unnötige Zeile - wenn es keine Aufträge gibt, dann steht der Schleifenzähler auf Null und die Schleife wird nicht ausgeführt for(int i=OrdersTotal()-1;i>=0;i--){/// alle Aufträge durchgehen if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// wennkein Auftrag ausgewählt ist , dann... if(OrderMagicNumber()!=MagicNumber) continue; //wenn die magische Zahl nicht unsere ist, dann weiter zu einer anderen Bestellung if(OrderOpenTime()>=Time[0]) Torg=false; } // Was aber, wenn der Auftrag immer noch aus der Liste ausgewählt ist? } }
P.S.
Die Zeile, die bei der Auswahl eines Auftrags eine Fehlernummer anzeigt, sollte nicht aus irgendeinem Grund entfernt worden sein - es kann vorkommen, dass sie explodiert. Im Allgemeinen ist es besser, die Fehlerbehandlung dort einzusetzen, wo sie auftreten kann.
drknn: if(OrdersTotal()>0){/// unnötige Zeile - wenn es keine Aufträge gibt, steht der Schleifenzähler auf Null und die Schleife wird nicht ausgeführt for(int i=OrdersTotal()-1;i>=0;i--){/// alle Aufträge durchgehen if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// wennkein Auftrag ausgewählt ist , dann. if(OrderMagicNumber()!=MagicNumber) continue; //wenn die magische Zahl nicht unsere ist, dann weiter zu einer anderen Bestellung if(OrderOpenTime()>=Time[0]) Torg=false; } // Was aber, wenn der Auftrag immer noch aus der Liste ausgewählt ist? } }
Was passiert, wenn Sie versuchen, diese Schleife im Skript selbst zu überprüfen? Nun, einfach durch Ausdrucken des Ergebnisses - welche Position die Variable Torg in verschiedenen Fällen einnimmt. Glauben Sie, Sie können es nicht selbst tun?
drknn: Was passiert, wenn Sie versuchen, diese Schleife im Skript selbst zu überprüfen? Nun, einfach durch Ausdrucken des Ergebnisses - welche Position die Variable Torg in verschiedenen Fällen einnimmt. Glauben Sie, Sie können es nicht selbst tun?
Es stellte sich heraus, dass eine unbegrenzte Anzahl von Aufträgen auf einer neuen Leiste geöffnet wurde. Vorher wurden sie alle auf einmal geöffnet, aber jetzt wird erwartet, dass einer geöffnet wird und alle anderen werden geöffnet.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Erlauben Sie die Verwendung von Cookies, um sich auf der Website MQL5.com anzumelden.
Bitte aktivieren Sie die notwendige Einstellung in Ihrem Browser, da Sie sich sonst nicht einloggen können.
Sie sind angemeldet. Die Zwei-Faktor-Authentifizierung wurde deaktiviert. Richten Sie sie erneut ein und scannen Sie einen neuen QR-Code oder fahren Sie mit deaktivierter Zwei-Faktor-Authentifizierung fort.
Nein. Sie müssen nicht bei jeder Iteration eine Variable innerhalb der Schleife deklarieren.
Ich hoffe, ich habe nichts gelöscht, sonst würde sich der Compiler über das Wort else beschweren:
bool Torg=true;
if(OrdersTotal()>0){for(int i=OrdersTotal()-1;i>=0;i--){
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
}
}
}
Ich hoffe, ich habe nicht alles gelöscht, was ich brauche, sonst würde sich der Compiler über das Wort else beschweren:
if(OrdersTotal()>0){/// unnötige Zeile - wenn es keine Aufträge gibt, dann steht der Schleifenzähler auf Null und die Schleife wird nicht ausgeführt
for(int i=OrdersTotal()-1;i>=0;i--){/// alle Aufträge durchgehen
if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// wenn kein Auftrag ausgewählt ist , dann...
if(OrderMagicNumber()!=MagicNumber) continue; //wenn die magische Zahl nicht unsere ist, dann weiter zu einer anderen Bestellung
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// Was aber, wenn der Auftrag immer noch aus der Liste ausgewählt ist?
}
}
P.S.
Die Zeile, die bei der Auswahl eines Auftrags eine Fehlernummer anzeigt, sollte nicht aus irgendeinem Grund entfernt worden sein - es kann vorkommen, dass sie explodiert. Im Allgemeinen ist es besser, die Fehlerbehandlung dort einzusetzen, wo sie auftreten kann.
if(OrdersTotal()>0){/// unnötige Zeile - wenn es keine Aufträge gibt, steht der Schleifenzähler auf Null und die Schleife wird nicht ausgeführt
for(int i=OrdersTotal()-1;i>=0;i--){/// alle Aufträge durchgehen
if (! OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){// wenn kein Auftrag ausgewählt ist , dann.
if(OrderMagicNumber()!=MagicNumber) continue; //wenn die magische Zahl nicht unsere ist, dann weiter zu einer anderen Bestellung
if(OrderOpenTime()>=Time[0]) Torg=false;
}
// Was aber, wenn der Auftrag immer noch aus der Liste ausgewählt ist?
}
}
bool Torg;
if(OrdersTotal()==0) Torg=true;
if(OrdersTotal()>0){
for(int i=OrdersTotal()-1;i>=0;i--){
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)){
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderOpenTime()>=Time[0]) Torg=false;
if(OrderOpenTime()<Time[0]) Torg=true;
}
}
}
Wie wäre es damit?
Was passiert, wenn Sie versuchen, diese Schleife im Skript selbst zu überprüfen? Nun, einfach durch Ausdrucken des Ergebnisses - welche Position die Variable Torg in verschiedenen Fällen einnimmt. Glauben Sie, Sie können es nicht selbst tun?
Das glaube ich nicht.
Herunterladen - es wird helfen - http://depositfiles.com/files/eg4fmn3bp