Schließung von halben Parzellen. - Seite 5

 
DomGilberto:

Ich habe eine schwebende Order "OP_BUYSTOP" eingegeben, aber ich hatte den Eindruck, dass sich diese bei Auslösung in eine "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 Angelegenheit zu sein, denn ich wurde diesbezüglich schon mehrfach korrigiert.

Die geschweiften Klammern werden nicht benötigt, und die Tatsache, dass sie da sind, kann für andere, die versuchen, Ihren Code zu lesen (mich), verwirrend sein.


Wenn Sie nur einen BUYSTOP haben, wird Ihr Code nichts tun, weil es kein OP_BUY ist...

DomGilberto:
Hmmm, will immer noch nicht schließen @ "Close_Half_Order" ? Ich bekomme auch keine Fehlermeldung?

Das macht also Sinn, solange die Bestellung noch nicht abgeschlossen ist...

Hat Ihre Order die richtige Magic Number?

 
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Close_Half_Order Last Error = 4108
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: OrderClose error 4108
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: pending order #9 cannot be closed
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Order Lots Open = 0.18
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: Order Ticker Number = 9
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The Lots to close is: 0.09000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The Lotstep is: 0.01000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: The minimum lots are: 0.01000
2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: FirstTarget_Buy: 1.37931
Ich habe die Zeile "if(OrderType()==OP_BUY)" entfernt- Das ist der neue Ausdruck im Journal nach dem Test? Ungültiges Ticket... (Entschuldigung, dass ich 101 Fragen dazu stelle!)
 
DomGilberto:
Ich habe die Zeile "if(OrderType()==OP_BUY)" entfernt - Das sind die neuen Ausdrucke im Journal nach dem Test? Ungültiges Ticket... (Entschuldigung, dass ich 101 Fragen zu diesem Thema stelle!)

RaptorUK:

Sie können einen schwebenden Auftrag nicht schließen, was hat Ihnen Ihr Fehlerbericht mitgeteilt?

2013.07.31 17:45:46     2013.02.01 15:00  trendfishing_play_ground EURUSD,H1: pending order #9 cannot be closed

Sie können einen schwebenden Auftrag nicht schließen, er wird gelöscht.

 
Aber ich versuche nicht, einen schwebenden Auftrag zu schließen? Ich versuche, die Hälfte der Lose eines "OP_BUY" zu schließen, der nicht schwebend ist...? Ich übersehe hier offensichtlich etwas...
 
DomGilberto:
Aber ich versuche nicht, einen schwebenden Auftrag zu schließen? Ich versuche, die Hälfte der Lots auf einem "OP_BUY" zu schließen, der nicht ausstehend ist...? Ich übersehe hier offensichtlich etwas...
DomGilberto:

Ich habe eine schwebende Order "OP_BUYSTOP" eingegeben, aber ich hatte den Eindruck, dass sich diese bei Auslösung in eine "OP_BUY" ändern würde?

Wenn Sie einen OP_BUYSTOP haben, tut Ihr Code nichts, was auch in Ordnung ist. Wenn der OP_BUYSTOP ausgelöst wird, verwandelt er sich in einen OP_BUY und Ihr Code sollte die Hälfte seiner Positionsgröße schließen ... solange er das richtige Symbol und die richtige Magic Number hat, oder? Ich vermute, dass dies der Fall sein muss, sonst hätte der Code nicht versucht, die Pending Order zu schließen ... was ist mit OpenOrdersThisPair(Symbol()) == 1 ?
 
Wenn ich "OpenOrdersThisPair(Symbol()) == 1" aus dem Code entferne, sind die Meldungen im Journal genau diesel ben...Ich bin verblüfft...?
 
DomGilberto:
Wenn ich "OpenOrdersThisPair(Symbol()) == 1" aus dem Code entferne, sind die Meldungen im Journal genau diesel ben...Ich bin verblüfft...?

Es ist an der Zeit, weitere Print()-Anweisungen hinzuzufügen und alles zu überprüfen, was Sie noch nicht überprüft haben... Sie sind nur verwirrt, weil Sie nicht wissen, warum, finden Sie es heraus und Sie werden nicht mehr verwirrt sein.

Wenn Sie herausgefunden haben, warum Sie all diese Print()-Anweisungen haben, die Sie nicht mehr in der Registerkarte "Journal/Experts" ausdrucken wollen, sehen Sie sich das hier an, mit dem Sie die Anweisungen ein- und ausschalten können: https: //www.mql5.com/en/forum/135168/page2

 

Ach, übrigens, das geht nicht...

bool Close_Half_Order = OrderClose(OrderTicket(), half, FirstTarget_Buy, 3, CLR_NONE);

. . . es sei denn, FirstTarget_Buy ist zufällig == Bid Um die Möglichkeit auszuschließen, dass dies nicht der Fall ist, verwenden Sie einfach Bid. Ein Buy wird mit einem Sell abgeschlossen, ein Sell wird zum Bid ausgeführt.

 
Ok, wenn ich also "Bid" dort einstelle, werden die Lose jetzt geschlossen, aber nicht zum richtigen Preis, und es scheint, dass mehrere Hälften während einer Position geschlossen werden. (mehr in Richtung der oberen 2/3 des 100%-Zielpreisbereichs... nicht alle zum gleichen Preis, zu dem sie schließen...)

Wie soll ich die Position bei "FirstTarget_Buy " schließen?
 
DomGilberto:
Ok, wenn ich also "Bid" dort eintrage, werden die Lots jetzt geschlossen, aber nicht zum richtigen Preis, und es scheint, dass mehrere Hälften während einer Position geschlossen werden. (mehr in Richtung der oberen 2/3 des 100%-Zielpreisbereichs... nicht alle zum gleichen Preis, zu dem sie schließen...)

Wie soll ich die Position zum "FirstTarget_Buy" schließen?

Sie können OrderClose() nicht zu einem anderen Preis als Bid und Ask (Buy und Sell) ausführen... so einfach ist das.

Was Sie tun können:

zwei Trades für jeweils die Hälfte der Position eröffnen und jedem einen anderen TP geben

oder

den Bid/Ask-Kurs überwachen und wenn er das "FirstTarget_Buy " erreicht oder überschritten hat, die Hälfte der Position zum Bid/Ask-Kurs schließen.