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)
-   -   Handelszeit in MT4 begrenzen - Vortageshoch/tief (http://www.expert-advisor.com/forum/showthread.php?t=4994)

Ace23 19.06.16 19:07

Ok. Danke für die Antwort!
Habe mich eingelesen, zumindest was in der mql4 Hilfe oder auf der Webseite dazu gefunden habe. Komme damit nur nicht ganz klar wie das funktionieren soll...

Habe folgendes versucht:

Code:


datetime b = TimeCurrent()==StrToTime("9:20:01");
datetime c = TimeCurrent()==StrToTime("11:10:01");

if ( TimeCurrent() >= b && TimeCurrent() < c)
{
...

Dann gibt er bei nem Comment als Test entweder eine der jeweiligen Zeiten aus oder gibt den Comment jede Sekunde neu aus.

Das Ziel ist es ja das er den Comment nur innerhalb der Zeit jedes mal neu ausgeben soll.

Kann mir hierbei jemand helfen? Auch gerne per PN.

traderdoc 19.06.16 20:29

Über die Funktion EventSetTimer() in OnInit() wird in der Klammer eine Zahl angegeben, die für die Sekunden steht, nach denen die Funktion OnTimer() angesprungen wird.
D.h. steht da z.B. in OnInit() EventSetTimer(60); dann wird die Funktion OnTimer() alle 60 Sekunden angesprungen. Und das ist es doch, was Du wolltest.
In der Funktion OnTimer() kommt dann die entsprechende Abfrage hinein.
Fertig - Bis auf die Deaktivierung des Timers mittels EventKillTimer() in der Funktion OnDeinit().

traderdoc

Ace23 23.06.16 21:01

Hallo ! Danke !

Hatte etwas zu tun bis ich hier wieder antworten konnte.

Habe es Probiert, du meinst die OnTimer() Funktion, beim Erstellen des EA, wenn man dort den Hacken rein setzt schreibt er das automatisch rein, ja habe dort eine einfache OrderSend Auftrag geschrieben, die er ja dann einfach alle 60 Sekunden ausführen müsste nichts^^

Code:

int OnInit(){

EventSetTimer(60);

return(INIT_SUCCEEDED);
}

void OnDeinit(const int reason)
  {
//--- destroy timer
  EventKillTimer();
     
  }

void OnTimer(){

Kaufen();

}


void Kaufen(){
  OrderSend(Symbol()......);
}

Hab auch den Gegentest mit OnTick() anstelle OnTimer() gemacht, da funktioniert das und er kauf jeden Tick :D Also wie bekomme ich das jetzt hin, dass es mit OnTimer() funktioniert und er alle x Sekunden das ausführt ?

traderdoc 24.06.16 00:16

Zitat:

Zitat von Ace23 (Beitrag 34936)
Hallo ! Danke !

Hab auch den Gegentest mit OnTick() anstelle OnTimer() gemacht, da funktioniert das und er kauf jeden Tick :D Also wie bekomme ich das jetzt hin, dass es mit OnTimer() funktioniert und er alle x Sekunden das ausführt ?

Das hast es doch schon als Code geschrieben, verstehe ich nicht. Alle 60 Sekunden sprint der EA in die Funktion OnTimer() und führt dort Deine Anweisungen durch - fertig.

traderdoc


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