Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 11.05.20
LQK LQK ist offline
Mitglied
 
Registriert seit: Nov 2019
Beiträge: 76
LQK befindet sich auf einem aufstrebenden Ast
Standard Wie wähle ich einen "individuellen" Trade aus?

Hallo,

ich arbeite gerade an einem vollautomatischen EA, dieser soll nach vordefinierten Kriterien Trades selbstständig öffnen und schließen.

Dazu muss u.a. ein Trade "individuell" aufgerufen werden können, z.B. anhand seiner Trade-ID.

Ich bin mir noch nicht sicher, wie ich dieses "individuelle Aufrufen" eines Trades am besten mache.

Funktionen die in dem Zusammenhang von Interesse sein könnten sind:
  • OrderSelect()
  • OrderGetTicket()
  • OrderMagicNumber()
  • OrderTicket()

---

Wenn ich mit einem Trade irgendwas machen will, z.B. diesen verkaufen, muss ich ihn ja anscheinend zwingend (?) erstmal auswählen, das offenbar immer mit OrderSelect(). Hier eine kleine Erläuterung von OrderSelect() inkl. Erläuterung der Methodensignatur von OrderSelect():

https://docs.mql4.com/trading/orderselect

"Dummerweise" brauche ich, um einen Trade mit OrderSelect() auswählen zu können, ja erstmal einen "identifier". Anscheinend kann dieser identifier zum einen die Trade-ID sein (SELECT_BY_TICKET).

Dann stellt sich mir aber die Frage, woher weiß ich die Trade-ID ("order ticket"). Wenn ich die Trade-ID haben will, diese jetzt bereichts zum Auswählen des Trades mittels OrderSelect(), nützt mir das nichts. Eigentlich müsste ich dann ja die Trade-ID bereits beim Öffnen des Trades irgendwie dokumentieren, dass ich später notfalls auf die Trade-ID zugreifen kann, wenn ich diese brauche, z.B. um dann mit Hilfe der Trade-ID den Trade über OrderSelect() aufrufen zu können. Zu dem Zweck könnte ich z.B. bereits beim Öffnen des Trades die Trade-ID (also das "order ticket") auslesen und z.B. in einem array dokumentieren.

Die Frage ist, wie kann ich die Trade-ID (also das "order ticket") aus einem Trade auslesen? Bislang habe ich noch keine geeignete Methode gefunden, die die Trade-ID aus einem Trade ausliest.

---

Was ich mit SELECT_BY_POS machen kann, habe ich noch nicht ganz begriffen. Ist es so, dass die Pos(ition) eines Trades sich aus dem Zeitpunkt der Eröffnung ergibt? D.h. der zuerst geöffnete Trade hat Pos = 1, der als zweites geöffnete Trade Pos = 2, der als n. geöffnete Trade Pos = n?

---

Noch gar keine Idee habe ich derzeit, was der dritte Eingabeparamter von OrderSelect() zu bedeuten hat:

Zitat:
MODE_TRADES (default)- order selected from trading pool(opened and pending orders),
MODE_HISTORY - order selected from history pool (closed and canceled order).
Offenbar wird Pos hier nur jeweils anders definiert, bei MODE_HISTORY werden historische Trades für die Erstellung der Pos-Liste ebenfalls berücksichtigt, bei MODE_TRADES dagegen nicht?


---

Wie die weiteren in Frage kommenden Methoden evtl. dienlich sein könnten (OrderGetTicket(), OrderMagicNumber() und OrderTicket()) ist mir derzeit noch nicht klar. Kann ich mit einer dieser Funktionen das erreichen, was ich erreichen will: Auslesen der Trade-ID aus einem (neu eröffneten) Trade?

Eigentlich müsste es ja mit OrderGetTicket gehen. OrderGetTicket() wird hier erklärt:

https://www.mql5.com/de/docs/trading/ordergetticket

Allerdings ist das Auslesen der Ticket-ID dort auch nur wieder über die Pos möglich. Demnach wäre, wie man es auch immer dreht und wendet, die Order-ID gar nicht der eigentliche identifier, sondern immer die Pos. Tu mir mit dieser Vorstellung ein bisschen schwer, weil ja die Pos. sich ja während der Laufzeit ändern kann und somit kein ein-eindeutiger Wert ist.

Oder mache ich irgendwo einen Denkfehler?


---

Bei OrderMagicNumber() steht in der Dokumentation:

https://docs.mql4.com/trading/ordermagicnumber

Allerdings ist mir hier dann unklar, was bitteschön eine "identifying magic number" sein soll, was daran das "magische" ist und wieso man diese magische Nummber zusätzlich zu Trade-ID und Pos benötigt.

---

Bei OrderTicket() ist mir unklar, was der Unterschied zu GetORderTicket() sein soll.

---

Ich freue mich über jeden konstruktiven Hinweis!

Grüße,
LQK