IsConnected()

 

Кто-нибудь может мне объяснить, как IsConnected() может работать после int start()?

если что-либо написано после int start() выполняется только после нового тика Как советник может добраться до этого вообще

спасибо

 

вы можете зациклиться на start() для проверки нового тика и... isconnected()

 
Matutin:

вы можете зациклиться на start() для проверки нового тика и...isconnected().


Но что поможет мне зациклиться на start(), если новый тик не наступил?

например, если я автоматически перезагружаю терминал и нет соединения, значит советник не пришел в цикл.

 
qjol:


Но что поможет мне зациклиться на start(), если новый тик не наступил?

например, если я автоматически перезагружаю терминал и нет связи, то советник не приходит в цикл.

Могу помочь скриптом, а не советником.
 
robofx.org:
Могу помочь в скрипте, а не в советнике.

в советнике в init()?
 
qjol:

в советнике в init()?
Возможно.
 

Попробуйте это...

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


V

 
robofx.org:
Возможно.


извините, после того как int init() не сработал, я его вырубил.

#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);
  }

 

Расширяя мою ссылку выше... Я запускаю отдельный советник для мониторинга состояния соединения. В нем весь код для моего теста закодирован внутри start с sleep в конце. Start - это, по сути, большой цикл, когда он завершается, он возвращается в начало. Но вместо того, чтобы ждать тика для запуска, я вызываю start() внутри init(). Таким образом, start() продолжает цикл с sleep, а init() никогда не завершается, поэтому код выполняется на основе временных интервалов от sleep, а не в ожидании тика... ссылка выше показывает принцип...

hth

V

 
Viffer:

Расширяя мою ссылку выше... Я запускаю отдельный советник для мониторинга состояния соединения. В нем весь код для моего теста закодирован внутри start с sleep в конце. Start - это, по сути, большой цикл, когда он завершается, он возвращается в начало. Но вместо того, чтобы ждать тика для запуска, я вызываю start() внутри init(). Таким образом, start() продолжает цикл с sleep, а init() никогда не завершается, поэтому код выполняется на основе временных интервалов от sleep, а не в ожидании тика... ссылка выше показывает принцип...

hth

V


спасибо
 
qjol:


Но что поможет мне зациклиться на start(), если новый тик не наступил?

например, если я автоматически перезагружаю терминал и нет связи, то советник не приходит в цикл.


Просто вызовите start() из init() ...и вы будете в start() даже без прихода тика!
Причина обращения: