//--------------------------------------------------------------------
// i_Model_Fractal.mq4
//--------------------------------------------------------------------
#property copyright "Copyright © 2008, BiViSi Corp."
#property link      "riderfin@bk.ru"
#property link      "ICQ 499494112"

#property indicator_chart_window    // Индик. рисуется в основном окне
#property indicator_buffers 2       // Количество буферов
#property indicator_color1 DeepSkyBlue       // Цвет фрактала вверх
#property indicator_color2 Red               // Цвет фрактала вниз
double Fractal_Up[],Fractal_Dn[]; // Объявление массивов (под буферы индикатора)
static datetime PrevTimeIndCount;
//--------------------------------------------------------------------
int init() 
{
   SetIndexBuffer(0,Fractal_Up);
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,159);
   SetIndexBuffer(1,Fractal_Dn);
   SetIndexStyle(1,DRAW_ARROW); 
   SetIndexArrow(1,159);          
   SetIndexEmptyValue(0,0.0); SetIndexEmptyValue(1,0.0);
   PrevTimeIndCount=0;
   return;              
}
//--------------------------------------------------------------------
int start()
{
   if (PrevTimeIndCount==Time[0]) return; else PrevTimeIndCount=Time[0];
   int IC=IndicatorCounted();
   if (IC<100) int i=Bars-4; else i=3;
   //Comment (i);
   for (int x=i;x>2;x--)                    // Цикл по непосчитанным барам
      {
      if(High[x]>High[x-1] && High[x]>High[x-2] && High[x]>=High[x+1] && High[x]>=High[x+2]) Fractal_Up[x]=High[x];
      if(Low[x]<Low[x-1] && Low[x]<Low[x-2] && Low[x]<=Low[x+1] && Low[x]<=Low[x+2]) Fractal_Dn[x]=Low[x];
      }
   return;
}
//--------------------------------------------------------------------