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: 37296
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 14 Stunden
- Spitzmaus
vor 17 Stunden
- juleslesqu...
vor einem Tag
- hmf44
vor einem Tag
- Crossa
vor 2 Tagen
- snatshit

Onlineuser
'Wer ist online' anzeigen Benutzer: 2
Gäste: 58
Gesamt: 60
Team: 0
Team:  
Benutzer:  Domke01, ForexMax
Freunde anzeigen

Empfehlungen

Werbung

Thema geschlossen
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 13.12.11
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard Gewinn prüfen

Gibt es einen Befehl bei dem der EA prüft ob eine Trade im Gewinn oder im Verlust ist?
Ich möchte eine Aktion ausführen, aber nur wenn der Trade im Gewinn ist.

Gruß
Enrico
  #2 (permalink)  
Alt 13.12.11
Gesperrter Benutzer
 
Registriert seit: Sep 2011
Ort: Kassel
Beiträge: 749
JoeDormann befindet sich auf einem aufstrebenden Ast
JoeDormann eine Nachricht über Skype™ schicken
Standard

Zitat:
Zitat von enni01 Beitrag anzeigen
Gibt es einen Befehl bei dem der EA prüft ob eine Trade im Gewinn oder im Verlust ist?
Ich möchte eine Aktion ausführen, aber nur wenn der Trade im Gewinn ist.

Gruß
Enrico
Gibt es.
Position öffnen und die Methoden für Kosten und Gewinn aufrufen. Addieren und sehn was übrig bleibt

Noch einfacher ist es einfach festzustellen, ob das Equity größer als die Balance ist.

Gruß Joe
  #3 (permalink)  
Alt 14.12.11
Mitglied
 
Registriert seit: Jun 2011
Ort: Minsk, Weißrussland
Beiträge: 48
Bobs befindet sich auf einem aufstrebenden Ast
Bobs eine Nachricht über Skype™ schicken
Standard Gewinn prüfen

OrderProfit(); AccountProfit();
  #4 (permalink)  
Alt 14.12.11
Neues Mitglied
 
Registriert seit: Oct 2011
Beiträge: 13
enni01 befindet sich auf einem aufstrebenden Ast
Standard

Danke
mal schauen ob ich was damit anfangen kann.
  #5 (permalink)  
Alt 14.12.11
Mitglied
 
Registriert seit: Dec 2009
Beiträge: 96
Programmierer befindet sich auf einem aufstrebenden Ast
Standard

wenn man den G/V einer einzelnen Position überprüfen möchte, muss man sie zuerst per OrderSelect(..) selektieren und dann ein paar Werte addieren, OrderProfit() reicht für eine korrekte Berechnung nicht.

Hier meine Methode für die Berechnung:

double profit = (OrderProfit() + OrderSwap() + OrderCommission());
  #6 (permalink)  
Alt 15.12.11
Gesperrter Benutzer
 
Registriert seit: Sep 2011
Ort: Kassel
Beiträge: 749
JoeDormann befindet sich auf einem aufstrebenden Ast
JoeDormann eine Nachricht über Skype™ schicken
Standard

Genauso gehts
Das ganze in eine Schleife für alle Positionen und fertig.
  #7 (permalink)  
Alt 17.12.11
Neues Mitglied
 
Registriert seit: Sep 2011
Beiträge: 2
forex2006 befindet sich auf einem aufstrebenden Ast
Standard

hallo leute

ich bin leider anfänger beim MT4 programmieren und hätte da mal eine frage an die spezialisten weils zu diesem thema passt - ich hab da tage rumgemurckst und ich denke das ich wieder ein wenig zu kompliziert denke als es ist.......ein rätsel ist mir auch wann verwende ich eine variable im globalen, im start() oder im init() bereich - vielleicht liegt da der fehler??

ziel wäre grundsätzlich: montag 0 uhr zähler auf NULL setzen , alle gewinne bis einschließlich freitag 0 uhr aufaddieren und am montag wieder auf 0 setzen usw.

ich hab vor einigen tagen versucht einen "laufenden" einen "täglichen" und "wöchentlichen" gewinn zu ermitteln jedoch ist mir das nur bei dem "laufenden" und "täglichen" gelungen , jedoch wöchentlich geht das nicht .....hat jemand eine idee - hilfe oder tips wäre super...

so wie in meinem beispiel unten kommt jedenfalls schrott raus und da hab ich schon sehr viele möglichkeiten probiert.....

bei mir sieht das etwas so aus:

for(int j=0; j<totalorders;j++)
{ if(OrderSelect(j, SELECT_BY_POS, MODE_HISTORY) && (OrderMagicNumber()==MagicNumber))
{
if(OrderType()==OP_BUY) {HistAnzBuys++ ;HistBuyProfit +=OrderProfit();}
if(OrderType()==OP_SELL){HistAnzSells++;HistSellPr ofit+=OrderProfit();}

if(TimeDay(OrderCloseTime())==Day())
{
if(OrderType()==OP_BUY) {DailyHistAnzBuys++ ;DailyHistBuyProfit +=OrderProfit();}
if(OrderType()==OP_SELL){DailyHistAnzSells++;Daily HistSellProfit+=OrderProfit();}
}
if(TimeDayOfWeek(OrderCloseTime())==DayOfWeek())
if(DayOfWeek()>=1 && DayOfWeek()<=5)
{
if(DayOfWeek()==1 && Hour()==0 && Minute()==1){WeeklyHistAnzBuys=0;WeeklyHistAnzSell s=0;WeeklyHistBuyProfit=0.0;WeeklyHistSellProfit=0 .0;}
else

if(OrderType()==OP_BUY) {WeeklyHistAnzBuys++ ;WeeklyHistBuyProfit +=OrderProfit();}
if(OrderType()==OP_SELL){WeeklyHistAnzSells++;Week lyHistSellProfit+=OrderProfit();}
}


für hilfe wäre ich sehr dankbar

vielen dank

  #8 (permalink)  
Alt 19.12.11
Mitglied
 
Registriert seit: Dec 2009
Beiträge: 96
Programmierer befindet sich auf einem aufstrebenden Ast
Standard

Hi,

grundsätzlich bist du mit solchen Fragen hier im Forum richtig. M.E. würde das Problem auch locker zu nem eigenen Thread taugen, aber verschieben kann ichs ja nicht

Also deiner Herangehensweise ist nicht gerade die direkteste. Wenn ich dich recht verstehe, willst du doch einfach nur die Gewinne der aktuellen Woche zusammenrechnen, oder? Das kannst du machen, indem du nur die Orders einbeziehst, die nach dem letzten Sonntag geschlossen wurden. Erster Schritt ist also, das Datum für den letzten Sonntag zu finden. Dann G/V aller folgenden Orders addieren.

Ich weiß nicht, ob es der Fehler ist, den du suchst: aber nach dem letzten "else" solltest du mal schauen: Das else führt das folgende If-Statement aus, das direkt darunter aber nicht! Die leere Zeile, die du nach dem else gelassen hast, wird vom Compiler ignoriert!
Thema geschlossen

Lesezeichen

Stichworte
befehle, mql4, programmierung


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 11:27 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.
-----------------------------------------------------------------------------------------------------------------------------