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)
-   -   Spread (http://www.expert-advisor.com/forum/showthread.php?t=6515)

Max2018 10.10.19 10:07

Spread
 
Hallo,

im Strategietester kann ich ja den Spread in den Voreinstellungen festlegen. Z.B. auf "Aktuell" oder 10, 20 usw....
FRAGE: Kann ich diesen Wert durch einen mql4 Befehl während des Tests verändern ... z.B. Uhrzeitabhängig? Hat da schon jemand mit Erfahrung oder einen Ansatz?

Bayreuther 10.10.19 22:26

Zitat:

Zitat von Max2018 (Beitrag 42926)
Hallo,

im Strategietester kann ich ja den Spread in den Voreinstellungen festlegen. Z.B. auf "Aktuell" oder 10, 20 usw....
FRAGE: Kann ich diesen Wert durch einen mql4 Befehl während des Tests verändern ... z.B. Uhrzeitabhängig? Hat da schon jemand mit Erfahrung oder einen Ansatz?

Mir ist da keine Funktion bekannt.
Es macht mehr Sinn, den EA Live im Demo bei einen Broker mit variablen Spread zu testen.
;)

Max2018 10.10.19 23:43

ja schon, aber das würde ja Jahre dauern :confused::(, in der letzten Phase vor der Live Schaltung....als Stichprobe....ist ein Live Test im DemoKonto ok, aber nicht als FullTest...
daher wäre ein umfassender Test mit den unterschiedlichen Spreads schon sinnvoller...... :confused: Hat keiner eine Idee... ???

Bayreuther 11.10.19 10:01

Suche mal nach " Tick Data Suite " ;)
Du findest auch ein Video dazu.

traderdoc 11.10.19 11:14

Zitat:

Zitat von Max2018 (Beitrag 42929)
Hat keiner eine Idee... ???

Klar doch, Du simulierst einen Spread, indem der Ask-Kurs per Variableneinstellung virtuell vergrößert wird. D.h. Sollte eine Buy-Order geöffnet werden, dann wird sie nicht beim realen Ask-Kurs geöffnet, sondern bei Ask + Variable (das ginge entweder über eine BuyStopOrder - das könnte evtl. aber mit dem STOPLEVEL kollidieren oder der EA merkt sich den eigentlichen Einstiegspunkt der BuyOrder und öffnet sie erst, wenn der Ask-Kurs zusätzlich um der Wert der vorgegebenen Variable gestiegen ist) und die Sell-Order wird dann auch bei Ask + Variable geschlossen.

Dazu ist natürlich notwendig, dass Du auf die mq4-Datei zugreifen kannst.

traderdoc

Bayreuther 11.10.19 14:31

@ traderdoc

so in etwa?
Code:

OrderSend (Symbol(), OP_BUY, Lots, Ask + SpreadPlus, Slippage, SL, TP + SpreadPlus, NULL, MagicNumber, 0, clrNONE);
aktueller Spread = Ask + SpreadPlus - Bid

MA-EA 11.10.19 14:43

Da es hier schon um Spread geht, wollt ich mal fragen, wie viel Spread Ihr maximal zulasst? Ich trade nur Forex-WP mit Spreads bis ungefähr 40 - 60.

Bobs 11.10.19 17:49

Zitat:

Zitat von Bayreuther (Beitrag 42930)
Suche mal nach " Tick Data Suite " ;)
Du findest auch ein Video dazu.

https://eareview.net/

traderdoc 11.10.19 20:49

Zitat:

Zitat von Bayreuther (Beitrag 42932)
@ traderdoc

so in etwa?
Code:

OrderSend (Symbol(), OP_BUY, Lots, Ask + SpreadPlus, Slippage, SL, TP + SpreadPlus, NULL, MagicNumber, 0, clrNONE);
aktueller Spread = Ask + SpreadPlus - Bid

Nein, so würde das nicht gehen, weil eine MarketOrder Buy vom Broker nur mit dem Ask ausgeführt werden würde und nicht mit Ask+SpreadPlus.

Beim TP der BuyOrder wird auch kein SpreadPlus benötigt, weil die BuyOrder immer mit dem Bid geschlossen wird.

Aber das würde gehen:

Code:

OrderSend (Symbol(), OP_BUYSTOP, Lots, Ask + SpreadPlus, Slippage, SL, TP , NULL, MagicNumber, 0, clrNONE);
SpreadPlus müsste dann jedoch größer sein als das STOPLEVEL.
Der SL und der TP müssten vom Abstand her jedoch so gelegt werden, als wäre die BuyOrder tatsächlich am Ask geöffnet worden!! Oder man geht tatsächlich vom Openprice Ask+SpreadPlus oder wie unten vom Buy_Open_Price und zieht dann vom SL und TP den Wert SpreadPlus ab!!

oder besser und sicherer so:

Code:

Buy_Open_Price = gemerkter_ask + SpreadPlus;
OrderSend (Symbol(), OP_BUY, Lots, Buy_Open_Price, Slippage, SL, TP , NULL, MagicNumber, 0, clrNONE);

gemerkter_ask - wäre der Preis zu dem sonst die BuyOrder geöffnet worden wäre.
SpreadPlus darf aber hier nicht als Pips angegeben werden, sondern muss vorher mit POINT multipliziert werden. Sofern ein 5-Digitbroker verwendet wird, dann auch noch mit den Faktor 10 multipliziert, wenn SpreadPlus in realen Pips benutzt wird.

Bei einer SellOrder ist das etwas einfacher, dann kann das benutzt werden:

Code:

OrderSend (Symbol(), OP_SELL, Lots, Bid, Slippage, SL+SpreadPlus, TP+SpreadPlus, NULL, MagicNumber, 0, clrNONE);
traderdoc

Bayreuther 11.10.19 21:40

@ traderdoc

Vielen Dank für Deine Erklärung.

Dann müsste man nur noch die Variable SpreadPlus mit unterschiedlichen Werten zeitlich steuern und fertig ist ein variabler Spread Test.


Alle Zeitangaben in WEZ +2. Es ist jetzt 11:53 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