Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Вся деятельность участников MQL5.community. Заходи в раздел Стена!
. ... Rick D. ... .
1176
. ... Rick D. ... . 2014.07.03 11:18  
tara:


indicator_color1 

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


Я же уже писал - что нужна функция получения актуального цвета, который изменен трейдером. Чтобы перекрасить в этот цвет другие объекты.
. ... Rick D. ... .
1176
. ... Rick D. ... . 2014.07.03 14:12  
Вопрос. Что нужно вызвать из функции OnTimer в индикаторе, чтобы вызвалась OnCalculate? Раньше можно было вызвать просто start() напрямую.
Igor733
20
Igor733 2014.07.03 17:09  

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

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

Mislaid
622
Mislaid 2014.07.03 20:27  
Igor731:

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

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

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

Igor733
20
Igor733 2014.07.03 21:55  
Mislaid:

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


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

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

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

Andrey Khatimlianskii
56182
Andrey Khatimlianskii 2014.07.03 22:03  
Igor731:

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

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

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

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

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

Igor733
20
Igor733 2014.07.03 22:09  
komposter:

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

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

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

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

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

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

Рустам
3597
Рустам 2014.07.04 16:21  
при попытке установить лимитник внутри спреда, в выпадающем меню есть только SELL_LIMIT.
Vladislav Andruschenko
91877
Vladislav Andruschenko 2014.10.27 17:06  
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 

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


1...3839404142434445
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий