|
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 |
|
|||
Ok traderdoc, ich dachte nur, dass es vielleicht noch einen anderen Weg gibt. Doch jetzt gebe ich auf und nehme den Weg über die Zeit. Das mit: "Beim Selektieren der historischen Orders ist diese Zeit nun das sog. linke Zeitmaß und die Zeit in der in die Funktion gesprungen wird, das rechte Zeitmaß." verstehe ich nicht, wie du das meinst. Wie sollte der folgende Code aussehen, wenn die Order anhand der closetime selektiert werden sollen?
Code:
bool checkforlosses() { int losses=0; int i; for(i=0; i<OrdersHistoryTotal(); i++) { OrderSelect(i,SELECT_BY_POS,MODE_HISTORY); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; if(OrderProfit()<0) losses++; else losses=0; } if(losses>0) return(true); return(false); } |
|
|||
Mein EA funktioniert jetzt einwandfrei und ich wollte noch bescheid geben, dass der Teilcode jetzt so aussieht:
Code:
void ch() { int C = count1 + count2; //das sind bei mir die beiden counter, der geschlossenen Buy und Sell's double profit = 0; double x; int i; for (i = OrdersHistoryTotal() - 1 ; i > OrdersHistoryTotal() - C-1; i--) { OrderSelect(i, SELECT_BY_POS, MODE_HISTORY); if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; x = OrderProfit(); profit += x; } count1 = 0; count2 = 0; if(profit<0) ordermode = true; } |
|
|||
Der Code funktioniert nur solange einwandfrei, wie die geschlossenen Orders aus insgesamt nur einem Chart stammen. Werden aus mehreren Charts Orders geschlossen, dann stimmt das Zurückzählen mittels C nicht mehr, weil damit eine bestimmte Zahl geschlossener Orders eines! Charts gemeint ist. Stehen aber in der Liste der historischen Orders nun geschlossene Orders mehrerer eben nahezu gleichzeitig geschlossener Orders verschiedener Charts, dann stimmt die Zählerei in der for-Schleife nicht mehr.
traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Falls ich mein EA auf mehreren Charts installiere, dann stell ich unterschiedliche MagicNumbers ein und mal davon abgesehen, dass jeder Chart eine eigene ID hat, müsste der EA doch dann beim Selektieren in der Historie nach den MagicNumbers filtern. Falls das wirklich nicht funktioniert, dann frage ich dich, traderdoc, was kann ich tun, damit es funktioniert?
|
|
|||
Mit den MagicNumbers zu arbeiten ist schon richtig, nur das Runterzählen mittels
der Variablen C steht an der falschen Stelle, denn Du zählst z.Z. C geschlossene Orders, egal ob die zu OrderSymbol() und OrderMagicNumber() passen. D.h. das Zählen der Anzahl Orders bzgl. der Variablen C muß nach der Zeile if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=MagicNumber) continue; stehen! traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
Lesezeichen |
Stichworte |
mql4, profit, profit order, profit überwachen, programmierung, programmierung metatrader, programmierung mql4 |
Themen-Optionen | Thema durchsuchen |
Ansicht | |
|
|