Carl Schreiber:
Do DARFST nicht nach oben zählen:
Do DARFST nicht nach oben zählen:
int total=OrdersTotal();
for(int pos=0;pos<total;pos++)
Du MUSST abwärtszählen:for(int pos=0;pos<total;pos++)
int pos=OrdersTotal();
while(pos-->0)
Denn, wenn Du Order[0] löscht rutsch Order[1] auf Pos. Order[0] undDu betrachtest jetzt Order[1] - das war aber Order[2] - ok?while(pos-->0)
Klingt logisch - funktioniert auch :)
Danke :)
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
ich habe ein kleines Problem.
Mein Code will nicht wie er soll :P
Beim aufrufen der Funktion, schließt er immer nur einen Teil der offenen Orders. Nie alle. Das soll er aber.
Ich muss diese Funktion dann immer wieder aufrufen, bis alle Orders zu sind.
{
if( bool( ObjectGetInteger( 0, "CloseButtonAll", OBJPROP_STATE ) ) )
{
Print( "Close All Button Clicked" );
int total=OrdersTotal();
for(int pos=0;pos<total;pos++)
{
if(OrderSelect(pos, SELECT_BY_POS)==true)
{
int mticket=OrderTicket();
double mprofit=OrderProfit();
double mlots=OrderLots();
int type=OrderType();
if(OrderSymbol()==Symbol())
if(type==1)
{
{
sell=false;
int close=OrderClose(mticket,mlots,MarketInfo(OrderSymbol(),MODE_ASK),0,Red);
}
}
else
{
{
buy=false;
int close=OrderClose(mticket,mlots,MarketInfo(OrderSymbol(),MODE_BID),0,Red);
}
}
}
}
ObjectSetInteger( 0, "CloseButtonAll", OBJPROP_STATE, false );
}
Danke im vorraus :)