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)
-   -   Ist es möglich in MQL4 alle 10 Sekunden etwas ausführen zu lassen? (http://www.expert-advisor.com/forum/showthread.php?t=6960)

spefu 27.03.21 19:29

Ist es möglich in MQL4 alle 10 Sekunden etwas ausführen zu lassen?
 
Hallo,

ich bin neu hier.
Komme selbst nicht weiter und brauche den Rat von Euch Experten...
:)


Ist es möglich in MQL4 alle 10 Sekunden etwas ausführen zu lassen?

Also wäre es zb möglich wenn ich sage:

If hour == 0 && minute == 00 && second == 00 Do something

If hour == 0 && minute == 00 && second == 10

Do something


Da es im MetaTrader keine 10 Sekunden als Zeiteinheit zur Verfügung steht, ist geplant 10 Sekunden Kerzen anhand der Ticks auszurechnen

Fraglich ist lediglich ob es eine kürzere / einfachere Variante gibt alle 10 Sekunden etwas auszuführen als die oben aufgezeigte

Würde mich freuen, wenn Ihr mir antwortet oder tolleLösungsvorschläge habt.

AVT 27.03.21 20:42

Zitat:

Zitat von spefu (Beitrag 45267)
Da es im MetaTrader keine 10 Sekunden als Zeiteinheit zur Verfügung steht, ist geplant 10 Sekunden Kerzen anhand der Ticks auszurechnen

Fraglich ist lediglich ob es eine kürzere / einfachere Variante gibt alle 10 Sekunden etwas auszuführen als die oben aufgezeigte

Laß' Dein DoSomething im OnTimer() aussführen, da kannst Du mit EventSetTimer oder sogar EventSetMillisecondTimer im OnInit() jede Zeiteinheit einstellen, die Du brauchst (Abschalten in OnDeinit nicht vergessen).
AVT

spefu 28.03.21 09:50

vielen Dank.

Ich werde es heute gleich mal ausprobieren...

:)

AlgoTrading 31.05.21 21:20

Hallo,

ich weiß nicht ob das Thema noch aktuell ist. Aber die von mir programmierten EAs müssen ebenfalls jede Stunde etwas ausführen. Zudem wollte ich, dass nicht alle gleichzeitig zur gleichen Minute mit dieser Task aktiv werden. Ich habe daher folgenden Code in meine EAs eingefügt:

In der Variablen-Defintion:

static int NextCall = 0;

Unter "OnInit":

NextCall = TimeCurrent() + 3600;

Unter "OnTick":

if(TimeCurrent() > NextCall)
{
Do something

NextCall = TimeCurrent() + 3600;

Dies veranlasst den EA, alle 3600 Sekunden "Do something" aufzurufen. Da die Variable NextCall bei "OnInit" zum ersten Mal mit einem Wert versehen wird, erfolgt dieser "Do something" Aufruf für jeden EA zu einer anderen Zeit, aber immer im Abstand von einer Stunde.

Für meine Anwendung war das wichtig, weil ich sehr viele EAs gleichzeitig laufen habe und vermeiden wollte, dass sich alle zur gleichen Zeit jede Stunde beim Server melden. Durch diesen Code hat jeder EA seinen eigenen Zeitplan.

Lass mich wissen, wenn ich dir weiterhelfen kann.

Gruß

AlgoTrading


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