[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 708

 

Любые обсуждения брокеров запрещены. Формулируйте вопросы таким образом, чтобы не затрагивать конкретные ДЦ. Например: "каковы правила выбора брокера", а затем ходИте и примеряйтесь - подходит Вам или не подходит.

 

Подскажите, есть ли возможность прикрутить фоновую "подложку" под индикатор?

По поиску найти не удалось...

 

И еще. Как правильно удалить все объекты, созданные индикатором? Просто перечислять их? 

 
Если на графике есть только объекты, созданные этим индикатором, то достаточно ObjectsDeleteAll(), а если надо удалять не все, то ObjectDelete() в цикле.
 
   for(int sd=100;sd>0;sd--)
   ObjectDelete("signal"+sd);
  
 for(int sd=0;sd<100;sd++)
 ObjectDelete("signal"+sd);
for(int sd=-1;sd<100;sd++)
ObjectDelete("signal"+sd);

Все вот эти оставляют "signal00", "signal01", "signal02" и т. д., все выше "signal10" убивается... Где туплю?

 

Почему бы просто не удалить все объекты с маской "signal"? Или есть объекты с подобными именами от других индюкаторов?

А вообще в таких случаях полезен Print(), чтобы видеть, что ты пытаешься удалить.

 
Mathemat:

А почему бы просто не удалить все объекты с маской "signal" (бех пробела)?

А вообще в таких случаях полезен Print(), чтобы видеть, что ты пытаешься удалить.

А потому что я до этого еще не додумался :)

Объекты создаются "по учебнику"

   for(int x=0;x<9;x++)
      for(int y=0;y<3;y++)
      {
         ObjectCreate("signal"+x+y,OBJ_LABEL,0,0,0,0,0);
         ObjectSet("signal"+x+y,OBJPROP_XDISTANCE,x*40+12);
         ObjectSet("signal"+x+y,OBJPROP_YDISTANCE,y*20+20);
         ObjectSetText("signal"+x+y,CharToStr(254),20,"Wingdings",Gold);

      }

Потом только содержимое по тикам меняется.

Сейчас попробую принт, все равно не понятно... для мт 01 не цифра что ли?

 
Abzasc:

Все вот эти оставляют "signal00", "signal01", "signal02" и т. д., все выше "signal10" убивается... Где туплю?



может быть совет будет "не в тему", нужно стремиться к уникальности... еще раз повторюсь, что "не в тему"... например, сам я добиваюсь уникальности через "дата" + ТФ +"префикс". может это "слишком тяжелый" вариант в конкретном случае, но при "расширении" - очень помогает.
 
Да уж, с удивлением вижу, что маску имени напрямую ввести нельзя. Это неудобно.
 
Abzasc:

И еще. Как правильно удалить все объекты, созданные индикатором? Просто перечислять их? 

void clear_object(string s) {
        for(int i=ObjectsTotal()-1; i>=0;i--) {
                string vName = ObjectName(i);
     if (StringFind(vName,s) !=-1) ObjectDelete(vName);
  }
}

удаляет все объекты содержащие строку s - у меня советник рисует стрелочки с именем "Arrow" + время - удаляю все стрелочки  clear_object("Arrow");
 
DDFedor:

может быть совет будет "не в тему", нужно стремиться к уникальности... еще раз повторюсь, что "не в тему"... например, сам я добиваюсь уникальности через "дата" + ТФ +"префикс". может это "слишком тяжелый" вариант в конкретном случае, но при "расширении" - очень помогает.


Да, так, наверное, и будет. Тут вот какая мысль. Индикатор создает таблицу, и в моем случае signal - это уже уникальная группа.

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