Sneck55: Es muss dekrementiert werden, wenn ein Auftrag geschlossen wird, um mit den Vorgängen im Pool übereinzustimmen, aber nicht, wenn kein Auftrag geschlossen wird. Wenn er dekrementiert, ohne einen Auftrag zu schließen, gerät er in eine Endlosschleife.
Sneck55: Er muss dekrementiert werden, wenn eine Bestellung geschlossen wird, um mit dem übereinzustimmen, was im Pool passiert, aber nicht, wenn keine Bestellung geschlossen wird. Wenn er dekrementiert, ohne einen Auftrag zu schließen, gerät er in eine Endlosschleife.
Wenn Sie OrdersTotal() nicht ständig aufrufen würden, hätten Sie dieses Problem nicht. Rufen Sie die Summe einmal auf. Setzen Sie sie in eine int. Verwenden Sie diese int in der for-Schleife.
Abgesehen davon, haben Sie meine frühere Antwort überhaupt gelesen? Die gesamte Schleife ist eine völlige Zeitverschwendung. Sehen Sie sich Ihren Code an. Was glauben Sie, wie hoch der Wert von SellTicket bereits ist?
if(SellTicket!=0)
{
if(SmallMA>MediumMA)
{
for(Counter=0;Counter<=OrdersTotal()-1;Counter++)
{
SelectedOrder = OrderSelect(Counter,SELECT_BY_POS);
if(OrderMagicNumber()==MagicNumber&&OrderSymbol()==Symbol()&&OrderType()==OP_SELL)
{
// while(IsTradeContextBusy()) Sleep(10);
Closed=OrderClose(OrderTicket(),OrderLots(),MarketInfo(Symbol(),MODE_ASK),Slippage,Red);
if(Closed) SellTicket=0;
elseAlert("Symbol: ",Symbol()," Ticket: ",SellTicket," unable to close sell order(s): sell ma convergence close routine");
}
Counter--;
}
}
}
Ja, und es ist nicht logisch, dass man die erforderlichen Werte bereits im EA hat und sie dann vergisst und den Auftragspool durchforstet, um sie abzurufen. So etwas muss nur im Rahmen einer Neustart-Wiederherstellung durchgeführt werden.
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.
Er muss dekrementiert werden, wenn eine Bestellung geschlossen wird, um mit dem übereinzustimmen, was im Pool passiert, aber nicht, wenn keine Bestellung geschlossen wird. Wenn er dekrementiert, ohne einen Auftrag zu schließen, gerät er in eine Endlosschleife.
Wenn Sie OrdersTotal() nicht ständig aufrufen würden, hätten Sie dieses Problem nicht. Rufen Sie die Summe einmal auf. Setzen Sie sie in eine int. Verwenden Sie diese int in der for-Schleife.
Abgesehen davon, haben Sie meine frühere Antwort überhaupt gelesen? Die gesamte Schleife ist eine völlige Zeitverschwendung. Sehen Sie sich Ihren Code an. Was glauben Sie, wie hoch der Wert von SellTicket bereits ist?
Ja, und es ist nicht logisch, dass man die erforderlichen Werte bereits im EA hat und sie dann vergisst und den Auftragspool durchforstet, um sie abzurufen. So etwas muss nur im Rahmen einer Neustart-Wiederherstellung durchgeführt werden.