Ошибки, баги, вопросы - страница 1523

 

Добрый день. Столкнулся с таким багом в МТ5: 

     if(ObjectFind(0,"twofiFiboUp" + TimeToString(dday_stop))==-1) 
           {
            ObjectCreate(0,"twofiFiboUp" + TimeToString(dday_stop),OBJ_FIBO,0,dday_stop,ddayL,day_stop,ddayH);
            ObjectSetInteger(0,"twofiFiboUp" + TimeToString(dday_stop),OBJPROP_COLOR,fibo_color_up);
            ObjectSetInteger(0,"twofiFiboUp" + TimeToString(dday_stop),OBJPROP_LEVELCOLOR,fibo_color_up);
            ObjectSetInteger(0,"twofiFiboUp" + TimeToString(dday_stop),OBJPROP_STYLE,fibo_style);
            ObjectSetInteger(0,"twofiFiboUp" + TimeToString(dday_stop),OBJPROP_SELECTABLE,false);  
           } 

задаю цвет уровней фибоначи, когда смотрю свойства объекта, там указан цвет который я задаю, а на графике все уровни желтые...

Подскажите что делать? 

 
Nikita Solodko:

Добрый день. Столкнулся с таким багом в МТ5: 

задаю цвет уровней фибоначи, когда смотрю свойства объекта, там указан цвет который я задаю, а на графике все уровни желтые...

Подскажите что делать? 

Посмотрите примеры из документации https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_fibo
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_FIBO
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_FIBO
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_FIBO - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Nikita Solodko:

Добрый день. Столкнулся с таким багом в МТ5: 

задаю цвет уровней фибоначи, когда смотрю свойства объекта, там указан цвет который я задаю, а на графике все уровни желтые...

Подскажите что делать? 

Изменить код.

Первое: запись

if(ObjectFind(0,"twofiFiboUp")==-1) 

 лучше заменить на

if(ObjectFind(0,"twofiFiboUp")<0) 

Второе: посмотрите, что именно Вы делаете - если объект с таким именем не найден ТОЛЬКО ТОГДА Вы меняете ему цвета. Такое условие сработает только один раз на ЧИСТОМ графике. Если на графике уже будет объект с искомым именем, Вы ему не сможете изменить свойства, так как просто Вы не попадёте внутрь условия:

            ObjectCreate(0,"twofiFiboUp",OBJ_FIBO,0,dday_stop,ddayL,day_stop,ddayH);
            ObjectSetInteger(0,"twofiFiboUp",OBJPROP_COLOR,fibo_color_up);
            ObjectSetInteger(0,"twofiFiboUp",OBJPROP_LEVELCOLOR,fibo_color_up);
            ObjectSetInteger(0,"twofiFiboUp",OBJPROP_STYLE,fibo_style);
            ObjectSetInteger(0,"twofiFiboUp",OBJPROP_SELECTABLE,false); 
 
Sergey Gritsay:
Посмотрите примеры из документации https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_fibo
Спасибо. Помогло.
 
Slawa:
 

Да только на закрытии терминала сработают жёсткие условия, уже специально оговорённые в документации. И на следующем открытии терминала Вы можете не досчитаться открытых графиков, потому что они так и не смогли в отведённое время запомниться.

Опять это вернули? Я уже страдал от этой гадости!
 
-Aleks-:
Опять это вернули? Я уже страдал от этой гадости!

Кто сказал, что вернули? Не вернули. И пока не собираемся.

Я сказал, что мы не будем что-либо менять в документации по этому поводу.

Речь изначально зашла о зацикленном индикаторе. Что категорически не рекомендуется. Даже в качестве иллюстрации

 
Slawa:

Кто сказал, что вернули? Не вернули. И пока не собираемся.

Я сказал, что мы не будем что-либо менять в документации по этому поводу.

Речь изначально зашла о зацикленном индикаторе. Что категорически не рекомендуется. Даже в качестве иллюстрации

Уф, значит этот баг не вернулся - можно спокойно закрывать терминал и быть уверенным, что все чарты сохраняться.


Такой вопрос, я хочу через фриланс открыть не работу, а деть премию программисту, это не наказуемо?

 
Slawa:

Что документировать? "Братцы, расслабьтесь и не напрягайтесь, деинициализируйте как хотите. Разаработчики разрешили"

Да только на закрытии терминала сработают жёсткие условия, уже специально оговорённые в документации. И на следующем открытии терминала Вы можете не досчитаться открытых графиков, потому что они так и не смогли в отведённое время запомниться.

А это здесь при чём?

Попробуйте ради своего интереса зафлудить лог в бесконечном цикле и посмотрите с какой скоростью он будет расти и как после 64 мегов начнут вырезаться дублирующиеся записи и как будет усекаться начало лога. Вы погорячились с утверждением об отсутствии защиты. Нам бы уже давно на хостингах все диски забили

Документировать как есть, либо сделать как документировано... Ладно, это Ваше дело

Попробовал, рискнул здоровьем компа, скорость заполнения ~1.5 Гб/мин. Но терминал при этом не виснет, в отличие от 4-ки, что уже радует )

 
-Aleks-:

Уф, значит этот баг не вернулся - можно спокойно закрывать терминал и быть уверенным, что все чарты сохраняться.

Сказали, что при закрытии терминала программа принудительно завершается через 3 секунды уже сейчас. Это так сейчас работает и будет работать. Возвращать не хотят принудительное завершение при удалении программы с графика без завершения работы терминала.
 
Slawa:

Речь изначально зашла о зацикленном индикаторе. Что категорически не рекомендуется. Даже в качестве иллюстрации

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