Раскраска свечей

 
Всем добрый день.
Ищу индикатор для раскраски свечей по длине. Например чтобы можно было задать параметры при которых все свечи будут одно цвета, а свечи которые имеют длину от 80 пунктов до 100 пунктов другого цвета и от 100 до 200 ... Делал ли кто-нибудь подобный индикатор или видел?
 
Lyubomyr >>:
Всем добрый день.
Ищу индикатор для раскраски свечей по длине. Например чтобы можно было задать параметры при которых все свечи будут одно цвета, а свечи которые имеют длину от 80 пунктов до 100 пунктов другого цвета и от 100 до 200 ... Делал ли кто-нибудь подобный индикатор или видел?


Как вариант могу Вам предложить раскрашивать не свечи, а рисовать гистограмму, у которой цвет каждого  штриха соответствует той или иной длине каждого бара и находится под соответствующим баром. Предлагаю Вам на рассмотрение индикатор, который рисует гистограмму по системе Алекса Элдера - зеленый - бай, красный - селл... меняйте условия на свои и вперед...

//--------------------------------------------------------------------
// impuls.mq4 
//--------------------------------------------------------------- 1 --
#property copyright "Copyright © Roman Shiredchenko, 2009"
//--------------------------------------------------------------------
#property indicator_separate_window     // индикатор рисуется в отдельном окне

#property  indicator_buffers 3          // кол-во буферов для расчета индикатора     
#property  indicator_color1  Gray       // запрет на продажу либо покупку снят
#property  indicator_color2  Green      // запрет на игру на понижение 
#property  indicator_color3  Red        //  запрет на игру на повышение

//---- indicator parameters 
extern int History    =5000;            // кол-во баров расчетной истории       
extern int Period_Ema=13;               // период расчетной ема

extern int Period_Macd1=12;             // параметры расчета масди 
extern int Period_Macd2=26;
extern int Period_Macd3=9;
 
 
 
 
double     ExtBuffer0[];                // определение массивов для индикатора - гистограммы
double     ExtBuffer1[];
double     ExtBuffer2[];
//+------------------------------------------------------------------+ 
//| Custom indicator initialization function                         | 
//+------------------------------------------------------------------+ 
int init() 
  { 

   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexStyle(2,DRAW_HISTOGRAM);

   SetIndexBuffer(0,ExtBuffer0);
   SetIndexBuffer(1,ExtBuffer1);
   SetIndexBuffer(2,ExtBuffer2);

   IndicatorShortName("impuls");
//---- initialization done
   return(0);
  } 
//+------------------------------------------------------------------+ 
//| Custor indicator deinitialization function                       | 
//+------------------------------------------------------------------+ 
int deinit() 
  { 
//---- TODO: add your code here 
    
//---- 
   return(0); 
  } 
//----------------------------------------------------------------

int start()                         // Специальная функция start()
  {
//-----------------------------------------------------------------
  
   double
   EMA1,  EMA2, SumEMA;                  // 2 МА для расчета значений индикатора EMA
   double
   M_0, M_1, SumMacd ;                           // Значение MAIN MACD на 0 и 1 барах
   
//--------------------------------------------------------------- 4 --
                      
                             
   int
   i,                            // Индекс бара
   n,                            // Формальн. параметр(индекс бара)
   Counted_bars;                 // Количество просчитанных баров 

//-------------------------------------------------------------- 10 --
   Counted_bars=IndicatorCounted(); // Количество просчитанных баров 
   i=Bars-Counted_bars-1;           // Индекс первого непосчитанного
   if (i>History-1)                 // Если много баров то ..
      i=History-1;                  // ..рассчитывать заданное колич.
//-------------------------------------------------------------- 11 --
      ExtBuffer1[i] = 0;            // обнуление значений массивов линий индикатора
      ExtBuffer2[i] = 0;
      ExtBuffer0[i] = 0;
   while(i>=0)                      // Цикл по непосчитанным барам
     {
      //-------------------------------------------------------- 12 --
        
      EMA1=iMA(NULL,0,Period_Ema,0,MODE_EMA,PRICE_CLOSE,i); // Значение  EМА1 current
      EMA2=iMA(NULL,0,Period_Ema,0,MODE_EMA,PRICE_CLOSE,i+1); // Значение  EМА2  prev 
      SumEMA = 0;
      SumEMA = EMA1 - EMA2;          // вычисление разности ема на тек. и предыдущем барах
           
      M_0=iMACD(NULL,0,Period_Macd1,Period_Macd2,Period_Macd3,PRICE_CLOSE,MODE_MAIN,i); // 
      M_1=iMACD(NULL,0,Period_Macd1,Period_Macd2,Period_Macd3,PRICE_CLOSE,MODE_MAIN,i+1); // 
      SumMacd=M_0-M_1;               // тоже самое для макда
      
      ExtBuffer1[i] = 0;
      ExtBuffer2[i] = 0;
      ExtBuffer0[i] = 0;
      
       
      if (SumEMA>0 && SumMacd>0) ExtBuffer1[i] = 4; // если и ема и масди растут, то рисуй зеленую линию гистограммы равную 4
      if (SumEMA<0 && SumMacd<0)      // если ема и макди уменьшаются, то рисуй красную лин гистограммы равную 2 
       { ExtBuffer2[i] = 2;
       } else
        ExtBuffer0[i] = 3;            // иначе рисуй серую линию гистограммы индикатора импульс
        
             
      //-------------------------------------------------------- 13 --
      i--;                          // Расчёт индекса следующего бара
      //-------------------------------------------------------- 14 --
     }
   return;                          // Выход из спец. ф-ии start()
  }
//-------------------------------------------------------------- 15 --
 
Roman. >>:


Как вариант могу Вам предложить раскрашивать не свечи, а рисовать гистограмму, у которой цвет каждого штриха соответствует той или иной длине каждого бара и находится под соответствующим баром. Предлагаю Вам на рассмотрение индикатор, который рисует гистограмму по системе Алекса Элдера - зеленый - бай, красный - селл... меняйте условия на свои и вперед...


Спасибо но нужно перекрасить свечи и только по длине от хая до лоу.

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