MetaTrader 4 Client Terminal build 646: Умный поиск, книги в Маркете и обновление окна параметров MQL4-программы - страница 45

 
tara:


indicator_color1 

Зачем нужна функция определения значения константы? 


Я же уже писал - что нужна функция получения актуального цвета, который изменен трейдером. Чтобы перекрасить в этот цвет другие объекты.
 
Вопрос. Что нужно вызвать из функции OnTimer в индикаторе, чтобы вызвалась OnCalculate? Раньше можно было вызвать просто start() напрямую.
 

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

Выбиваются советники на некоторых парах  в момент открытия новой сессии. Советник один и тот же на всех парах. Ошибок нет. Все возможные деления на 0 проверяются. Выход из диапазона массива тоже. А если все же и есть ошибка, то все равно такой реакции - подвешивании МТ из-за порчи советника и как следствие загрузки процессора, считаю, быть не должно. Хотелось бы получить сообщение о некорректной работе советника. Но МТ всегда должен оставаться работоспособным. Также невозможно удалить подвисший советник - приходиться абортировать МТ, удалять файлы советника и загружать МТ снова. Потом ставить советн по новой. Делать это приходится по нескольку раз, так как с первого раза не удаляется. И такие мучения в начале каждой сессии - ровно в момент ее открытия портятся несколько советников и МТ4 подвешивается. Билд последний 646-й. К началу сессии никак не привязываюсь. Только к открытию нового бара. Поэтому совершенно непонятно, почему именно в первую секунду новой сессии это происходит. Всю сессию советник на всех 18-ти парах отрабатывает нормально и без ошибок. Заранее благодарен за любой ответ.

 
Igor731:

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

Выбиваются советники на некоторых парах  в момент открытия новой сессии. Советник один и тот же на всех парах. Ошибок нет. Все возможные деления на 0 проверяются. Выход из диапазона массива тоже. А если все же и есть ошибка, то все равно такой реакции - подвешивании МТ из-за порчи советника и как следствие загрузки процессора, считаю, быть не должно. Хотелось бы получить сообщение о некорректной работе советника. Но МТ всегда должен оставаться работоспособным. Также невозможно удалить подвисший советник - приходиться абортировать МТ, удалять файлы советника и загружать МТ снова. Потом ставить советн по новой. Делать это приходится по нескольку раз, так как с первого раза не удаляется. И такие мучения в начале каждой сессии - ровно в момент ее открытия портятся несколько советников и МТ4 подвешивается. Билд последний 646-й. К началу сессии никак не привязываюсь. Только к открытию нового бара. Поэтому совершенно непонятно, почему именно в первую секунду новой сессии это происходит. Всю сессию советник на всех 18-ти парах отрабатывает нормально и без ошибок. Заранее благодарен за любой ответ.

Есть у меня такой индикатор, который намертво вешал терминал при запуске. В то же время, если индикатор вешать на уже запущенный терминал, то нет никаких проблем. Это схоже с вашей ситуацией. В чем проблема, я могу только догадываться, но, явно в самом индикаторе. Решение, устраняющее проблему, я нашел следующее: разрешаю индикатору работать только через некоторое время после логина. С экспертами такое нужно делать однозначно. Неизвестно, что они насчитают, при еще не полностью подгруженной истории.

 
Mislaid:

Есть у меня такой индикатор, ...


Спасибо. Попробую. Только у меня не при запуске это происходит, а в момент перехода из одной сессии в другую. А лечится как раз только перезапуском МТ несколько раз.
 
RickD:
Вопрос. Что нужно вызвать из функции OnTimer в индикаторе, чтобы вызвалась OnCalculate? Раньше можно было вызвать просто start() напрямую.

Теперь нужно делать копии всех необходимых массивов и вызывать ОнКалкулейт, передавая актуальные данные.

Почитайте на mql5.com 

 
Igor731:

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

Выбиваются советники на некоторых парах  в момент открытия новой сессии. Советник один и тот же на всех парах. Ошибок нет. Все возможные деления на 0 проверяются. Выход из диапазона массива тоже. А если все же и есть ошибка, то все равно такой реакции - подвешивании МТ из-за порчи советника и как следствие загрузки процессора, считаю, быть не должно. Хотелось бы получить сообщение о некорректной работе советника. Но МТ всегда должен оставаться работоспособным. Также невозможно удалить подвисший советник - приходиться абортировать МТ, удалять файлы советника и загружать МТ снова. Потом ставить советн по новой. Делать это приходится по нескольку раз, так как с первого раза не удаляется. И такие мучения в начале каждой сессии - ровно в момент ее открытия портятся несколько советников и МТ4 подвешивается. Билд последний 646-й. К началу сессии никак не привязываюсь. Только к открытию нового бара. Поэтому совершенно непонятно, почему именно в первую секунду новой сессии это происходит. Всю сессию советник на всех 18-ти парах отрабатывает нормально и без ошибок. Заранее благодарен за любой ответ.

Если вешается МТ, то проблема в индикаторе. Советники работают в своих потоках и интерфейс не вешают.

Разбирайте все, что запущено, или вызывается из советников.

С деталями пишите в сервис-деск на mql5.com, там помогут. 

 
komposter:

Если вешается МТ, то проблема в индикаторе. Советники работают в своих потоках и интерфейс не вешают.

Разбирайте все, что запущено, или вызывается из советников.

С деталями пишите в сервис-деск на mql5.com, там помогут. 

Да, действительно, я вызываю из советника индикатор профиля рынка. Причем сам доделывал его для себя. 

Наверно в нем дело. Видно ошибку внес. Спасибо. 

P.S. После перекомпиляции индюка все советники заработали. 

 
при попытке установить лимитник внутри спреда, в выпадающем меню есть только SELL_LIMIT.
 
mql5:

Пожалуйста, создайте заявку в сервисдеске и приложите неработающий код.

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

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

Но при вычислении цены по определенному времени - цена возвращается одна и таже для всех линий.

 

   datetime Time1=StrToTime(TimeStart);
   datetime Time2=StrToTime(TimeEnd);

   if(Time1>Time2)Time1=Time1-24*60*60;
   SetVLine(InpColor,InpName+"START1",Time1,InpStyle,InpWidth);
   SetVLine(InpColor,InpName+"START2",Time2,InpStyle,InpWidth);

   if(!StdDevChannelCreate(0,InpName,0,Time1,Time2,KoeficientStdDev,InpColor,InpStyle,
      InpWidth,InpFill,InpBack,InpSelection,InpRayLeft,InpRayRight,InpHidden,InpZOrder))
     {
      return(0);
     }
   if(TimeCurrent()<Time2)return(0);
   Print("ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)0)="+ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2),0));
   Print("ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)1)="+ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2),1));
   Print("ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)2)="+ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2),2));
   SetHLine(InpColor,InpName+"HLINE1",ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)),InpStyle,InpWidth);
   SetHLine(InpColor,InpName+"HLINE2",ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2),1),InpStyle,InpWidth);

 

2014.10.27 17:28:45.911 Exp - ValeraY EURCHF,M15: ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)2)=1.2060989
2014.10.27 17:28:45.911 Exp - ValeraY EURCHF,M15: ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)1)=1.2060989
2014.10.27 17:28:45.911 Exp - ValeraY EURCHF,M15: ObjectGetValueByTime(0,InpName,Time2-((Time2-Time1)/2)0)=1.2060989 

Как решить данный вопрос кто в курсе?