|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Klasse das läuft einwandfrei
Nun eine neue Frage Wenn ich auch die die Pipsumme auslesen will gibt es eine einfacherer Variante als mit der Subtraktion von OrderClosePrice() und OrderOpenPrice() zu arbeiten?? Blöd ist auch hierbei die unterscheidung zwischen Long und Short Orders... Den Pipwert direkt auslesen geht nicht oder? PipProfit() gibt es leider nicht... LG C$D |
|
|||
------Doppelpost!------
|
|
|||
Meinst Du nun die Pipsumme über alle diese historischen Trades oder nur die Pips des Gewinnes/Verlustes jedes einzelnen Trades?
Prinzipiell ist das doch eine einfache Methode Open - Close bzw. Close - Open zu berechnen! Wo ist das Problem? Du kannst auch vom OrderProfit() ausgehen und mit dem Pipvalue auf die Anzahl Pips zurückrechnen. Da sich aber der PipValue mit der Zeit ändert, würde die erste Methode wählen. traderdoc |
|
|||
Genau die Pipsumme wie im Beispiel der 10 letzten Orders. Wie unterscheide ich dann short und longorders? woher weiss der code wann wird open von close subtrahiert und wann umgekehrt das war noch unklar
|
|
|||
Code:
double summe = 0; //als globale variable int summepips = 0; int m = 1; if (Digits == 3 || Digits == 5) m = 10; if(test) { int pips; double f; double x; int i; for (i = OrdersHistoryTotal() - 1 ; i > OrdersHistoryTotal() - 10; i--) { OrderSelect(i, SELECT_BY_POS, MODE_HISTORY); double point = MarketInfo(OrderSymbol(), MODE_POINT); f = m * point; if (OrderType() == OP_BUY) pips = MathRound((OrderClosePrice() - OrderOpenPrice())/f); if (OrderType() == OP_SELL) pips = MathRound((OrderOpenPrice() - OrderClosePrice())/f); summepips += pips; x = OrderProfit() + OrderSwap() + OrderCommission(); summe += x; Print("summe=", summe); } } Geändert von traderdoc (08.08.13 um 18:10 Uhr) |
|
|||
Danke! Ist das MathRound eine Vorsichtsmaßnahme? Weil normal müsste doch sowieso immer der richtige Ganzzahlige Wert rauskommen wenn f den richtigen Faktor zur Umrechnung hat oder nicht
|
|
|||
Nein. Bei einem 5-Digit-Broker wäre z.B. die Differenz 0,00082. Wird diese nun durch 0,00001 dividiert, erhält man 82, welche in "Wahrheit" aber nur 8,2 Pips sind, deshalb nochmal dividiert durch m = 10 (für eben diesen 5-Digit-Broker).
Und zuletzt wird auf die nächstgelegene Integerzahl gerundet und Du erhältst 8 Pips! traderdoc |
Lesezeichen |
Stichworte |
mql4, programmierung, programmierung metatrader, tradehistory, trades auslesen |
|
|