Пропадание линий Horizontal Line при перемещении их советником - страница 2

 
Karputov Vladimir:
А что Вы понимаете под термином "пропадают"? Они пропадают из поле зрения (то есть Вы их не видите на графике, но при этом линии присутствуют на графике и они есть в списке объектов) или они удаляются полностью с чарта (но тогда, а как Вы это проверяете и вообще, проверяете ли?).
Они пропадают совсем, при поиске их среди объектов они отсутствуют. Их ищет советник среди всех объектов и не находит, а потом я нажатием кнопки в меню "Список объектов"->"Все" линии отсутствуют. Я думаю может ли это быть связано с перегрузкой МТ4 из-за большого объема выполняемых операций в моменты когда тики приходят очень часто. Советник у меня не маленький больше 3000 строк, выполняется каждый тик на минимум 10-ти валютных парах в одном терминале. Всего на одном торговом счете может быть до 50 советников в разных терминалах на разных VPS или домашнем ПК. Сбиваются периодически все советники в разное время их приходится перезапускать. Раз в 3-7 дней.
 
Ekaterina Belova:
Они пропадают совсем, при поиске их среди объектов они отсутствуют. Их ищет советник среди всех объектов и не находит, а потом я нажатием кнопки в меню "Список объектов"->"Все" линии отсутствуют. Я думаю может ли это быть связано с перегрузкой МТ4 из-за большого объема выполняемых операций в моменты когда тики приходят очень часто. Советник у меня не маленький больше 3000 строк, выполняется каждый тик на минимум 10-ти валютных парах в одном терминале. Всего на одном торговом счете может быть до 50 советников в разных терминалах на разных VPS или домашнем ПК. Сбиваются периодически все советники в разное время их приходится перезапускать. Раз в 3-7 дней.
А Вы хоть как-то контролируете поиск, создание, перемещение? Принты ошибок  выводите? В общем подробное логирование и ещё раз подробное логирование...
 
Dmitry Fedoseev:

2. Вот вы сами и ответили. Значит иногда советник сам не рисует линии. Дело не в линиях, а в переменных, т.е. в самом алгоритме рисования линий в советнике.

3. Значит что-то не так делаете. Попробуйте сделать как-то по другому. Нет никаких препятствий, что бы это сделать.

Дело в том что в коде советника нет ни одной строки про удаление линий, а лишь про установку при первом пуске и отсутствии ордеров и линий с Magic советника, а только изменение линии с именем Name и установка значения Base>0: ObjectSetDouble(0,Name,OBJPROP_PRICE,Base);
 
Karputov Vladimir:
А Вы хоть как-то контролируете поиск, создание, перемещение? Принты ошибок  выводите? В общем подробное логирование и ещё раз подробное логирование...
А про принты ошибок Вы верно подметили, обязательно воспользуюсь. Спасибо, но дело еще в том, что перед изменением значения линии проводится проверка нового значения положения линии количество шагов между линиями должно быть кратно 0,5 и новое значение положения линии должно быть больше "0", если условия выполняются, то происходит установка линии на новое место. А их просто нет. 
 
Ekaterina Belova:
Дело в том что в коде советника нет ни одной строки про удаление линий, а лишь про установку при первом пуске и отсутствии ордеров и линий с Magic советника, а только изменение линии с именем Name и установка значения Base>0: ObjectSetDouble(0,Name,OBJPROP_PRICE,Base);

Кроме советника на графике есть еще что-нибудь? Даже если и нет, удаление может быть выполнено и с другого графика.

Причина обращения: