Этот форум переведен в режим чтения, просим обсуждать вопросы на форумах MQL4.community и MQL5.community

Ошибка в программе или ошибка во мне?


К списку тем
avatar
17
Danissimo 15.11.2008 01:41 

Задача:

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

Решение задачи:

int init()
{InitLines(); return(0);}
int deinit()
{return(0);}
int start()
{return(0);}
//----
void InitLines()
{
int lines;
string object_name;
lines=ObjectsTotal(OBJ_HLINE);

if (UninitializeReason()!=3 && lines!=0)
{
for (int i=0; i<ObjectsTotal(); i++)
{
object_name=ObjectName(i);
if (ObjectType(object_name)==OBJ_HLINE) ObjectDelete(object_name);
}
}
return;
}

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

Проблема:

Ни советник, ни скрипт не удаляют горизонтальные линии с графика полностью

Прикрепленные файлы:
  del_obj.mq4 (1.70 KB)
avatar
3289
Rosh 15.11.2008 11:13 

Стандартная, уже ставшая классической, ошибка в организации цикла обхода объектов. Нужно:

for (int i=ObjectsTotal()-1; i>=0; i--)
avatar
17
Danissimo 15.11.2008 23:10 

Спасибо.

Забавно, что я попался на классике :-))))))

К списку тем  
Скачай MetaTrader 5 (300 Кб, веб-установщик) — новый терминал для финансовых рынков