Das [tp]-Tag bei einigen Brokern entfernt?

 

Ich benutze die Kommentare, um zu wissen, ob ein Auftrag durch TakeProfit oder StopLoss geschlossen wurde... Ich habe festgestellt, dass in der MIG BANK(reale Konten) das Tag "[tp]" oder "[sl]" in den Aufträgen entfernt wurde... meine EAs funktionieren im Demokonto, aber nicht im realen Konto, weil sie das Tag entfernt haben... Ich überlege, einen Vergleich zwischen dem TakeProfit-Kurs und dem Schlusskurs zu machen, aber das könnte im Falle eines Schlupfes beim Schlusskurs oder ähnlichem ungenau sein. Irgendeine Idee?

 
Ist es nicht einer der Broker, die nach orderend() mit ordermodify() die Order modifizieren müssen, um TP und SL aufgrund neuer Regeln zu setzen?
 
NablaQuant:

Ich verwende die Kommentare, um zu wissen, ob eine Order durch TakeProfit oder StopLoss geschlossen wurde... Ich habe festgestellt, dass in der MIG BANK (reale Konten) das Tag "[tp]" oder "[sl]" in den Aufträgen entfernt wurde... meine EAs funktionieren im Demokonto, aber nicht im realen Konto, weil sie das Tag entfernt haben... Ich überlege, einen Vergleich zwischen dem TakeProfit-Kurs und dem Schlusskurs zu machen, aber das könnte im Falle eines Schlupfes beim Schlusskurs oder ähnlichem ungenau sein. Irgendeine Idee?


Die Kommentare '[tp]', '[sl]' sind maklerspezifisch. Manche haben sie, manche nicht.

Sie können prüfen, ob der Schlusskurs des Auftrags über/unter dem Eröffnungskurs liegt und welche Art von Auftrag vorliegt.

 
Matutin:
Ist dies nicht einer der Broker, die nach orderend() mit ordermodify() die Order modifizieren müssen, um TP und SL aufgrund neuer Regeln zu setzen?

Dies ist auf die Verwendung von BT Bridge (semi ECN Broker) zurückzuführen, nicht auf neue Regeln.

 
Matutin:
Gehört er nicht zu den Brokern, die die Order nach orderSend() mit ordermodify() ändern müssen, um TP und SL aufgrund neuer Regeln zu setzen?

Nein, bei MIG können SL und TP in OrderSend() gesetzt werden.


CB

 
gordon:

Die Kommentare '[tp]' und '[sl]' sind maklerspezifisch. Manche haben sie, manche nicht.

Sie können prüfen, ob der Schlusskurs der Order über/unter dem Eröffnungskurs liegt und welche Art von Order vorliegt.

Das ist dasselbe wie die OrderProfit-Funktion, aber nicht das, was ich brauche. Sie können eine Order mit positivem oder negativem TakeProfit schließen (wenn Sie den TakeProfit später ändern).


Was ich brauche, ist zu wissen, ob eine Order durch TakeProfit oder StopLoss geschlossen wurde, und ohne diesen Kommentar ist das nicht möglich.


Ich könnte den Schlusskurs mit dem anfänglichen TakeProfit-Kurs vergleichen, aber das könnte wegen des Schlupfes ungenau sein?


Vielen Dank für Ihre Antworten.

 
NablaQuant:

Sie können eine Order mit einem positiven oder negativen TakeProfit schließen (wenn Sie den TakeProfit später ändern).

Guter Punkt.


Ich könnte den Schlusskurs mit dem anfänglichen TakeProfit-Kurs vergleichen, aber das könnte aufgrund des Schlupfes ungenau sein?

Sie können prüfen, ob MathAbs(closeprice - tp) > MathAbs(closeprice - sl)

 
Das ist möglich. Sie müssten eine Logik entwickeln, die Folgendes tut: - Informationen über Orders, die der EA geschlossen hat, beibehalten - den Order History Pool kontinuierlich auf Orders überprüfen, die "in scope" sind, aber von Ihrem EA nicht geschlossen wurden - das Gewinnzeichen überprüfen, um festzustellen, ob ein Broker SL oder TP aufgerufen hat Funktioniert bei mir. CB
 
scheint der einzige Weg zu sein... Danke!
 
NablaQuant:
Das scheint die einzige Möglichkeit zu sein... Danke!

Ich weiß nicht, ob es hilft oder nicht, aber zusätzlich zu dem, was CB vorschlägt, fülle ich meine Auftragskommentare mit Leerzeichen, damit der Broker nichts Wichtiges darin überschreibt. Das ist nicht ausfallsicher, aber ich mag es als zusätzlichen Schutz, falls die externe Datendatei irgendwie verloren geht.

 

HmmCOPY00 Vielleicht übersehe ich etwas, aber gibt es Fälle, in denen das Folgende nicht ausreicht?


   // select the closed order first and then do this:
   
   double sl_diff = MathAbs(OrderClosePrice() - OrderTakeProfit()),
          tp_diff = MathAbs(OrderClosePrice() - OrderStopLoss());
   
   if ( sl_diff > tp_diff )
      Print("order closed at tp");
   else
      Print("order closed at sl");

   // I assume here that an equality of sl_diff and tp_diff is impossible...?
Grund der Beschwerde: