|
Skripte Skripte für Metatrader 4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Bestimmte Order löschen
Ich möchte bestimmte Order löschen. Diese Order mit großer Lotzahl bekommt von mir die MagicNumber 4711.
Jetzt hatte ich immer zum Löschen aller Orders folgendes verwendet: int cnt = 0; for (cnt = OrdersTotal(); cnt >= 0 ; cnt--) { OrderSelect(0,SELECT_BY_POS, MODE_TRADES); if(Symbol()!=OrderSymbol()) RefreshRates(); if(OrderType()==OP_BUY) OrderClose(OrderTicket();OrderLots(), MarketInfo(OrderSymbol(),MODE_BID),5,CLR,NONE); if(OrderType()==OP_SELL) OrderClose(OrderTicket();OrderLots(), MarketInfo(OrderSymbol(),MODE_ASK),5,CLR,NONE) } Jetzt habe ich einfach die Abfrage davor gesetzt: if (OrderMagicNumber() == 4711) aber das klappt nicht. Da wird gar keine Order gelöscht.... Wer kann mir weiter helfen? |
|
|||
Natürlich habe ich die Abfrage in die Schleife gesetzt und die die Orderlöschungen in Klammern gezogen...
|
|
|||
Soweit ich sehn kann liegt das Problem dazwischen.
OrderTicket();OrderLots() Edit: Die Wörter Ask und Bid sollten reichen anstelle von MODE_ASK und MODE_BID. Edit: Poste mal die ganze OrderClose Geschichte. |
|
|||
Hallo,
dein Code kann aber nie richtig funktioniert haben. Code:
OrderSelect(0,SELECT_BY_POS, MODE_TRADES); richtig wäre: Code:
OrderSelect(cnt,SELECT_BY_POS, MODE_TRADES); Hier bekommst du aber die Anzahl der Orders zurück. Die Position der letzten Order ist aber um 1 niedriger, da die Orderposition bei 0 beginnt. also: Code:
cnt = OrdersTotal() -1; |
Lesezeichen |
|
|