|
Startseite | Registrieren | Hilfe | Benutzerliste | Kalender | Suchen | Heutige Beiträge | Alle Foren als gelesen markieren |
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
höchste/größte Lotgröße bei offenen Trades auslesen
Hallo Zusammen
ich möchte gerne unter den geöffneten Trades den T/P vom Trade mit der größten Lotgröße auslesen und bekomme es nicht hin. Der Trade mit der größsten Lotgröße ist auch der letzte geöffnete Trade, es wird immer ein Trade gesetzt mit einer größeren Lotgröße, daher ist auch immer der letzte Trade der Trade mit der größsten Lotgröße. Man könnte also auch den T/P von letzten geöffneten Trade auslesen, wie auch immer, ich bekomme es nicht hin. Die Daten vom dem gesuchten Trade sollen als BasisDaten gelten. Ich habe es versucht folgendermaßen zu machen: // erst die letzte geöffnete aktive-orderNR(ticketnr) abfragen, um diese als BASISORDER festzulegen // erst NUR Buy-Trades prüfen if(OrdersTotal()>0) { int x = 100; // durch x kann die schleife beendet werden for (int i = OrdersTotal() - 1 ; i > OrdersTotal() - x; i--) { // evtl. MODE_TRADES OrderSelect(i, SELECT_BY_POS, MODE_TRADES); if ( OrderMagicNumber() == MagicNumber ) // nur meine MagicNumber { if ( OrderType() == OP_BUY ) // nur OP_BUY { // Print("BasisOrderRauf: ",OrderTicket()); int BasisOrderRauf = OrderTicket(); if ( OrderTakeProfit() == 0 ) // nur wenn TP =0 { double BasisOrderRauf_TP = OrderOpenPrice() + (Point * 10); }else{ BasisOrderRauf_TP = OrderTakeProfit(); } x = 2; } } } } // ENDE if ( OrderMagicNumber() == Ma // ENDE erst die letzte geöffnete aktive-orderNR(ticketnr) abfragen, um diese als BASISORDER festzulegen Durch die Änderung von X = 100 auf X = 2 wird NUR der letzte Trade ausgelesen, da die Schleife sofort stoppt, wenn es einen Trade gibt mit entspechender Magicnummer. Es hat schon so funktioniert, aber auf einmal bekomme ich nicht mehr den Wert den ich benötige, sondern einen anderen Wert, vermutlich eines Trades der davor geöffnet wurde. Kann es sein das mein Script so wie es jetzt ist, davon beeinträchtigt wird, wie die Sortierung der Anzeige bei meinem geöffneten MT4 ist. z.B. entweder ORDER aufwärts oder ORDER abwärts? Bekomme ich dadurch den falschen Wert? Daher denke ich, es wäre doch besser gleich nach dem Trade mit der größsten Lotgröße zu suchen, oder? Aber das bekomme ich nicht hin, denn dann müsste ich doch per Array suchen, oder? Kann mir da einer von Euch helfen? Da stehe ich echt im Wald.... Bin Euch sehr dankbar für eine schnelle Hilfe. Danke |
|
|||
War wohl zu viel Info
Hallo nochmal
ich habe mich beim Öffnen des Themas nicht sauber genugt ausgedrückt glaube ich, wahrscheinlich habe ich zu viel gelabert daher versuche ich es nochmal mit einfachen Worten: Wer kann mir helfen und einen kurzen Codeschnipsel für folgendes Problem posten? Beispiel: Es sind NUR BuyTrades geöffnet mit verschiedenen Lotgrößen. Die Anzahl der Trades kann varieren. Frage: Wie kann man jetzt den Trade mit der größsten/höchsten Lotgröße rausbekommen? Sorry, aber machmal drücke ich mich einfach zu kompliziert aus Und, weiß jetzt einer von Euch wie ich es machen kann? |
|
|||
Zitat:
Zitat:
Folgender Code findet die BUY-Order mit dem größten Lot incl. Ticket und TakeProfit: Code:
double LotSize = 0; double TP; int Ticket; for(int i = OrdersTotal() - 1; i >= 0; i--) { if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) { if (OrderType() == OP_BUY && OrderSymbol() == Symbol()) { if (OrderLots() > LotSize) { LotSize = OrderLots(); Ticket = OrderTicket(); TP = OrderTakeProfit(); } } } } Print ("Order Ticket: ", Ticket, ", Lot Größe: ", LotSize, ", Take Profit: ", TP); |
Lesezeichen |
Stichworte |
höchste lotgröße, mql4, programmierung, programmierung metatrader, programmierung mql4, trades, trades auslesen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|