IsConnected()

 

Kann mir jemand erklären, wie IsConnected() nach int start() funktionieren kann

wenn irgendetwas nach int start() geschrieben wird, wird es erst nach einem neuen Tick ausgeführt, wie kann der EA überhaupt daran kommen?

danke

 

Sie können eine Schleife in start() einfügen, um zu prüfen, ob ein neuer Tick vorhanden ist und...isconnected()

 
Matutin:

Sie können eine Schleife in start() einfügen, um neue Ticks zu prüfen und...isconnected()


Aber was würde mir helfen, eine Schleife in start() zu machen, wenn ein neuer Tick nicht kommt?

z.B. wenn ich automatisch das Terminal neu starte & keine Verbindung besteht, dann kommt der EA nicht in die Schleife

 
qjol:


Aber was würde mir helfen, in start() zu schleifen, wenn ein neuer Tick nicht kommt

z.B. wenn ich automatisch das Terminal neu starte & keine Verbindung besteht, dann kommt der EA nicht in die Schleife

Kann Ihnen in einem Skript helfen, nicht EA.
 
robofx.org:
Kann Ihnen in einem Skript, nicht EA helfen.

in einem EA in init() ?
 
qjol:

in einem EA in init()?
Möglich.
 

Versuchen Sie dies...

https://www.mql5.com/en/code/7744


V

 
robofx.org:
Möglich.


Entschuldigung, nachdem int init() nicht funktioniert hat, habe ich es rausgeschmissen

#property copyright "Copyright © 2010, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#import "shell32.dll"
int ShellExecuteA(int hwnd,string Operation,string File,string Parameters,string Directory,int ShowCmd);
#import

int init()
  {
   Print ("starting count");
   Sleep(10000);
   Print ("chacking");
   if (!IsConnected())
   {
   Print ("restarting ap in 5 sec");
   Sleep(5000);
   ShellExecuteA(0, "Open", "d:\r_ap.bat", "", "", 1); 
   }

   return(0);
  }

 

Erweiternd zu meinem Link oben... Ich führe einen separaten EA, um den Verbindungsstatus zu überwachen. Es hat im Grunde alle den Code für meinen Test innerhalb Start mit einem Schlaf am Ende codiert. Start ist im Grunde eine große Schleife, wenn es endet, geht es zurück zum Anfang. Aber anstatt auf einen Tick zu warten, um den Start auszulösen, rufe ich start() innerhalb von init() auf. Auf diese Weise setzt start() die Schleife mit dem sleep fort und init() endet nie, so dass der Code auf der Grundlage von Zeitintervallen von sleep läuft, anstatt auf einen Tick zu warten... der Link oben zeigt das Prinzip...

hth

V

 
Viffer:

Erweiternd zu meinem Link oben... Ich führe einen separaten EA, um den Verbindungsstatus zu überwachen. Es hat im Grunde alle den Code für meinen Test innerhalb Start mit einem Schlaf am Ende codiert. Start ist im Grunde eine große Schleife, wenn es endet, geht es zurück zum Anfang. Aber anstatt auf einen Tick zu warten, um den Start auszulösen, rufe ich start() innerhalb von init() auf. Auf diese Weise setzt start() die Schleife mit dem sleep fort und init() endet nie, so dass der Code auf der Grundlage von Zeitintervallen von sleep läuft, anstatt auf einen Tick zu warten... der Link oben zeigt das Prinzip...

hth

V


Danke
 
qjol:


Aber was würde mir helfen, in start() zu schleifen, wenn ein neuer Tick nicht kommt

Wenn ich zum Beispiel automatisch das Terminal neu starte und keine Verbindung besteht, kommt der EA nicht in die Schleife.


Rufen Sie einfach start() aus init () auf ...und Sie werden in start() sein, auch wenn kein Tick kommt!