Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Seh ich den Wald vor lauter Bäumen nicht? (http://www.expert-advisor.com/forum/showthread.php?t=3166)

DocRandom 22.08.13 00:07

Seh ich den Wald vor lauter Bäumen nicht?
 
Hallo liebe Community!

Mein Freund schreibt andauernd neue Roboter(EAs), die ich dann testetn darf.
Nun dachte ich mir; ich schreibe auch einen Robot, der mir die History-Daten der Roboter ausgibt. Im großen und ganzen würde das Teil auch funktionieren, jedoch gibt er mir keine negativen Trades und keine negativen Schlußkurse aus.

hier nun der kleine Code-Teil, der das ganze ausrechnen soll:
Code:


double gesamt = 0.0;
int minus = 0;
int plus = 0;
int trades = 0;
int i, hst = OrdersHistoryTotal();
for(i = 0; i < hst; i++)
{
  if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY))
  {
    if(StringFind( OrderComment(), Roboter, 0) > -1)
    {
      trades++;
      double clp = OrderClosePrice();
      if(clp > 0)
      {
        plus++;
      } else {
        minus++;
      }
      gesamt = gesamt + clp;
    }
  }
}
subPrintDetails(trades,gesamt,plus, minus);

Für Eure Hilfe wäre ich sehr dankbar.
Anscheinend bin ich Blind!

lg
DocRandom

traderdoc 22.08.13 08:29

Es gibt keine negativen Schlußkurse!

dave_hofmann 22.08.13 08:40

Hallo,

verwende statt OrderClosePrice mal OrderProfit, dass ist wahrscheinlich was du willst.

Guten Tag

Dave

DocRandom 22.08.13 10:58

@traderdoc ..nunja, da habe ich mich wohl falsch ausgedrückt!

@dave_hofmann
Danke, das war genau das Richtige und jetzt funzt die Sache so wie ich es mir vorstelle!

lg
DocRandom

traderdoc 22.08.13 12:47

Zitat:

Zitat von DocRandom (Beitrag 23261)
@traderdoc ..nunja, da habe ich mich wohl falsch ausgedrückt!

@dave_hofmann
Danke, das war genau das Richtige und jetzt funzt die Sache so wie ich es mir vorstelle!

lg
DocRandom

Nun ja, da hast Du Dich nicht nur falsch ausgedrückt, sondern auch falsch programmiert. Auf der anderen Seite war der Zusammenhang zwischen Deinem Geschriebenen und Programmierten wiederum richtig!, denn Du sprachst vom Schlußkurs und hattest OrderClosePrice() benutzt.

traderdoc

DocRandom 22.08.13 12:57

Wenn ich OrderClosePrice() durch OrderProfit() ersetze, dann funktioniert die Sache wie sie soll!

Also was soll dann daran falsch programmiert sein?
Wenn Du meinst das die 0$ Positionen nicht als positiv gezählt werden, liegt es daran, das ja vorher schon der Spreed bezahlt wurde und somit die Position auch als Negativ anzusehen ist!

lg

traderdoc 22.08.13 18:40

Zitat:

Zitat von DocRandom (Beitrag 23268)
Wenn ich OrderClosePrice() durch OrderProfit() ersetze, dann funktioniert die Sache wie sie soll!

Also was soll dann daran falsch programmiert sein?
Wenn Du meinst das die 0$ Positionen nicht als positiv gezählt werden, liegt es daran, das ja vorher schon der Spreed bezahlt wurde und somit die Position auch als Negativ anzusehen ist!

lg

Um es jetzt mal abzukürzen. Mir ist das völlig wurscht, was Du da nun meintest oder programmiert hattest. Fakt ist, dass OrderClosePrice() eben überhaupt nicht OrderProfit() ist, zumal Du eingangs geschrieben hattest "...und keine negativen Schlußkurse aus."
Und falsch programmiert war es trotzdem, weil eben erstens OrderClosePrice() nicht negativ sein kann und zweitens, selbst wenn dort OrderProfit() gestanden hätte, die Null-Profit-Trades per se nicht als Negativ-Trades anzusehen sind, selbst wenn vorher der Spread "bezahlt" wurde. Denn bei Deiner Betrachtung geht es um den Profit und der wäre in diesem Spezialfall eben 0. Da interessiert es den Fuchs, wie hoch vorher der Spread war.
Und außerdem kann der Trade, der durch OrderProfit() als positiv ausgewiesen wird trotzdem negativ sein, denn der tatsächliche Gewinn oder Verlust, mit dem Du rechnen muß und der auf Deinen Account verbucht wird ist:

OrderProfit() + OrderCommission() + OrderSwap()

traderdoc

dave_hofmann 22.08.13 21:10

Hallo,

ja traderdoc hat völlig recht, danke für die Korrektur.

Guten Abend

Dave


Alle Zeitangaben in WEZ +2. Es ist jetzt 16:31 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum