Вертикальная линия. - страница 2

 
Alexey Viktorov:

Вы уж определитесь как-то что вам надо...

Если надо смешано, только иногда убрать соединения между двумя вертикальными участками зигзага, то лучше взять цветной зигзаг и местами, по условию назначать отсутствие цвета.

Да и вообще не помешает прочесть весь раздел документации о графических построениях. Будет хоть какое-то представление что можно сделать...

"Начал делать индикатор, который будет отрисовать линий, между двумя пунктами по времени и цене...

Все хорошо, но иногда время пунктов может быть и в одной свече..."

Мой косяк что при описание использовал слово линия а не отрезки. Надо было мне сразу вставить картинку.

Спасибо, попробую цветной зигзаг, это будет, думаю, проще чем делать дополнительный буфер для наклонного отрезка.
 
Alexey Viktorov:

Если надо смешано, только иногда убрать соединения между двумя вертикальными участками зигзага, то лучше взять цветной зигзаг и местами, по условию назначать отсутствие цвета.

Ну не как не получается мне вставить отсутствие цвета в цветной зигзаг. Если не трудно (думаю для вас это не заимет боле 5 минут), можете назначать отсутствие цвета в данном примере? Прикрепил картинку какие линии должны пропасть.


#property indicator_chart_window
#property indicator_buffers 3
#property indicator_plots   1
//--- plot ZigZag
#property indicator_label1  "ZigZag"
#property indicator_type1   DRAW_COLOR_ZIGZAG
#property indicator_color1  clrRed,clrYellow
#property indicator_style1  STYLE_SOLID
#property indicator_width1  10
//--- input параметры
//--- indicator buffers
double         ZigZagBuffer1[];
double         ZigZagBuffer2[];

int            color_sections;
double         Color_ZigzagColors[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- связывание массивов и индикаторных буферов
   SetIndexBuffer(0,ZigZagBuffer1,INDICATOR_DATA);
   SetIndexBuffer(1,ZigZagBuffer2,INDICATOR_DATA);
   SetIndexBuffer(2,Color_ZigzagColors,INDICATOR_COLOR_INDEX);
   color_sections=0; 

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   int limit=prev_calculated;
   if(prev_calculated==0)limit=rates_total-1;

   for(int i2=limit;i2<rates_total;i2++) // recalculate on new bar
     {
      for(int i=0;i<rates_total;i++)
        {
         if(i==rates_total-3 || i==rates_total-12 ||  i==rates_total-18) // Test VLines and TLines! 
           {
            ZigZagBuffer1[i]=high[i];
            Color_ZigzagColors[i]=color_sections;
           }
         else
           {
            ZigZagBuffer1[i]=EMPTY_VALUE;
           }

         if(i==rates_total-7 || i==rates_total-12 || i==rates_total-20) // Test VLines and TLines!   
           {
            ZigZagBuffer2[i]=low[i];
            Color_ZigzagColors[i]=color_sections;
           }
         else
           {
            ZigZagBuffer2[i]=EMPTY_VALUE;
           }

        }
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Nauris Zukas:

Ну не как не получается мне вставить отсутствие цвета в цветной зигзаг. Если не трудно (думаю для вас это не заимет боле 5 минут), можете назначать отсутствие цвета в данном примере? Прикрепил картинку какие линии должны пропасть.


1.

#property indicator_color1  clrRed,clrNone

2.

Color_ZigzagColors[i]=0;

Цвет будет красный

Color_ZigzagColors[i]=1;

Цвет будет отсутствовать.

А переменная

int            color_sections;
совсем лишняя.
 
Alexey Viktorov:

1.

2.

Цвет будет красный

Цвет будет отсутствовать.

А переменная

совсем лишняя.

Спасибо, но мне не получается это применить в уровне функций, что там в функциях надо добавить или убрать чтобы пропали эти линий? Как внедрить здесь clrNone?

         if(i==rates_total-3 || i==rates_total-12 ||  i==rates_total-18) // Test VLines and TLines! 
           {
            ZigZagBuffer1[i]=high[i];
            Color_ZigzagColors[i]=0;
           }
         else
           {
            ZigZagBuffer1[i]=EMPTY_VALUE;
           }

         if(i==rates_total-7 || i==rates_total-12 || i==rates_total-20) // Test VLines and TLines!   
           {
            ZigZagBuffer2[i]=low[i];
            Color_ZigzagColors[i]=0;
           }
         else
           {
            ZigZagBuffer2[i]=EMPTY_VALUE;
           }
           
 
Nauris Zukas:

Спасибо, но мне не получается это применить в уровне функций, что там в функциях надо добавить или убрать чтобы пропали эти линий? Как внедрить здесь clrNone?

В одном месте 0 в другом 1

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Вертикальная линия.

Alexey Viktorov, 2018.10.12 17:29

Color_ZigzagColors[i]=0;

Цвет будет красный

Color_ZigzagColors[i]=1;

Цвет будет отсутствовать.

А в вашем коде в двух случаях одинаково

Color_ZigzagColors[i]=0;


 
Alexey Viktorov:

В одном месте 0 в другом 1

А в вашем коде в двух случаях одинаково


Вот что получается ( я место clrNone поставил clrYellow, чтобы было наглядней). Место того чтобы пропали связующие линий (отметил синим крестиками)  пропадает и еще и средняя вертикальная линия (обвел красным) . Поэтому я полагаю что что-то не так уже в уровне функций.


 
Nauris Zukas:

Вот что получается ( я место clrNone поставил clrYellow, чтобы было наглядней). Место того чтобы пропали связующие линий (отметил синим крестиками)  пропадает и еще и средняя вертикальная линия (обвел красным) . Поэтому я полагаю что что-то не так уже в уровне функций.


Предоставьте код и рисунок не от руки, а линии нарисованные индикатором. Возможность рисовать вертикальные участки зигзага появилась совсем недавно. В том обсуждении участвовал Рашид Умаров, с его подачи и было внесено такое изменение. Если этот вариант подтвердится, то пригласим Рашида.

 
Alexey Viktorov:

Предоставьте код и рисунок не от руки, а линии нарисованные индикатором. Возможность рисовать вертикальные участки зигзага появилась совсем недавно. В том обсуждении участвовал Рашид Умаров, с его подачи и было внесено такое изменение. Если этот вариант подтвердится, то пригласим Рашида.


Файлы:
 
Nauris Zukas:


Интересно, при таких толстых линиях выглядит как вручную нарисованные линии...

@Rashid Umarov

В одной из тем, Вы участвовали в обсуждении невозможности провести вертикальную линию DRAW_ZIGZAG. Пример в предыдущем сообщении. После этого обсуждения были внесены изменения и такая возможность появилась. Вот теперь выявилась другая проблемка с DRAW_COLOR_ZIGZAG, просто невозможно задать цвет последовательно каждому отрезку. Может быть есть возможность исправить и этот недостаток графического отображения?

 
Alexey Viktorov:

Интересно, при таких толстых линиях выглядит как вручную нарисованные линии...

@Rashid Umarov

В одной из тем, Вы участвовали в обсуждении невозможности провести вертикальную линию DRAW_ZIGZAG. Пример в предыдущем сообщении. После этого обсуждения были внесены изменения и такая возможность появилась. Вот теперь выявилась другая проблемка с DRAW_COLOR_ZIGZAG, просто невозможно задать цвет последовательно каждому отрезку. Может быть есть возможность исправить и этот недостаток графического отображения?

Если и будет - то не скоро. Это где-то на сотом месте будет, как далеко неприоритетная задача.

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