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: 4082
Beiträge: 38596
Benutzer: 6.375
Aktive Benutzer: 230
Links: 80
Wir begrüßen unseren neuesten Benutzer: pari13
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 18:12).
Neue Benutzer:
vor einem Tag
- pari13
vor 2 Tagen
- MadMax321
vor 2 Tagen
- Slumtrader
vor 4 Tagen
- Dario
vor einer Woche
- Redline

Onlineuser
'Wer ist online' anzeigen Benutzer: 1
Gäste: 60
Gesamt: 61
Team: 0
Team:  
Benutzer:  Domke01
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: 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);
}
  #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
  #13 (permalink)  
Alt 16.11.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.120
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: 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?
  #15 (permalink)  
Alt 17.11.17
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 2.120
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 15:56 Uhr.


Der Wavesnode - Spam Firewall
-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2018 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.
-----------------------------------------------------------------------------------------------------------------------------