Индикатор из прерывистых линий.

 

Уважаемый господа, прошу вашей помощи в написании индикатора

Не получается и не знаю как сделать индикатор состоящий из прерывистых линий.

 

Если прописать DRAW_LINE, то индикатор соединяет линие только соседние бары, например бар с индексом i и i+1 (или  i-1)         Если попробовать соединить с баром i+2 то линяя вообще пропадает с графика.

    SetIndexStyle(1,DRAW_LINE,0,3,clrDeepPink);

Если прописать DRAW_SELECTION, то соединяются все непустые значения индикатора, образуя неприрывистую линию.

 

Мне необходимо сделать так чтоб линией соединялись отдельные фрагменты. 

Например как на рисунке.

 

 
Нужно вычислить значение линии на каждом баре, где будет линия. Крайних точек недостаточно, хотя можно и объектами рисовать, если буферы заполнять необязательно.
 
dr0:

Уважаемый господа, прошу вашей помощи в написании индикатора. 

Не получается и не знаю как сделать индикатор состоящий из прерывистых линий.

 

Если прописать DRAW_LINE, то индикатор соединяет линие только соседние бары, например бар с индексом i и i+1 (или  i-1)         Если попробовать соединить с баром i+2 то линяя вообще пропадает с графика.

    SetIndexStyle(1,DRAW_LINE,0,3,clrDeepPink);

Если прописать DRAW_SELECTION, то соединяются все непустые значения индикатора, образуя неприрывистую линию.

 

Мне необходимо сделать так чтоб линией соединялись отдельные фрагменты. 

Например как на рисунке.

А DRAW_ZIGZAG не пробовали?

А ещё можно попробовать через DRAW_SECTION, но ненужный буфер заполнять EMPTY_VALUE.

Если зигзагом не получается, обьект TrendLine (OBJ_TREND) надо создавать для каждой линии, имя обьекта - время открытия бара, на котороый приходится начало линии, так как обьектов будет мноооого.



 
evillive:

А DRAW_ZIGZAG не пробовали?

Если зигзагом не получается, обьект TrendLine (OBJ_TREND) надо создавать для каждой линии, имя обьекта - время открытия бара, на котороый приходится начало линии, так как обьектов будет мноооого.




Как нарисовать графикй, я понимаю. Это слишком просто.=))

 

Как с ZIGZAG можете подсказать пример кода? Я так с ним не разобрался. Там каких два масива нужно объявлять.  

 
ЗЗ не получится. Известно же кол-во баров, и разница в пунктах между крайними точками. Рассчитать разницу на 1 бар, и заполнить значение буфера на протяжении всей линии.
 
valeryk:
ЗЗ не получится. Известно же кол-во баров, и разница в пунктах между крайними точками. Рассчитать разницу на 1 бар, и заполнить значение буфера на протяжении всей линии.


Нашел пример индикатора где используется DRAW_ZIGZAG  - это то же самое что SELECTION, только с двумя буферами.   Непустые значения соединяются линиями.

 

Видимо прийдется делать как вы советуете. Спасибо.

 

Еще вопрос 

В Хелпе упоминаются фразы про доп. массив где будет хранится цвет индикатора на определенном баре. Это работает только в MQL5 ? или на 4й версии можно реализовать? 

 
dr0:


Нашел пример индикатора где используется DRAW_ZIGZAG  - это то же самое что SELECTION, только с двумя буферами.   Непустые значения соединяются линиями.

 

Видимо прийдется делать как вы советуете. Спасибо.

 

Еще вопрос 

В Хелпе упоминаются фразы про доп. массив где будет хранится цвет индикатора на определенном баре. Это работает только в MQL5 ? или на 4й версии можно реализовать? 

 

 

 

 

 

 



Я пока не сталкивался, вроде как можно. Но в данном примере судя по графику удобней иметь 2 буфера, отдельно поддержка и отдельно сопротивление.
 
И чем обычные машки не нравятся. Их точно так же можно делать прерывистыми. Самое главное - ничего сложного и всегда работает
Причина обращения: