Проверка связи

 
Замечал такую штуку - связи нет а МТ показывает ее наличие. То что связи нет определял по невозможности получить почту или зайти на какой-нить сайт. Почему так может быть?

Еще есть предложение одно:-) Сделать бесконечное повторение звукового сигнал при обрыве связи. Чтоб проснуться, перзагрузиться или переключиться на другой канал и т.п.
 
Попробуйте в зацикленном скрипте использовать функцию IsConnected()
 
Попробуйте в зацикленном скрипте использовать функцию IsConnected()


Как раз пользую такую штуку:-)
 
Privet,

S etoj problemoj u menia byli problemy toze kokda zapuskal MT4 nedeliami nivykliu4aja iz pod linux+wine.

MT4 pokazyval tipa, "connected", a v reale grafiki ostavalis' staryje, tiki toze novyje nipolu4alis'.

2 MQ: Paprobvuite ostavit' MT4 s kakom nibut' expertom/custom indicatorom na nedeliu s nastroikami servera, skazem, Alpari, dumaju, sami uvidite takuju shtuku.

S klienksoj storony ja proboval izbegat' takuju problemu s proverkoj kokda byl poslednij bar, i jesli skazem, >10 barov propus4enna, delaju v kode refresh, 4toby MT4 zalogilsia zanovo v server.

#include <WinUser32.mqh>
int HighLowPeriod=350;
.
.
.
   if (!IsTesting() && CurTime() > Time[0] + 2 * Period() * 60 + 3600 && Bars > HighLowPeriod)
      // We have stale graphic, refresh it
      {
      Print(Symbol(),": Refreshing stale data...");
      int win_handle=WindowHandle(Symbol(),Period());
      if (win_handle != 0) PostMessageA(win_handle,WM_COMMAND,33324,0);
      RefreshRates();      
      return(0);     
      }



1 problema tol'ko v tom, 4to RefreshRates() niproveriajet kokda byl poslednij tik, i avtomati4eskij nizaprosit na server tekus4ije ceny jesli poslednije ceny uze staryje.
2 problema - jesli netu novyj tikov, MT4 prosto nizapuskajet periodi4eski indikatorov i expertov v "offline" rezyme.

 
Связи нет, тиков нет, как же функция IsConnected( ) сможет отработать в индикаторе ?

Хочу в индикаторе получить Alert() в случае пропадания связи. Помогите.

Зацикленный скрипт работает с задержкой по времени. Машина от него иногда виснет.
 
В индикаторе никак - в нем нельзя код закцикливать, а если сделать отдельный скрипт или советника, то все нормально. С зацикленным кодом тики не нужны.

int start(){
  while(true){
         if(!IsConnected() && SoundON){
            PlaySound(Disconnected);
            Sleep(1000);
         } 
      Sleep(10);		  
  }
}



 
сорри, немного не так:

int start(){
  while(true){
         if(!IsConnected() && SoundON){
            PlaySound("disconnect.wav");
            Sleep(1000);
         } 
      Sleep(10);		  
  }
}

 
сорри, немного не так:

int start(){
  while(true){
         if(!IsConnected()){
            PlaySound("disconnect.wav");
            Sleep(1000);
         } 
      Sleep(10);		  
  }
}

 
Во нафлудил! Пора в отпуск:-) Правильный вариант - последний.
 
Спасибо, Integer. У меня нечто подобное, for ( ; ; ) { }, только без задержек.

Одиночный звук "disconnect.wav" иногда пропускаю.

Предлагаю дополнить звуковые сигналы для событий одноразовым выводом информационной панели на экран ( визуальное оповещение, как у Windows, с возможностью отключения этой опции ). Это резко повысит эффективность всей системы сигнализации ( "вижу и слушаю" вместо "только слушаю" ).

Даже человек без слуха сможет полноценно реагировать на все события, MT4 будет адаптирован для пользователей с особыми потребностями.

Реально ли добавить к условиям Bid<, Bid>, Ask<, Ask>, Time= еще Disconnect ? Звуковой сигнал при пропадании связи будет многократным и надобность в зацикленных скриптах отпадет сама собой.

PlaySound() может работать только с файлами *.wav ? На *.mid, *.mp3 реакции нет.

Насколько загружают бесконечно зацикленные скрипты торговый поток и операционную систему ?
 
Использование Sleep(10) решает проблему загрузки процессора, величину задержки можно еще увеличить. Торговый поток помоему не загружается.
Причина обращения: