|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Probleme beim Auslesen des Profit
Hallo Zusammen,
ich möchte in meinem EA die Funktion einbauen, dass der Profitfaktor eines bestimmten Symbols und MagicNumber errechnet. Mit dem geposteten Code bekomme ich immer nur 0. Tests mit Alert haben gezeigt, dass es nach der IF Abfrage für OrderSymbol() und OrderMagicnumber nicht weitergeht, also nicht Berechnung von _ProfitLoss und _ProfitWin geht. Anstelle von Symbol() habe ich schon OrderSymbol() genommen. Es macht meiner Meinung nach keinen Sinn, aber die Verzweiflung hat mich dazu getrieben. Auch habe ich die MagicNumber direkt eingegeben (also nicht im Funktionsaufruf übergeben). Leider hat das alles nichts geholfen. Was mache ich falsch? Danke schon mal im Voraus Code:
double EA_ProfitFactor(int MagicNumber, string OrderSymb ) { double _ProfitWin = 0.0; double _ProfitLoss = 0.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) _ProfitLoss = _ProfitLoss + OrderProfit() + OrderSwap() + OrderCommission(); if (OrderProfit() > 0) _ProfitWin = _ProfitWin + + OrderProfit() + OrderSwap() + OrderCommission(); } } } if (_ProfitWin > 0 && _ProfitLoss > 0 ) return(_ProfitWin / _ProfitLoss); else return (0); } |
|
|||
Na ja, bei
if (_ProfitWin > 0 && _ProfitLoss > 0 ) return(_ProfitWin / _ProfitLoss); else return (0); wird immer 0 zurückgegeben, weil _ProfitLoss sicherlich nicht!! > 0, sondern < 0 sein wird. Damit wird die o.g. Abfrage immer false, also return(0); Es müsste also lauten: if (_ProfitWin > 0 && _ProfitLoss < 0 ) return(_ProfitWin / MathAbs(_ProfitLoss)); else return (0); traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Hallo Traderdoc,
danke für den Hinweis. Das ist natürlich Blödsinn, was ich da geschrieben habe. Auf der anderen Seite habe ich auch Ausgaben bei der Addition von _ProfitLoss und _ProfitWin gemacht. In diese Berechnungen kam er nie rein. Habe also nicht nur den return ausgewertet. Stimmt denn sonst der Source Code so? Danke und gute Nacht. Thomas |
Lesezeichen |
Stichworte |
mql4, profit, profit auslesen, programmierung, programmierung metatrader, programmierung mql4 |
|
|