//+------------------------------------------------------------------+
//| i4_GoldenLionTrend_v3
//| goldenlion@ukr.net
//| http://GlobeInvestFund.com/
//+------------------------------------------------------------------+
#property copyright "Copyright c 2006,      http://GlobeInvestFund.com/,     goldenlion@ukr.net"
#property link      "http://GlobeInvestFund.com/"


#property indicator_chart_window
#property indicator_buffers 4
#property indicator_color1 LightBlue
#property indicator_color2 Pink
#property indicator_color3 Blue
#property indicator_color4 Red


//---- input parameters
extern int MyPeriod=24;

extern double Dev1=1;
extern double Dev2=2;

//---- buffers
double val1[];
double val2[];

double val3[];
double val4[];

double bh1, bl1, bh2, bl2, bm, bh3, bl3;


//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   string short_name;
//---- indicator line
   IndicatorBuffers(4);
   
   SetIndexStyle(0,DRAW_HISTOGRAM,EMPTY,2);
   SetIndexStyle(1,DRAW_HISTOGRAM,EMPTY,2);
   
   SetIndexStyle(2,DRAW_HISTOGRAM,EMPTY,2);
   SetIndexStyle(3,DRAW_HISTOGRAM,EMPTY,2);

   SetIndexBuffer(0,val1);
   SetIndexBuffer(1,val2);

   SetIndexBuffer(2,val3);
   SetIndexBuffer(3,val4);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| SilverTrend                                                      |
//+------------------------------------------------------------------+
int start()
  {   
   int i1,i2,K;
   double Range,AvgRange,smin,smax,SsMax,SsMin,price;
   bool uptrend,old;
  int shift, ii, counted_bars=IndicatorCounted();
  double V1, V2;

//----
   if( Bars <= MyPeriod ) return(0);
 
   shift=Bars-MyPeriod*1.1;

  if( counted_bars >= MyPeriod ) shift=Bars-counted_bars; 


while(shift>=0)
{ 
  bm  = iBands(NULL,0,MyPeriod,0,0,PRICE_CLOSE,MODE_UPPER,shift); 

  bh1 = iBands(NULL,0,MyPeriod,Dev1,0,PRICE_CLOSE,MODE_UPPER,shift);
  bl1 = iBands(NULL,0,MyPeriod,Dev1,0,PRICE_CLOSE,MODE_LOWER,shift);

  bh2 = iBands(NULL,0,MyPeriod,Dev2,0,PRICE_CLOSE,MODE_UPPER,shift);
  bl2 = iBands(NULL,0,MyPeriod,Dev2,0,PRICE_CLOSE,MODE_LOWER,shift);


  val1[shift]=0; 
  val2[shift]=0;

  val3[shift]=0; 
  val4[shift]=0;

if( Low[shift] > bh1 )
   {
   val1[shift]=High[shift]; 
   val2[shift]=Low[shift];
   }


if( High[shift] < bl1 )
   {
   val1[shift]=Low[shift];
   val2[shift]=High[shift];
   }



if( Low[shift] > bh2 )
   {
   val1[shift]=0; 
   val2[shift]=0;
   val3[shift]=High[shift]; 
   val4[shift]=Low[shift];
   }


if( High[shift] < bl2 )
   {
   val1[shift]=0; 
   val2[shift]=0;
   val3[shift]=Low[shift];
   val4[shift]=High[shift];
   }


   shift--;

}
   return(0);
  }
//+------------------------------------------------------------------+