Как сделать что бы линия индикатора рисовалась только на некоторых участках?

 

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

и еще попутный вопрос, как над определенным баром нарисовать символ или цифру?

Всем заранее за ответы, подойдут даже ссылочки, сорри если вопрос кажеться глупым я тока начал в этом разбираться! Всем заранее спасибо за понимание! 

 

В init(), где буферам присваиваются массивы и устанавливаются их причиндалы, нужно указать "пустое значение" для буфера равное 0. Тогда линия не будет срываться к нулю, а просто не будет рисоваться на пустых значениях.

   SetIndexEmptyValue(0,0.0);
 

Дополнение: кажись, можно еще незаполняемые значения устанавливать в EMPTY_VALUE. Но я не проверял.

 

Так, сделал так SetIndexEmptyValue(0,0.0); срывать перестало, но теперь соеденяет конечные точки нужных участков прямой линией %)! 

И еще нащел как делать текстовые метки, а как сделать что бы при удалении или обновлении индикатора старые метки стерались?

 
sergusfx007 >>:

Так, сделал так SetIndexEmptyValue(0,0.0); срывать перестало, но теперь соеденяет конечные точки нужных участков прямой линией %)!

? Наверное, у вас стиль стоит не DRAW_LINE, а сегмент.

И еще нащел как делать текстовые метки, а как сделать что бы при удалении или обновлении индикатора старые метки стерались?

В deinit() пропишите ObjectDelete("имя_объекта");

 
Svinozavr >>:

? Наверное, у вас стиль стоит не DRAW_LINE, а сегмент.

В deinit() пропишите ObjectDelete("имя_объекта");

Вот так стоит:

   SetIndexBuffer(0,Buf_0);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,2);
   SetIndexBuffer(1,Buf_1);
   SetIndexEmptyValue(1,0.0);  
   SetIndexStyle(1,DRAW_SECTION,STYLE_DOT,1);


А если там с 30 обьектов как все разом удалить ?
 
sergusfx007 >>:
А если там с 30 обьектов как все разом удалить ?


Может есть какой то цикл по обьектам с помощью которого их моно убрать ?
 

1. Как и предполагал - стоит DRAW_SECTION - так что все правильно, непустые точки будут соединяться. Поставьте DRAW_LINE, если это, конечно, подходит для логики индикатора.

2. Если напишите цикл - так и будет. Сам по себе он не существует.

===

Вообще, в учебнике это все есть.

 
Svinozavr >>:

1. Как и предполагал - стоит DRAW_SECTION - так что все правильно, непустые точки будут соединяться. Поставьте DRAW_LINE, если это, конечно, подходит для логики индикатора.

2. Если напишите цикл - так и будет. Сам по себе он не существует.

===

Вообще, в учебнике это все есть.


ОК спасибо, учебник то да но не всегда там понятна мысль автора! Но всеравно спасибо! Сейчас попробую какой нить цикл придумать еххх ... как их блин тока все обьекты найти ?
 
Подскажите плиз как получить список обьектов ??
 

Заходишь в помощь, в "Графические объекты", и читаешь про все функции работы с объектами. Здесь тебе потребуются ObjectsTotal() и ObjectName().

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