Индикатор основанный на величине свечи и ATR

 

Здравствуйте. Помогите пожалуйста реализовать простую идею в индикаторе
Собственно идея:

индикатор в виде гистограммы:

- если величина бара (от high до low)  >  значения ATR (берутся 2-3 цифры после нулей в зависимости от 4-х, 5-ти знака)  рисуется столбик одного цвета.
- если величина бара (от high до low)  <  значения ATR   рисуется столбик  другого цвета.

 

Возможно совместить данную идею с этим индикатором ? (может проще будет)
 

Файлы:
barmed.mq4  1 kb
 
Отчего не помочь. Реализуйте, поможем. 
 
Эх, если бы понимал этот mql4. Сижу читаю учебник - мозг кипит - совсем не математический склад ума.
 Можете совместить индикатор barmed и ATR? При обычном наложении возникает проблема масштаба.
 
aktiv:
Эх, если бы понимал этот mql4. Сижу читаю учебник - мозг кипит - совсем не математический склад ума.
 Можете совместить индикатор barmed и ATR? При обычном наложении возникает проблема масштаба.


проблема решена
 

пока получаеться только так: (только используется не ATR а мувинг (такие же значения получаются)

 

Файлы:
 

подскажите, как  реализовать:


-если гистограмма barmed (величина свечи)  закрылась выше мувинга - окрашивает столбик в один цвет

-если гистограмма barmed (величина свечи)  закрылась ниже мувинга - в другой.

//+------------------------------------------------------------------+
//|                                                    Barmed_MA.mq4 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Blue
#property indicator_color2 Red
#property indicator_width1 3
#property indicator_width2 3


extern int       Shift=0;
extern int       NumBars=1;
extern int       PeriodMA=14;

double ExtMapBuffer1[];
double ExtMapBuffer2[];

int init()
  {
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
  // for(int i=1;i<11;i++)   
  //    SetLevelValue(i, 5*i);
  }

int deinit(){}

int start()
  {
   int limit=Bars-IndicatorCounted();
   double prec=1.0;
   if(5.0-MarketInfo("EURUSD",MODE_POINT)>0.5) prec=10.0;
   for(int i=0; i<limit; i++){
      double sum=0.0;
      for(int z=0; z<NumBars; z++) sum+=High[i+z+Shift]-Low[i+z+Shift];
      ExtMapBuffer1[i]=sum/NumBars/MarketInfo(Symbol(),MODE_POINT)/prec;
      }
   for( i=0; i<limit; i++){
       ExtMapBuffer2[i]=iMAOnArray(ExtMapBuffer1,0,PeriodMA,0, MODE_SMA, i);
      }    
  }

 Пробую создать условие, но это лишь закрашывает всю гистограмму в один цвет.

 

Стукнись в скайп.

тебе нужен еще один буфер, один для одного цвета, другой для другого, в один пишешь значение,  а в другой либо то же значение либо 0 в зависимости от условия.

 

Конечно  смотря на  каком графике работать надо по этому индикатору,а думаю что на часовике.



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