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)

Raul0 07.12.15 13:11

Allroundformel für StopLossBetrag
 
Hallo,

ich möchte im EA angezeigt bekommen, wie groß der Betrag des Stops ist.

An sich nicht schwer, jedoch wird es schwer sollte ein größeres Spektrum genutzt werden. Verschiedene Digits, Basiswerte, Broker. Jeder Broker hat andere Spezifikationen.

Gibt es da eine Allroundmöglichkeit?

Gruss, Raul

GoS 07.12.15 16:28

Hi,
im Forex ist das mit "Beträgen angezeigt bekommen" immer so ne Sache, da man keinen fixen Betrag ausrechnen kann. Das liegt einerseits daran, daß die TickValue NICHT fest ist und andererseits, wenn du Währungspaare handelst, die nicht auf deine Kontowährung lauten, dann wird dieser nicht fixe Wert der TickValue auch noch von einem weiteren nicht fixen Währungspaar, das man dann zur Umrechnung benötigt, beeinflusst.
Ich habe mich damit schonmal längere Zeit auseinandergesetzt; und bin dann zu dem Schluss gekommen:
PHP-Code:

if(AccountEquity() >= gd_sysBalanceTargetAllPositionsExit(); 

tuts erstmal auch :D

Wenn ich mal Zeit dafür habe, denk ich das ganze aber nochmal durch...

Raul0 07.12.15 16:43

Das heisst, zu komplex, weil nicht wirklich standardisiert. Schade.

GoS 07.12.15 17:05

... aber schon machbar !!
Man muss hald ständig die TickValue berechnen, und evtl. auch noch die des Symbols zum umrechnen, und dann annäherungsweise den Betrag des SL oder was man eben berechnet haben will.
Und man muss wissen, dieser Wert ist NICHT fix.

traderdoc 07.12.15 18:06

Nun, da gibt es eigentlich nicht viel zu berechnen:

SL-Wert = LotSize * MarketInfo(Symbol(), MODE_TICKVALUE) * SLPips;

Die SLPips sollten bei einem 4-Digitbroker "normal" angegeben werden, wie man 1Pip auch definiert und bei einem 5-Digitbroker dann entsprechend mit einer Stelle rechts mehr, also statt 10Pips dann 100, weil dann der Tickvalue auch nur 1/10tel des Wertes beim 4-DB wäre.

traderdoc

GoS 07.12.15 18:40

@traderdoc: Diese Formel ist die grobe Annäherung und wäre korrekt, wenn sich das TickValue nicht bei JEDEM Tick ändern würde. Ich geb mal ein Beispiel:

Alle X-USD Symbole haben das selbe aktuelle TV, also z.B.:
EURUSD(5Digits) hat bei Bid 1.08510 ein TV von 0.92157 pro Lot
oder bei 1.08500 TV: 0.92165
oder bei 1.08490 TV: 0.92174
usw.

Wenn du also JETZT (bei einem Bid von 1.08510) mit deiner Formel den SL-Wert berechnest, kommt ein anderer Wert raus, als wie wenn du 10 Sekunden später bei einem Bid von 1.08490 den SL-Wert berechnest.

Mach den Test:
Eröffne eine Position, berechne über den aktuellen TickValue den SL und schau, was passiert: Umso weiter der SL entfernt ist, desto ungenauer war die Berechnung.

Raul0 07.12.15 21:00

So wie traderdoc es angegeben hat, ist es im Moment auch. Problem ist, wenn die Funktion zusätzlich für den Dax benutzt wird.

Große Unterschiede bei den Brokern z.B. Activtrades und FXCM. Ticksize, Tickvlaue und Digits sind hier so unterschiedlich, dass es zu keinem Ergebniss kommt.
Ich werde dazu noch etas posten, wenn ich wieder am Programmier-PC bin.

PHP-Code:

double WertProPip NormalizeDouble( ( 0.0001 Close[0] ) * 1000006);
double StopLossInBetrag = ( WertProPip StopLoss ) * Lot


traderdoc 07.12.15 21:18

Zitat:

Zitat von GoS (Beitrag 32063)
@traderdoc: Diese Formel ist die grobe Annäherung und wäre korrekt, wenn sich das TickValue nicht bei JEDEM Tick ändern würde. Ich geb mal ein Beispiel:

Alle X-USD Symbole haben das selbe aktuelle TV, also z.B.:
EURUSD(5Digits) hat bei Bid 1.08510 ein TV von 0.92157 pro Lot
oder bei 1.08500 TV: 0.92165
oder bei 1.08490 TV: 0.92174
usw.

Wenn du also JETZT (bei einem Bid von 1.08510) mit deiner Formel den SL-Wert berechnest, kommt ein anderer Wert raus, als wie wenn du 10 Sekunden später bei einem Bid von 1.08490 den SL-Wert berechnest.

Mach den Test:
Eröffne eine Position, berechne über den aktuellen TickValue den SL und schau, was passiert: Umso weiter der SL entfernt ist, desto ungenauer war die Berechnung.

Meine Formel ist keine grobe Annäherung sondern 100% korrekt!
Desweiteren wird der Tickvalue bei Währungspaaren wo nicht! die Accountwährung im Nenner steht immer! mit dem Bidkurs schwanken, weil der Tickvalue sich auf die Währung im Nenner bezieht und dann umgerechnet werden muß in Deine Accountwährung.
Dann nimm einfach den EURUSD und einen $-Account und Du wirst sehen, dass der Tickvalue immer 10 oder 1 ist, je nach Brokertyp.

traderdoc

traderdoc 07.12.15 21:39

Wozu WertProPip ausrechnen lassen?
Über MarketInfo(Symbol(), MODE_TICKVALUE) ist doch alles und zu jeder Zeit klar definiert.

traderdoc

Raul0 08.12.15 09:21

Liste der Anhänge anzeigen (Anzahl: 2)
Guten Morgen,

hier habe ich von den zwei Demokonten das Beispiel der Spezifikationen, im Anhang.

Bei FXCM wurde das als Future angegeben und hat kein TICKVALUE. Bei ActivTrades erhalte ich einen falschen Wert.
Von daher denke ich, wird es ohne Unterscheidungen von Broker und Werten nicht gehen.
Für einfache Währungspaare, ist es meist einheitlich.

Gruss, Raul


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 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