Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Allroundformel für StopLossBetrag (http://www.expert-advisor.com/forum/showthread.php?t=4628)

GoS 08.12.15 17:30

@traderdoc Ich möchte keinesfalls streiten und ich werde sicherlich nicht auf falsche Tatsachen bestehen, sollte ich mich irren, aber ich erinnere mich gut, dass ich mit meiner SL-Berechnung ständig nicht ganz richtig lag; im Sinne von: Wo muss der SL hin, damit ich bei Exit einen Gewinn von (zum Beispiel) 103,77 € habe.

Ich bin ehrlich; es wäre nicht das erste Mal, das ich einen saublöden Fehler irgendwo im Code gemacht habe :D

Ich hab das Thema dann beiseite gelegt und kümmere mich darum, wenn ich mal weniger zu tun habe.

GoS 08.12.15 17:39

Zitat:

Zitat von Raul0 (Beitrag 32078)
Bei FXCM wurde das als Future angegeben und hat kein TICKVALUE. Bei ActivTrades erhalte ich einen falschen Wert.

Kommt mir so vor, als würden die Broker ihre DemoServer ein wenig stiefmütterlich behandeln: siehe Hier... Am LiveServer ist dieser Fehler nicht.

Simpel 08.12.15 17:56

Ich weiß nicht, ob ich die ganze Angelegenheit richtig verfolgt habe.
Ich kann bei mir eine Linie platzieren, die den an dieser Stelle gültigen EUR-Wert anzeigt.
Egal wie viele Order auf dem Währungspaar offen sind und ob das long, short beides beinhaltet. Durch Verschieben der Linie ändert sich entsprechend der Wert.
Meinst Du so etwas?

Raul0 08.12.15 20:14

Zitat:

Zitat von Simpel (Beitrag 32099)
Ich weiß nicht, ob ich die ganze Angelegenheit richtig verfolgt habe.
Ich kann bei mir eine Linie platzieren, die den an dieser Stelle gültigen EUR-Wert anzeigt.
Egal wie viele Order auf dem Währungspaar offen sind und ob das long, short beides beinhaltet. Durch Verschieben der Linie ändert sich entsprechend der Wert.
Meinst Du so etwas?

Es geht gerade nur um einen EA, nicht um die Order im MT4.


Prinzipiell habe ich das jetzt über ein Switch gelöst und es stellt sich für Wert und Broker selbst das richtige Setup ein.

traderdoc 08.12.15 21:15

@GoS, hast Du es nun mal am EURUSD und einen $-Account überprüft?
Dann wirst Du sehen, dass der Tickvalue immer 10 oder 1 ist, je nach Brokertyp.
Wie bereits gesagt, stimmt die Accountwährung nicht mit der Währung im Nenner des Paares überein, dass ist der Währungsbetrag des SL oder auch TP immer vom schwankenden Tickvalue abhängig, aber dafür gibt es ja auch im MQL4 die Abfrage dafür mittels MarketInfo(Symbol(), MODE_TICKVALUE).
Das ist aber auch klar und logisch.

traderdoc

traderdoc 08.12.15 21:17

Zitat:

Zitat von Raul0 (Beitrag 32100)
Es geht gerade nur um einen EA, nicht um die Order im MT4.
Prinzipiell habe ich das jetzt über ein Switch gelöst und es stellt sich für Wert und Broker selbst das richtige Setup ein.

Was meinst Du denn mit "Switch" und was für ein Setup stellt sich selbst ein?

traderdoc

Raul0 09.12.15 00:09

Mit Setup, dass es zusätzlich für Dax funktioniert. Geprüft habe ich jetzt Dax bei 2 Brokern, Gold und 3 bzw. 5 Digits Währungspaare.

Angedacht war es mit dem Operator 'switch' zu arbeiten, im Moment tut es so sein Dienst.

So ist es Aufgebaut:

PHP-Code:

void StopLossinBetrag()
{
   
double BaseLot 0.01;
   
double StopLoss 50.0;
   
int bm 1;

   if( 
MarketInfo(Symbol(),MODE_DIGITS) == || bm 10;
   if( 
MarketInfo(Symbol(),MODE_DIGITS) == )      bm 100;
   if( 
MarketInfo(Symbol(),MODE_DIGITS) == )      bm 10;

   if( 
StopLoss StopLoss StopLoss bm Point;

   
double WertProPip MarketInfo(Symbol(),MODE_TICKVALUE) * bm;

   if( 
MarketInfo(Symbol(),MODE_DIGITS) == || )
   {
      if( 
MarketInfo(Symbol(),MODE_MINLOT) >= && MarketInfo(Symbol(),MODE_TICKVALUE) < 0.1 ) { WertProPip MarketInfo(Symbol(),MODE_TICKVALUE) * 100; }
      if( 
MarketInfo(Symbol(),MODE_TICKSIZE) >= 0.1 ) { WertProPip MarketInfo(Symbol(),MODE_TICKVALUE) / MarketInfo(Symbol(),MODE_TICKSIZE); }
   }

   
double StopLossInBetrag BaseLot WertProPip * (StopLoss/bm/Point);
   Print(
"StopLossInBetrag "DoubleToStr(StopLossInBetrag2) );



yytrader 09.12.15 07:26

Hallo,

ich wollte nur kurz einwerfen, dass auch noch den Spread mitbedacht werden muss, da sonst der Verlust höher ausfällt, als berechnet wurde. (Alternativ kann man auch ask und bid entsprechend anpassen, dann stimmt es)

Hier nochmal der Link auf meinen Beitrag zu einem Thema, was eine ähnliche Fragestellung hatte (Formel funktioiniert).
geldwert-eines-pips, StopLoss Berechnung


Gruß

yytrader

traderdoc 09.12.15 07:44

Wenn der Abstand vom Entry der Order (egal welcher!) bis zum SL in Währung berechnet werden soll, dann spielt der Spread überhaupt keine Rolle, denn die beiden Linien, Entry und SL werden bzgl. ihres Abstandes über die Variable z.B. StopLoss geregelt. Lediglich beim Open der Order spielt der Spread eine Rolle und beim Close (bei einem ausgeweiteten Spread wird dann der SL schneller! erreicht) aber nicht mit einem anderen Währungsbetrag.

Also nochmal: Entryprice und SL sind geregelt über die Pipvariable StopLoss.

traderdoc

pako 09.12.15 23:03

Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von traderdoc (Beitrag 32111)
Wenn der Abstand vom Entry der Order (egal welcher!) bis zum SL in Währung berechnet werden soll, dann spielt der Spread überhaupt keine Rolle, denn die beiden Linien, Entry und SL werden bzgl. ihres Abstandes über die Variable z.B. StopLoss geregelt. Lediglich beim Open der Order spielt der Spread eine Rolle und beim Close (bei einem ausgeweiteten Spread wird dann der SL schneller! erreicht) aber nicht mit einem anderen Währungsbetrag.

Also nochmal: Entryprice und SL sind geregelt über die Pipvariable StopLoss.

traderdoc

bestätigung in script


Alle Zeitangaben in WEZ +2. Es ist jetzt 06:58 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum