DomGilberto: Ich kann nicht glauben, dass ich diese Anfängerfehler mache... Das ärgert mich! Ja, ich kann jetzt drucken und den Auftrag auswählen. Das ist der Code, der in Bezug auf den Druck funktioniert - die Lose werden aber immer noch nicht geschlossen? Ich habe auch die Journalmeldungen unten eingefügt.
2013.07.31 11:13:52 2013.02.01 16:00 trendfishing_play_ground EURUSD,H1: Order Select returned the error of 0 // Not sure what is going on here?
(Facepalm - ich brauche offensichtlich eine Pause davon!) Ok, das ist geklärt und jetzt wird die Bestellung ausgewählt. Dies ist das Journal drucken jetzt - "Close_Half_Order" Fehler = 0? Das ist die eigentliche OrderClose-Funktion, die fehlschlägt. Es hat nichts mit der Anzahl der "000" nach der zweiten Dezimalstelle im Teil "Lots to close is" zu tun, oder?
2013.07.3111:28:492013.02.0115:00 trendfishing_play_ground EURUSD,H1: Close_Half_Order Last Error = 02013.07.3111:28:492013.02.0115:00 trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.182013.07.3111:28:492013.02.0115:00 trendfishing_play_ground EURUSD,H1: Order Ticker Number = 92013.07.3111:28:492013.02.0115:00 trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.090002013.07.3111:28:492013.02.0115:00 trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.010002013.07.3111:28:492013.02.0115:00 trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.010002013.07.3111:28:492013.02.0115:00 trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931
(Facepalm - ich brauche offensichtlich eine Pause davon!) Ok, das ist geklärt und jetzt wird die Bestellung ausgewählt. Dies ist das Journal drucken jetzt - "Close_Half_Order" Fehler = 0? Das ist die eigentliche OrderClose-Funktion, die fehlschlägt. Es hat nichts mit der Anzahl der "000" nach der zweiten Dezimalstelle im Teil "Lots to close is" zu tun, oder?
Klammern, Klammern, Klammern . . manchmal muss man sie verwenden, manchmal nicht.
Die Funktion OrderClose() ist nicht fehlgeschlagen . . .
if(OrderMagicNumber()==MagicNumber)
if(OrderSymbol()==Symbol())
if(OrderType()==OP_BUY)
if(OpenOrdersThisPair(Symbol())==1) // if this is true . . .bool Close_Half_Order = OrderClose(OrderTicket(),half,FirstTarget_Buy,3,CLR_NONE); // . . . do this.if(Close_Half_Order!=TRUE)Print("Close_Half_Order Last Error = ", GetLastError()); // do this whatever happens . . .
Wenn der OrderType() kein OP_BUY ist, wird die letzte Zeile trotzdem ausgeführt, daher der Fehler 0 ... Fügen Sie Klammern wie folgt hinzu:
if(OrderMagicNumber() == MagicNumber)
if(OrderSymbol() == Symbol())
if(OrderType() == OP_BUY)
if(OpenOrdersThisPair(Symbol()) == 1)
{
bool Close_Half_Order = OrderClose(OrderTicket(), half, FirstTarget_Buy, 3, CLR_NONE);
if(Close_Half_Order != TRUE) Print("Close_Half_Order Last Error = ", GetLastError() ); // only executed if the OrderClose() was also executed
}
Sie sprachen vorhin von schwebenden Aufträgen, haben Sie tatsächlich einen OP_BUY offen, wenn Sie testen? oder haben Sie einen schwebenden Auftrag offen?
Ich habe einen schwebenden Auftrag mit der Bezeichnung "OP_BUYSTOP" eingegeben, aber ich hatte den Eindruck, dass sich dieser Auftrag bei Auslösung in einen "OP_BUY" ändern würde?
Ich dachte, der Auftragstyp wäre "OP_BUY", wenn er ausgelöst worden wäre?
Schließlich bin ich nur daran interessiert, wenn der Auftrag ausgelöst worden ist?
Warum sind diese Klammern verwirrend? Meinen Sie damit, wo die linke Klammer steht? Wenn ja, scheint das eine individuelle Sache zu sein, denn ich wurde diesbezüglich mehrfach korrigiert.
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.
Ich kann nicht glauben, dass ich diese Anfängerfehler mache... Das ärgert mich! Ja, ich kann jetzt drucken und den Auftrag auswählen. Das ist der Code, der in Bezug auf den Druck funktioniert - die Lose werden aber immer noch nicht geschlossen? Ich habe auch die Journalmeldungen unten eingefügt.
2013.07.31 11:13:52 2013.02.01 16:00 trendfishing_play_ground EURUSD,H1: Order Select returned the error of 0 // Not sure what is going on here?
c ist eine POSITION, keine Ticketnummer...
(Facepalm - ich brauche offensichtlich eine Pause davon!) Ok, das ist geklärt und jetzt wird die Bestellung ausgewählt. Dies ist das Journal drucken jetzt - "Close_Half_Order" Fehler = 0? Das ist die eigentliche OrderClose-Funktion, die fehlschlägt. Es hat nichts mit der Anzahl der "000" nach der zweiten Dezimalstelle im Teil "Lots to close is" zu tun, oder?
(Facepalm - ich brauche offensichtlich eine Pause davon!) Ok, das ist geklärt und jetzt wird die Bestellung ausgewählt. Dies ist das Journal drucken jetzt - "Close_Half_Order" Fehler = 0? Das ist die eigentliche OrderClose-Funktion, die fehlschlägt. Es hat nichts mit der Anzahl der "000" nach der zweiten Dezimalstelle im Teil "Lots to close is" zu tun, oder?
Klammern, Klammern, Klammern . . manchmal muss man sie verwenden, manchmal nicht.
Die Funktion OrderClose() ist nicht fehlgeschlagen . . .
Wenn der OrderType() kein OP_BUY ist, wird die letzte Zeile trotzdem ausgeführt, daher der Fehler 0 ... Fügen Sie Klammern wie folgt hinzu:
Hmmm, will immer noch nicht schließen @ "Close_Half_Order" ? Sie erhalten auch keine Fehlermeldung?
OP_BUY?
Übrigens, diese Klammern machen nichts anderes, als die Situation zu verwirren .
Ich habe einen schwebenden Auftrag mit der Bezeichnung "OP_BUYSTOP" eingegeben, aber ich hatte den Eindruck, dass sich dieser Auftrag bei Auslösung in einen "OP_BUY" ändern würde?
Ich dachte, der Auftragstyp wäre "OP_BUY", wenn er ausgelöst worden wäre?
Schließlich bin ich nur daran interessiert, wenn der Auftrag ausgelöst worden ist?
Warum sind diese Klammern verwirrend? Meinen Sie damit, wo die linke Klammer steht? Wenn ja, scheint das eine individuelle Sache zu sein, denn ich wurde diesbezüglich mehrfach korrigiert.