|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Anfängerfrage zu OrderSelect und MagicNumber
Hi,
nachdem ich nun schon eine Weile gesucht habe mal eine, glaube ich einfache Frage. Ich möchte immer am Vorwochenhoch eine Order in den Markt legen. Das bekomme ich auch hin, leider legt mein EA diese Order nun bei jedem TICK neu in den Markt. Also dachte ich mir, ich setze eine IF Abfrage davor wenn schon eine Order mit meiner MagicNumber existiert dann soll mein EA keine neue Order senden. Die Funktion OrderSelect() bietet mir aber nicht die Möglichkeit nach einer Magic Number zu selektieren sondern nur nach TicketNummer oder Position. Die Position kenne ich nicht und die Ticketnummer will ich eigentlich nicht speichern da für mich ja nur die MagicNumber aussagekräftig ist. Jetzt meine Frage habe ich die Funktion OrderSelect() richtig verstanden? Das würde bedeuten das ich mir die Ticket Nummer merken müßte oder? Danke schon einmal! |
|
|||
Du musst zunächst alle offenen Orders mit einer for-Schleife durchlaufen
und dabei mit if prüfen, ob eine "passende" dabei ist, i.d.R. indem Du die MagicNumber abfragst. Anhand dessen wird entschieden, ob eine Order geöffnet wird. Hier einige Code-Fragmente, wie das meistens gemacht wird: bool SchonEineOrderGeoeffnet = false; for(int zaehler=0;zaehler<OrdersTotal();zaehler++) { OrderSelect(zaehler,SELECT_BY_POS,MODE_TRADES); if(OrderType() == OP_BUY && OrderMagicNumber() == MagicNummer) SchonEineOrderGeoeffnet = true; else if(OrderType()== OP_SELL && OrderMagicNumber() == MagicNummer) SchonEineOrderGeoeffnet = true; } if(SchonEineOrderGeoeffnet == false) { Funktion, die dann eine Order öffnet. } |
|
|||
Danke für deine schnelle Antwort. Erscheint mir sehr umständlich aber wenn der MT4 das nur so her gibt dann machen wir das so.
Na ich werd mir das in eine kleine Unterfunktion packen.... Gruß Ich habs mal so umgesetzt: Code:
bool MagicNumberOpen(int MagicNumber) { for(int zaehler=0;zaehler<OrdersTotal();zaehler++) { OrderSelect(zaehler,SELECT_BY_POS,MODE_TRADES); if(OrderMagicNumber() == MagicNumber) return true; else return false; } return false; } Geändert von bigborre (23.03.17 um 17:57 Uhr) |
Lesezeichen |
Stichworte |
magic, magicnumber, mql4, number, orderselect, programmierung, programmierung metatrader, programmierung mql4 |
|
|