|
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 |
|
|||
Die letzten Verlustorders zusammen zählen
Hallo,
ich möchte was ausprobieren und einem Verlust mit grösseren Lots entgegenwirken. Nun es müsste zuerst der Verlust bestimmt werden. Die Idee: die letzten aufeinander folgenden Verluste zusammen zu zählen. Entsprechend bei Gewinn soll abgebrochen werden und Verlust (falls welcher vorkam) zurückgegeben werden. Dazu habe ich ein Beispiel Code hier aus Forum etwas modifiziert. Ich kenne mich nicht so richtig mit "return" und "break" aus und hoffe, dass ich die richtig (entsprechend der Logik)eingesetzt habe. Wäre dankbar für Vorschläge und Anregungen. PHP-Code:
|
|
|||
Soweit im Prinzip richtig, noch ein paar Feinheiten dazugeproggt.
Code:
double ClosedLooses() { double x; double summe = 0; for (int i = OrdersHistoryTotal() - 1; i >= 0; i--) { if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) { if (OrderSymbol() == Symbol && OrderMagicNumber() == MagicNumber) { if (OrderProfit() < 0) { x = OrderProfit() + OrderSwap() + OrderCommission(); summe += x; Print("summe = ", summe); } else break; } } } summe = MathAbs(summe); return(summe); } Warum nur die letzten 10 Orders nach i > OrdersHistoryTotal() - 10? Ob die zusätzliche Zeile mit der Abfrage nach dem OrderSymbol() (und ggf. mit der OrderMagicNumber()) notwendig ist, liegt in Deiner Entscheidung. Mit dieser Zeile werden eben nur die Orders zu einen bestimmten WP genommen (und ggf. sogar eines WP mit ausgewählter MagicNumber!). Die entscheidende Stelle ist jedoch die Zeile mit dem break, denn richtigerweise von Dir bereits geproggt, soll ja die Aufsummierung sofort unterbrochen werden, wenn eine Order mit OrderProfit() >= 0 ist. Man hätte auch formulieren können: if (OrderProfit() + OrderSwap() + OrderCommission() < 0) denn im Endeffekt belastet auch ggf. der Swap und auf alle Fälle die Commission das Konto. traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Danke für ";"
Zitat:
OrderSymbol() und OrderMagicNumber() nutze ich nicht, da ich sonst nichts laufen habe. Zitat:
|
|
|||
OrdersHistoryTotal() gibt Dir nur die Anzahl von Orders an, die auch im Metatrader im Terminal unter Kontohistory angezeigt werden, und nicht die gesamte History (es sei denn, Du hast dort unter "Zeitraum auswählen" die gesamte History ausgewählt.
Wenn Du dort z.B. "heute" auswählst, und heute noch keine Order geschlossen hast, gibt Dir OrdersHistoryTotal() als Wert 0 zurück. Man braucht also die Abfrage nicht begrenzen mit der Befürchtung, dass tausende von alten Orders durchgezählt werden. |
Lesezeichen |
Stichworte |
mql4, order verluste zählen, programmierung, programmierung metatrader, programmierung mql4, verluste addieren, verluste order, verluste zählen |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|