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: 3359
Beiträge: 33848
Benutzer: 5.342
Aktive Benutzer: 599
Links: 79
Wir begrüßen unseren neuesten Benutzer: maxi
Mit 483 Benutzern waren die meisten Benutzer gleichzeitig online (21.04.16 um 17:12).
Neue Benutzer:
vor 5 Stunden
- maxi
vor 20 Stunden
- athaclena
vor einem Tag
- Naale
vor einem Tag
- csabi911
vor einem Tag
- Adlerflüge...

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 35
Gesamt: 38
Team: 0
Team:  
Benutzer:  fxnoob, Naale, SentiTrader
Freunde anzeigen

Empfehlungen

Werbung

Antwort
 
Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 46
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard OrderProfit in Punkten

Hallo allerseits,

im Metatrader kann man sich den momentanen Gewinn einer offenen Position auch in Punkten statt in der Kontowährung anzeigen lassen.
Mit welchem Befehl bekomme ich den momentanen Gewinn einer offenen Position in Form von Punkten in meinem EA?

OrderProfit() gibt nur den Gewinn in der Kontowährung aus...
Mit Zitat antworten
  #2 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Mar 2016
Beiträge: 39
SusanneH befindet sich auf einem aufstrebenden Ast
Standard

einfach ausrechnen? Ask-OrderOpenPrice() bzw. OrderOpenPrice()-Bid
Mit Zitat antworten
  #3 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 46
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Hallo Susanne,

ja, das werde ich dann wohl so machen, wenn niemand einen direkten Befehl kennt, dann wird es den wohl auch nicht geben... ;-)

Ich danke Dir!
Mit Zitat antworten
  #4 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.518
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Nein, einen direkten Befehl oder Funktion gibt es dafür nicht. Und wenn Du mit Punkten Pips meinst, dann wäre das ein Weg zum Ziel.

M = 1;
if (Digits == 3 || Digits == 5) M = 10;

Nach OrderSelect():

if (OrderType() == OP_BUY) {
OrderProfitPips = (Ask - OrderOpenPrice())/Point/M;
}
if (OrderType() == OP_SELL) {
OrderProfitPips = (OrderOpenPrice() - Bid)/Point/M;
}

Man könnte nun oben auch M und Point noch zusammenfassen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #5 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 46
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Danke Doc.

ich habe mir es jetzt schon so zurechtgebastelt:

PHP-Code:
   double Profit                       OrderProfit();
   
double Tickvalue MarketInfo(Symbol(), MODE_TICKVALUE);
   
int Profit_Punkte;

   
Profit_Punkte Profit 100 Tickvalue
Ist für einen 5-stelligen Broker.
Mit Zitat antworten
  #6 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.518
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Wie kommst Du denn darauf?

Profit_Punkte = Profit * 100 / Tickvalue;

Mal ein praktisches Beispiel am EURUSD:

Profit_Punkte = 10 * 100 / 1;

Das würden 1000 Punkte ergeben???

Anhand des DE30Cash:

Profit_Punkte = 10 * 100 / 0,01;

Das würden 100000 Punkte ergeben.

Das ist eine Erklärung wert.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #7 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 46
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

ups, hatte noch vergessen, die Lotgrösse mit zu berücksichtigen. Mein Beispiel war von 0.01 Lots ausgegangen.
so gehts:

PHP-Code:
   double Profit                       OrderProfit();
   
double Lots                         OrderLots();
   
double Tickvalue MarketInfo(Symbol(), MODE_TICKVALUE);
   
int Profit_Punkte;

   
Profit_Punkte Profit Lots Tickvalue
Ich habe es so gelöst, weil ich in meinem Fall den Gewinn in Punkten einer geschlossenen Position brauche, deshalb konnte ich hier mit nicht mit Bid und Ask arbeiten...

@doc:

1000 Punkte im EURUSD entspricht 100 Pips bzw. 1 Cent.
Die Rechnung stimmt.

Im DE30Cash kann man es so nicht machen.
Mit Zitat antworten
  #8 (permalink)  
Alt vor 3 Wochen
Premium Mitglied
 
Registriert seit: Sep 2015
Beiträge: 407
MA-EA befindet sich auf einem aufstrebenden Ast
Standard

In der Order-Liste rechte Maustauste > Gewinn > in Punkten

so ungefähr jedenfalls.
Mit Zitat antworten
  #9 (permalink)  
Alt vor 3 Wochen
Elite Mitglied
 
Registriert seit: Apr 2011
Beiträge: 1.518
traderdoc befindet sich auf einem aufstrebenden Ast
Standard

Ok, dann lass uns mal rechnen anhand des EURUSD:

Profit_Punkte = Profit / Lots / Tickvalue;

Profit_Punkte = 10 / 1 / 1;

Da ergäbe jetzt 10. Und nun kommt die entscheidende Frage, was ist ein Punkt bei Dir?

Warum sollte man bei der Berechnung der Punkte oder Pips nicht mit Ask und Bid rechnen können. Das mache ich seit 10 Jahren.

Aber die entscheidende Frage ist wirklich, was verstehst Du unter einem Punkt, dessen Begriff es im Forexmarkt so eigentlich nicht gibt, sondern da wird von Pips gesprochen.

traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis.
Mit Zitat antworten
  #10 (permalink)  
Alt vor 3 Wochen
Mitglied
 
Registriert seit: Nov 2015
Beiträge: 46
Adlerauge befindet sich auf einem aufstrebenden Ast
Standard

Nun, ich habe keine persönliche Definition für Punkt, sondern nehme das, was der MT4 anzeigt:
wenn Du im Terminal nach einem Klick auf die rechte Maustaste auf Gewinn gehst und "in Punkten" auswählst, dann zeigt er Dir Deine laufenden Positionen in Punkten an. Und dann siehst Du, dass ein Cent 1000 Punkte sind, wenn Dein Broker 5-stellig ist (was ja nun mittlerweile Standard ist)

Demnach sind 10 Punkte ein Pip.

Wer hat's erfunden? Nicht die Schweizer und auch ich nicht..)))

...noch zur Rechnung:

10 / 1 / 1 = 10
das bedeutet, dass eine Position von einem Lot 10 Punkte (1 Pip) weit laufen muss, um 10 Euro Gewinn zu machen.

mit Bid bzw. Ask den Gewinn einer BEREITS GESCHLOSSENEN Position ermitteln? Wie geht das?
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
gewinn, gewinn befehl, mql4, orderprofit, programmierung, programmierung metatrader, programmierung mql4, punkte


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:14 Uhr.



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