Подскажите, пожалуйста, как осуществлять контроль из советника соединение с сервером? - страница 2

 
Angela:

Поясните, пожалуйста, логику работы этого индикатора.
Анжела, прочитайте раздел учебника про "сложные программы" - тут довольно подробно объясняется, каким образом организовать работу советника даже в условиях отсутствия тиков.
 
Angela:
Но вопрос остался открытый. Как определить, что был разрыв связи и связь восстановилась? Функцией IsConnected()
мы можем контролировать наличие соединения, т.к. советник работает когда приходят тики, если произошел разрыв связи, советник в это время работать не может, и, соответственно, не может произвести контроль состояния. После восстановления соединения, советник задним числом не может определить, что был разрыв, он воспримет этот разрыв как большой интервал между тиками. Какое решение может быть?
У меня работает всегда. Даже в выходные. Надо его зациклить в старте. Эта библиотека поможет.
 
Не надо в старте - зависнет. Надо в конце старта запустить скрипт, который его пнет через секунду и выгрузится.
 
FAQ:
Не надо в старте - зависнет. Надо в конце старта запустить скрипт, который его пнет через секунду и выгрузится.
Почему зависнит? Чтобы в конце старта запустить скрипт, надо запустить старт.
 
потому что 409 - проверенно. после пары часов висит
 
У меня работает без ограничения.
 
Zhunko:
У меня работает всегда. Даже в выходные. Надо его зациклить в старте. Эта библиотека поможет.

Это понятно. Но зацикливание принципиально меняет логику работы советника, фактически, это совсем другой советник, и его нужно писать заново, а это проблема для меня не решаемая.
 
Angela:

Это понятно. Но зацикливание принципиально меняет логику работы советника, фактически, это совсем другой советник, и его нужно писать заново, а это проблема для меня не решаемая.

Это не сложно. Совсем не сложно. Зато решаются моножество других проблем.

void start()
 {
  while(!IsStopped())
   {
    RefreshRates();
    // Прежний код.
    ...............
    Sleep(1000);
   }
 }

Вот написал и понял, что можно у себя улучшить :-))

 
FAQ:
потому что 409 - проверенно. после пары часов висит

Кажется, до меня дошло почему так у некоторых бывает.

Если установлено много баров в окне, если маленькое ОЗУ, если идёт работа по большому количеству инструментов и ТФ, то через некоторое время память переполняется и МТ4 зависает.

 
нет, не из за этого. график один - два. баров не много. Но через пару часов виснет.