Попробуйте в зацикленном скрипте использовать функцию 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.
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.
В индикаторе никак - в нем нельзя код закцикливать, а если сделать отдельный скрипт или советника, то все нормально. С зацикленным кодом тики не нужны.
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 реакции нет.
Насколько загружают бесконечно зацикленные скрипты торговый поток и операционную систему ?
Одиночный звук "disconnect.wav" иногда пропускаю.
Предлагаю дополнить звуковые сигналы для событий одноразовым выводом информационной панели на экран ( визуальное оповещение, как у Windows, с возможностью отключения этой опции ). Это резко повысит эффективность всей системы сигнализации ( "вижу и слушаю" вместо "только слушаю" ).
Даже человек без слуха сможет полноценно реагировать на все события, MT4 будет адаптирован для пользователей с особыми потребностями.
Реально ли добавить к условиям Bid<, Bid>, Ask<, Ask>, Time= еще Disconnect ? Звуковой сигнал при пропадании связи будет многократным и надобность в зацикленных скриптах отпадет сама собой.
PlaySound() может работать только с файлами *.wav ? На *.mid, *.mp3 реакции нет.
Насколько загружают бесконечно зацикленные скрипты торговый поток и операционную систему ?
Использование Sleep(10) решает проблему загрузки процессора, величину задержки можно еще увеличить. Торговый поток помоему не загружается.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Еще есть предложение одно:-) Сделать бесконечное повторение звукового сигнал при обрыве связи. Чтоб проснуться, перзагрузиться или переключиться на другой канал и т.п.