Перестают обновляться графики (замораживаются котировки). Как быть?

 

Здравствуйте уважаемые разработчики! Помогите пожалуйста разобраться со следующей проблемой.

В какой-то момент времени перестают приходить котировки. Создаётся эффект "зависания". Но сам терминал остаётся "живым". Можно переключаться между окнами, вкладками, пользоваться меню и т.д... Версия терминала - 223. Из-за чего такое происходит?

По моим наблюдениям, если вешать эксперта только на один график, то такое не происходит, а если система мультивалютная - то, в какой-то момент времени, происходит "замораживание" тиков. А если нет тиков - то функция start() в эксперте, как известно, никогда не запустится.

Мои эксперты установлены на 8 валютных пар на часовых тайфреймах. Торовля осуществляется при наличии соответствующего сигнала только "по открытию свечи". Сигнал подаётся от совокупности сигналов 8 пользовательских индикаторов. Каждый пользовательский индикатор у меня обращается к значениям одного стандартного индикатора, либо одного пользовательского, который, в свою очередь обращается к примитивным данным типа iHigh(), iVolume и т.д....

В итоге получаются цепочки из процессов, которые, по моему мнению, не дают друг другу нормально работать, что в свою очередь вызывает какой-то сбой в системе.

Если кто-нибудь понимает о чём я тут сейчас написал, пожалуйста, скажите мне, как вы решили подобную проблему.

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

Файлы:
film0.rar  1156 kb
 
EvgeTrofi >>:

Здравствуйте уважаемые разработчики! Помогите пожалуйста разобраться со следующей проблемой.


Пока глухо...

Похоже проблема возникает именно из-за советников, причем советников должно быть больше 2-х.

 
BestProgrammers писал(а) >>

Пока глухо...

Похоже проблема возникает именно из-за советников, причем советников должно быть больше 2-х.

если виной советники, то почему билд 222 от 17 марта не позволяет зависнуть терминалу !?

используйте билд 222 от 17 марта и бут вам сЩастье!

 
vvavva >>:

если виной советники, то почему билд 222 от 17 марта не позволяет зависнуть терминалу !?

используйте билд 222 от 17 марта и бут вам сЩастье!

Элементарно, Вава -- 222 билд отличается от 223. В этих изменениях и закралась ошибка. Или из-за них проявилась старая.

У меня стоит 220, но разобраться в проблеме надо.

 

Тут возникла идея пока мониторить состяние счёта удалённо. Сообщения приходят на мобильный телефон, пока терминал работает. Если терминал завис и перестал отправлять сообщения - нужно бежать домой перезапускать.

Отправляем сообщения с помощью функции:

int Infonmer() {
   static datetime LastTime;
   if(iTime(Symbol(), PERIOD_H1, 0) == LastTime) return(0);
   LastTime=iTime(Symbol(), PERIOD_H1, 0);
   if(iVolume(Symbol(), PERIOD_H1, 0) > LimitVolume) return(0);
   int File;
   string text;
   text=StringConcatenate(TimeToStr(LastTime,TIME_DATE|TIME_MINUTES|TIME_SECONDS),"\n");
   text=StringConcatenate(text,"Баланс: ",DoubleToStr(AccountBalance(),2)," "+AccountCurrency(),"\n");
   text=StringConcatenate(text,"Средства: ",DoubleToStr(AccountEquity(),2)," "+AccountCurrency(),"\n");
   text=StringConcatenate(text,"Залог: ",DoubleToStr(AccountEquity()-AccountFreeMargin(),2)," ",AccountCurrency(),"\n");
   text=StringConcatenate(text,"Свободно: ",DoubleToStr(AccountFreeMargin(),2)," ",AccountCurrency(),"\n");
   text=StringConcatenate(text,"Уровень: ",DoubleToStr(AccountEquity()*100/(AccountEquity()-AccountFreeMargin()),2)," % \n");
   text=StringConcatenate(text,"Лот: ",DoubleToStr(OpenLots(),2));
   File = FileOpen("ToSkype"+TimeHour(LastTime)+".txt",FILE_WRITE,';');
   FileWrite(File, text);
   FileClose(File);
   Print(text);
   return(0);
}//Infonmer()

