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; |
Alle Zeitangaben in WEZ +2. Es ist jetzt 22:43 Uhr. |
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum