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)
-   -   90 Sekunden Verzögerung beim Init (http://www.expert-advisor.com/forum/showthread.php?t=6354)

MIMO 07.03.19 15:45

90 Sekunden Verzögerung beim Init
 
Hallo

ich würde gerne beim Initalisieren eine Verzögerung von 90 Sekunden aktivieren, in der keine neuen Positionen geöffnet werden, alles anderen Funktionen sollen weiterlaufen.

Grund: Ich frage sehr viele Werte ab (init+laufend), bis die alle verfügbar sind und miteinander auch kombinerbar werden, wird der Code weiter durchlaufen und öffnet mir eine Position. Die einzelnen Module arbeiten mit dem was da ist und fehlt etwas, ein Modul z.B. fragt verfügbare Margin, Open Orders, Volatilität ab und bildet daraus die angepasste Lot Größe, fehlen aber Teilwerte, dann kann nicht die richtige Lot Größe bestimmt werden und es wird dann z.B. eine Order mit 0.1 Lot geöffnet, wären alle Werte vorhanden würde nur eine Order mit 0.06 geöffnet werden.

Klar ist das sicher eine Designfrage! Das könnte man sicher mit "viel" Aufwand ändern, und einiges ist historisch, die pragmatischte Lösung ist einfach eine 90 Sek. Verzögerung zu setzen, geht das überhaupt? Da ich kein Scalper bin, stört mich eine Verzögerung nicht. Diese 90 Sekunden würden locker reichen um alle Werte laden und zur Verfügung zu stellen.

Verweis Thread: "Sicherstellen das alles abgefragt wird"

Danke für jede Info

Mimo

Leopold 07.03.19 16:08

Vielleicht hilft dir das weiter:

https://docs.mql4.com/common/sleep

---Leopold---

traderdoc 07.03.19 16:10

Code:

if (TimeCurrent() <= Start + 90) return;
Die Zeit Start muss dann an der entsprechenden Stelle des OnInit() festgelegt werden, z.B. mit
Start = TimeCurrent();
Und der o.g. Code wird am Anfang von OnTick() gelegt.
Und nach 90 Sekunden ist die Abfrage false und der Code darunter wird ausgeführt..

traderdoc

MIMO 07.03.19 16:16

Vielen Dank Leopold + traderdoc!

Mimo

MIMO 07.03.19 16:21

Zitat:

Zitat von traderdoc (Beitrag 42241)
Code:

if (TimeCurrent() <= Start + 90) return;
Die Zeit Start muss dann an der entsprechenden Stelle des OnInit() festgelegt werden, z.B. mit
Start = TimeCurrent();
Und der o.g. Code wird am Anfang von OnTick() gelegt.
Und nach 90 Sekunden ist die Abfrage false und der Code darunter wird ausgeführt..

traderdoc

Werde den OnTick() Teil direkt in die Order Ausführung oder in die Switch (Buy/Sell) Anweisung (welche mir die Order Ausführung ja startet) einbauen, dann sind alle anderen Routinen/Module nicht davon betroffen und würden weiter arbeiten.

Danke!

Mimo

MIMO 07.03.19 16:48

Rückmeldung

Funktioniert einwandfrei, habe es in die Switch Anweisung (Buy/Sell) gestellt, muss nur noch ein paar Module neu sortieren, derzeit bleibt noch die Custom-Chart Anzeige für 90 Sekunden ausgeblendet. :)

Danke!

Mimo


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