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.

Login
Benutzername:
Kennwort:


Statistik
Themen: 4978
Beiträge: 43276
Benutzer: 7.223
Aktive Benutzer: 73
Links: 84
Wir begrüßen unseren neuesten Benutzer: Mane
Mit 2.475 Benutzern waren die meisten Benutzer gleichzeitig online (16.01.20 um 22:38).
Neue Benutzer:
vor 21 Stunden
- Mane
vor 2 Wochen
- AlbertZiz
vor 2 Wochen
- michak
vor 2 Wochen
- Amateur
vor 2 Wochen
- infos1982

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 154
Gesamt: 155
Team: 0
Team:  
Benutzer:  TraumExpert
Freunde anzeigen

Empfehlungen

Like Tree1Likes
Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #11 (permalink)  
Alt 07.11.17
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 27
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);
}
  #12 (permalink)  
Alt 09.11.17
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 27
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
  #13 (permalink)  
Alt 16.11.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
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.
  #14 (permalink)  
Alt 17.11.17
Neues Mitglied
 
Registriert seit: Feb 2017
Beiträge: 27
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?
  #15 (permalink)  
Alt 17.11.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.735
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
Lampe likes this.
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Thema geschlossen

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 +2. Es ist jetzt 07:29 Uhr.





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