Разноцветные свечи

 

Делаю индикатор с разноцветными свечами. При этом пытаюсь по максимуму избавиться от #property.

Не получается обойтись без #property indicator_color1. Если убрать то можно использовать только 1 цвет.

Кто-нибудь справился с этим? 

 
Timur Gatin:

Делаю индикатор с разноцветными свечами. При этом пытаюсь по максимуму избавиться от #property.

Не получается обойтись без #property indicator_color1. Если убрать то можно использовать только 1 цвет.

Кто-нибудь справился с этим? 

Смотрели пример в справке (mql5)?
 
Tapochun:
Смотрели пример в справке (mql5)?
Смотрел. Там явно про это не сказано. Просто пишут что сначала создают #property на 8 цветов.
 
Timur Gatin:
Смотрел. Там явно про это не сказано. Просто пишут что сначала создают #property на 8 цветов.
//+------------------------------------------------------------------+
//| Изменяет цвет отрезков свечей                                    |
//+------------------------------------------------------------------+
void  ChangeColors(color  &cols[],int plot_colors)
  {
//--- количество цветов 
   int size=ArraySize(cols);
//--- 
   string comm=ChartGetString(0,CHART_COMMENT)+"\r\n\r\n";
 
//--- для каждого цветового индекса зададим новый цвет случайным образом
   for(int plot_color_ind=0;plot_color_ind<plot_colors;plot_color_ind++)
     {
      //--- получим случайное число
      int number=MathRand();
      //--- получим индекс в массиве col[] как остаток от целочисленного деления
      int i=number%size;
      //--- установим цвет для каждого индекса как свойство PLOT_LINE_COLOR
      PlotIndexSetInteger(0,                    //  номер графического стиля
                          PLOT_LINE_COLOR,      //  идентификатор свойства
                          plot_color_ind,       //  индекс цвета, куда запишем цвет
                          cols[i]);             //  новый цвет
      //--- запишем цвета
      comm=comm+StringFormat("CandleColorIndex[%d]=%s \r\n",plot_color_ind,ColorToString(cols[i],true));
      ChartSetString(0,CHART_COMMENT,comm);
     }
//---
Вроде это...
 
Tapochun:
Вроде это...

Смотрел этот пример.

Получше справку глянул пишут:

"Набор и количество цветов в специальном массиве цветов можно задавать директивой компилятора #property indicator_color, где через запятую указываются все необходимые цвета.

Похоже без #property не обойтись.

 
Timur Gatin:

Смотрел этот пример.

Получше справку глянул пишут:

"Набор и количество цветов в специальном массиве цветов можно задавать директивой компилятора #property indicator_color, где через запятую указываются все необходимые цвета.

Похоже без #property не обойтись.

Обойтись..) Например, установка двух цветов.

PlotIndexSetInteger( 0, PLOT_COLOR_INDEXES, 2 );
PlotIndexSetInteger( 0, PLOT_LINE_COLOR, 0, clrRed );
PlotIndexSetInteger( 0, PLOT_LINE_COLOR, 1, clrLime );
 
Проигнорировать то, что в #property и программно задать свои цвета можно, но во вкладке "цвета" все равно будут торчать цветовые образцы.
 
Tapochun:

Обойтись..) Например, установка двух цветов.

PlotIndexSetInteger( 0, PLOT_COLOR_INDEXES, 2 );

 Спасибо, то что нужно!