Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.


Portalsuche


Werbung

Login
Benutzername:
Kennwort:


Statistik
Themen: 3824
Beiträge: 36909
Benutzer: 6.076
Aktive Benutzer: 496
Links: 80
Wir begrüßen unseren neuesten Benutzer: Spitzmaus
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 18 Stunden
- Spitzmaus
vor 21 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor 2 Tagen
- Crossa
vor 2 Tagen
- snatshit

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 80
Gesamt: 82
Team: 0
Team:  
Benutzer:  Domke01, juleslesquet
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 07.11.17
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 21
Elfenstein befindet sich auf einem aufstrebenden Ast
Standard

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);
}
Mit Zitat antworten
  #12 (permalink)  
Alt 09.11.17
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 21
Elfenstein befindet sich auf einem aufstrebenden Ast
Standard

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;
}
@RetepM, das hat mir zwar nicht direkt geholfen, doch auf meinen Lösungsweg hat es mich beeinflusst
Mit Zitat antworten
  #13 (permalink)  
Alt vor 4 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
  #14 (permalink)  
Alt vor 4 Wochen
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 21
Elfenstein befindet sich auf einem aufstrebenden Ast
Standard

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 Zitat antworten
  #15 (permalink)  
Alt vor 4 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.875
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

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.
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
mql4, profit, profit order, profit überwachen, programmierung, programmierung metatrader, programmierung mql4


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are aus
Pingbacks are aus
Refbacks are aus




Alle Zeitangaben in WEZ +1. Es ist jetzt 15:24 Uhr.



Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2017 vbdesigns.de
SEO by vBSEO 3.6.1
Copyright ©2009 - 2017 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------