Сами сообщения на телефон попадают с помощью следующей программки:

Заводим две учётные записи в системе Skype. Одну устанавливаем на компьютер с терминалом, другую на телефон. И спокойно идём гулять.

Версия для ПК: http://www.skype.com/intl/ru/download/skype/windows/

Версия для мобильного: http://www.skype.com/intl/ru/download/skype/mobile/

Программу для рассылки скачиваем здесь (со всеми исходниками на языке Visual Basic 6.0)

--------------------

p.s. Ещё можно программку доделать на отдзвы, чтобы ваш эксперт реагировал на сообщения-команды, которые бы вы ему отправляли с мобильного. Интересует такое кого-нибудь?

Файлы:
skyper.rar  20 kb
 
EvgeTrofi >>:

Тут возникла идея пока мониторить состяние счёта удалённо. Сообщения приходят на мобильный телефон, пока терминал работает. Если терминал завис и перестал отправлять сообщения - нужно бежать домой перезапускать.

Отправляем сообщения с помощью функции:

Сами сообщения на телефон попадают с помощью следующей программки:

Заводим две учётные записи в системе Skype. Одну устанавливаем на компьютер с терминалом, другую на телефон. И спокойно идём гулять.

Версия для ПК: http://www.skype.com/intl/ru/download/skype/windows/

Версия для мобильного: http://www.skype.com/intl/ru/download/skype/mobile/

Программу для рассылки скачиваем здесь (со всеми исходниками на языке Visual Basic 6.0)

--------------------

p.s. Ещё можно программку доделать на отдзвы, чтобы ваш эксперт реагировал на сообщения-команды, которые бы вы ему отправляли с мобильного. Интересует такое кого-нибудь?

А то, интересует конечно же.

 
EvgeTrofi >>:

Создаётся эффект "зависания". Но сам терминал остаётся "живым".

Подтверждаю. Тестирую на 28 валютных парах одноврменно, зависание 1 раз в сутки происходит. Честно напрягает иногда в ночи ехать на другой конец города, дабы перезапустить терминал.

 

Постараюсь написать прогу, чтобы сама делала Restart терминала. Ждите!

 

Я не большой специалист в обсуждаемом вопросе, потому у меня возникают следующие ...гм-м... вопросы :)

1. Не проще ли пользоваться услугами мобильной почты?

2. Реально ли перезапустить систему через удаленное управление рабочим столом? (подобно VPS)

 
gorby777 >>:

2. Реально ли перезапустить систему через удаленное управление рабочим столом? (подобно VPS)

Если запускать терминал на виртуалке -- легко.

 
gorby777 писал(а) >>

1. Не проще ли пользоваться услугами мобильной почты?

Встроенная функция SendMail(subj,text); встроенная в MetaTrader работает достаточно плохо, чтобы начать искать замену ей. То отправляет письма, то не отправляет, а потом кучу сразу отправит. Этот вариант уже пройден. Кроме того, интернет на мобильном телефоне недешёвый, поэтому когда телефон забирает почту (довольно громосткая операция) тратится намного больше времени и трафика, чем когда телефон постоянно висит в скайпе. Сообщения через скайп поступят мгновенно, после их отправки, а Вы получите письмо, только когда захотите проверить наличие писем на своём ящике, а если будете слишком часто прверять ящик - "разоритесь" на трафике.

2. Реально ли перезапустить систему через удаленное управление рабочим столом? (подобно VPS)

Ну а если я например таксист. У меня нет с собой ни нотбука, ни интернета.... Да ну бог с ним. Допустим есть у меня интернет и компьютер под рукой. Но для того, чтобы связаться с моим домашним компьютером необходимо вначале настроить домашний комп на это действие (не каждый это умеет) и оплатить дополнительную услугу провайдеру, чтобы мой IP адрес был виден из сети Интернет. Но кому нужны дополнительные затраты? А душа то болит за "зависшие" ставки! И зависли они там вообще или нет? В этом случае Вам поможет только программа которая будет перезапускать терминал автоматически, если котировки перестали обновляться в течении 3-5 минут.