|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Definieren der Magic Number
Guten Abend,
ich bin Thomas und programmiere seit einer Woche an meinem EA. Ich bin 22 Jahre alt komme aus Bayern, habe keine Programmierkenntnisse, handel seit 4 Jahren an der Börse und habe mir bis jetzt alle selbst beigebracht. Ich bin neu hier Zu meiner Frage: ich möchte gerne eine Position schließen nachdem eine gewissen Bedingung erfüllt ist. Dies wollte ich mit dem Befehl "OrderClose" lösen. Allerdings möchte der Befehl eine "Order_ID", wie definiere ich diese? Hat doch irgendwas mit der Magic Number auf sich oder? PHP-Code:
|
|
|||
"void" dient nur dazu, Nachrichten auszugeben.
Lern erst mal die Grundlagen. |
|
|||
Mit void rufe ich meine vorher definierte Funktion auf.
|
|
|||
void bedeutet nur, dass diese Funktion keinen Rückgabewert liefert.
Code:
void MyFunction() { // Diese Funktion macht was (in diesm Fall nichts) :D // und liefert auch keinen Wert zurück } Viel Erfolg wünscht der OPA-Trader |
|
|||
Zitat:
|
|
|||
Der Inhalt des ersten Satzes ist grottenfalsch.
Der Inhalt des zweiten Satzes, gerade von Dir geschrieben, ist an Komik nicht mehr zu überbieten. Wobei mit Komik die Tragik eigentlich gar nicht richtig trifft. Da schreibt der lernresistendende User, er solle erst mal die Grundlagen lernen. Ich kippe vor Lachen jetzt wirklich fast hinten über. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Danke für die Antworten.
Dann wäre das ja mit void geklärt. Wusste ich aber ja schon. Wie siehts jetzt aus mit der Magic Number Definiton? Ich kenn die Beispiele schon aber ich verstehe die einfach nicht. Die schreiben immer irgendwas von Index... https://www.mql5.com/de/articles/1359 PHP-Code:
|
|
|||
Wenn du eine Order erstellst, codierst du doch etwa sowas:
Ticketnummer = OrderSend(Symbol,OP_BUY, Lots,Ask, SlipPips,0,0, "Kauf-Order", MagicNumber,0,Green); Wenn's geklappt hast, dann hast du die Nummer der Order in Ticketnummer Diese gibst du beim Schliessen der Order wieder an. Die MagicNumber spielt beim Close keine Rolle. Etwa so: Geschlossen = OrderClose(Ticketnummer, Lots, Ausstiegspreis, SlipPips, Red); Gruss Erwin |
|
|||
Zitat:
Vielen Dank! =) |
|
|||
Zitat:
Eine Möglichkeit wäre (hängt immer von den Erfordernissen ab!) Code:
int BuyTicketNumber = 0, SellTicketNumber = 0; double BuyLot, SellLot; void CheckOrders() { for (int i = 0; i < OrdersTotal(); i++) { if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic_Number) { if (OrderType() == OP_BUY) { BuyTicketNumber = OrderTicket(); BuyLot = OrderLots(); } if (OrderType() == OP_SELL) { SellTicketNumber = OrderTicket(); SellLot = OrderLots(); } } } } } Aber auch dieser Code wird nur zuverlässig funktionieren, wenn maximal eine BuyOrder und/oder eine SellOrder dieses Währungspaares existiert, weil die weiteren Orders die Werte überschreiben würden. Die erhaltene TicketNumber wird dann eingesetzt in die Close-Funktion. Die Slippage ist ein Wert in Pips, der die tolerierbare Abweichung des tatsächlichen Ausführungskurses von den CloseKursen Bid bzw. Ask angibt. Als erstes einfach mal z.B. eine 2 einsetzen. Bei einem 5-Digit-Broker entsprechend eine 20. Red ist die Farbe des grafischen Close-Dreiecks im Chart. Code:
if (BuyTicketNumber > 0) OrderClose(BuyTicketNumber, BuyLot, Bid, Slippage, Red); if (SellTicketNumber > 0) OrderClose(SellTicketNumber, SellLot, Ask, Slippage, Red); traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
magic number, magic nummer, magicid, mql4, programmierung, programmierung metatrader |
|
|