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
|