- Geht es um Positionen oder Orders? MQ5 macht einen Unterschied zwischen (offenen) Positionen (PositionsTotal()) und schwebenden Aufträgen (OrdersTotal()!
- Stell den Kursor auf OrderSelect und drück auf F1, manchmal (zB. bei OrderGetTicket()) gibt es auch ein Beispiel!!
- Geht es um Positionen oder Orders? MQ5 macht einen Unterschied zwischen (offenen) Positionen (PositionsTotal()) und schwebenden Aufträgen (OrdersTotal()!
- Stell den Kursor auf OrderSelect und drück auf F1, manchmal (zB. bei OrderGetTicket()) gibt es auch ein Beispiel!!
Hi,
1. es ist MQL4 und es geht um Orders (zb OrderType() == OP_BUY).
2. grundsätzlich funktioniert der Code, nur eben bei einzelnen Order's bringt er die Fehlermeldung 3. Das ist das, was mich zweifeln lässt, ob meine Schleife und { } Setzung korrekt ist :-/
Hi,
1. es ist MQL4 und es geht um Orders (zb OrderType() == OP_BUY).
2. grundsätzlich funktioniert der Code, nur eben bei einzelnen Order's bringt er die Fehlermeldung 3. Das ist das, was mich zweifeln lässt, ob meine Schleife und { } Setzung korrekt ist :-/
Wenn der Code nur hin und wieder falsch ist, hilft nur
- alles, Parameter und Preise(Preis-Gap?) ausdrucken,
- vorher ein GetLastError(); platzieren ("After the function call, the contents of _LastError are reset."),
- prüfen, ob die Position nicht zwischenzeitlich durch SL oder TP geschlossen ist.
void closeBUY() { for(int c=OrdersTotal()-1;c>=0;c--) { if(OrderSelect(c,SELECT_BY_POS,MODE_TRADES)) { if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber) { RefreshRates(); double bid = NormalizeDouble(Bid,Digits); double ask = NormalizeDouble(Ask,Digits); if(OrderType()==OP_BUY) { Closeticket=OrderClose(OrderTicket(),OrderLots(),bid,Slippage*10,clrGreen); if(Closeticket == false) { FehlerCode = GetLastError(); FehlerBeschreibung = ErrorDescription(FehlerCode); FehlerAusgabe = StringConcatenate("***** FEHLER [closeBUY()] Schließen BUY: ", OrderTicket()," = ", FehlerCode," : ",FehlerBeschreibung); Print(FehlerAusgabe); } } } } } };
Hallo,
in Ihrem Code unten in den letzten Klammer steht }; (;) .
Kommt es nicht zur Fehler beim Kompilieren?
Sonst probieren Sie den Order mit ask zu schließen.
https://docs.mql4.com/trading/orderclose
Gruß Igor
- docs.mql4.com
Hallo,
in Ihrem Code unten in den letzten Klammer steht }; (;) .
Kommt es nicht zur Fehler beim Kompilieren?
Sonst probieren Sie den Order mit ask zu schließen.
https://docs.mql4.com/trading/orderclose
Gruß Igor
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Hallo,
ich hoffe mir kann jemand weiter helfen.
In meinem EA habe ich einen OrderClose Befehl, der unter bestimmten Umständen ausgeführt werden soll.
Es kann sein, dass es (ich bleibe in meinem Bsp. mal bei BUY() Positionen), sich mal um 2-3 Positionen handelt, es kann sich aber auch mal um 20-21 Positionen auf einmal handeln.
Was mir aufgefallen ist, manchmal kommt für einzelne Positionen die Fehlermeldung 3 (invalid trade parameters), leider kann ich nicht strukturell raus finden warum.
Anbei ist mal mein Code, für den OrderClose Befehl, vlt. hat jemand von euch eine Idee, warum es bei vereinzelnden Positionen zu der Fehlermeldung kommt?
Oder ist mein Code schlecht/fehlerhaft?
Danke im Voraus für Tipps / Hilfen / Diskussionen :-)