//+--------------------------------------------------------------------------------------+
//                                                                KG Daily BS Bands      |
//                                                              Copyright © KG 2009      |
//+--------------------------------------------------------------------------------------+
#property copyright "© KG 2009"                                    
#property link      "http://www.freedom.com"
//----
#define major 1
#define minor 0
//----
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1  Magenta
#property indicator_color2  Magenta
#property indicator_color3  Magenta
extern bool   ShowPrice=true;

//----
int Periode = 24;
double HiPrice, LoPrice;
double HiPriceNow, LoPriceNow;
datetime StartTime;

//----
double UpperBuf[];
double LowerBuf[];
double MiddleBuf[];
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void init()
  {       
   SetIndexStyle(0, DRAW_LINE, STYLE_DASHDOTDOT);
   SetIndexStyle(1, DRAW_LINE, STYLE_DASHDOTDOT);
   SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 2);
//----   
   SetIndexDrawBegin(0, Periode);
   SetIndexDrawBegin(1, Periode);
   SetIndexDrawBegin(2, Periode);
//----
   SetIndexBuffer(0, UpperBuf);
   SetIndexBuffer(1, LowerBuf);
   SetIndexBuffer(2, MiddleBuf);
   
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void deinit() 
  {
   ObjectDelete("UpperBufW");
   ObjectDelete("LowerBufW");
   ObjectDelete("MiddleBufW");
   ObjectDelete("W Buyer Balance");
   ObjectDelete("W BS Balance");
   ObjectDelete("W Seller Balance");
   return (0);
//----
  }  
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void start() 
  {
   int counted = IndicatorCounted();
//----
   if(counted < 0) 
       return (-1);
//----  
   if(counted > 0) 
       counted--;
   int limit = Bars - counted;
   
   int shift;	
	
//----  
   for(int i = 0; i < limit; i++) 
     {
       shift	= iBarShift(NULL,PERIOD_W1,Time[i]);
       HiPriceNow	= iHigh (NULL,PERIOD_W1,shift);
	    LoPriceNow	= iLow (NULL,PERIOD_W1,shift);
	    shift	      = iBarShift(NULL,PERIOD_W1,Time[i]) + 1;	// yesterday
	    HiPrice		= iHigh (NULL,PERIOD_W1,shift);
	    LoPrice		= iLow (NULL,PERIOD_W1,shift);
       StartTime	= iTime(NULL,PERIOD_W1,shift);
       if(HiPriceNow > HiPrice) 
	    {  
    	   HiPrice = HiPriceNow;
    	 }
	
	    if(LoPriceNow < LoPrice)
	    {
   	   LoPrice = LoPriceNow; 
	    }
       UpperBuf[i] = HiPrice;
       LowerBuf[i] = LoPrice;                          
     }
   for(i = 0; i < limit; i++) 
     { 
         MiddleBuf[i]=(UpperBuf[i]+LowerBuf[i])/2;         
     }
   for(i = 0; i < limit; i++) 
     {
       UpperBuf[i] = (UpperBuf[i]+MiddleBuf[i])/2;
       LowerBuf[i] = (LowerBuf[i]+MiddleBuf[i])/2;                         
     }  
//---- 
     if (ShowPrice)
   {
   string label1 = "UpperBufW";
   ObjectDelete(label1);
   ObjectCreate( label1, OBJ_ARROW, 0, 0, 0 );
   ObjectSet( label1, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
   ObjectSet( label1, OBJPROP_COLOR, Magenta);
   ObjectSet( label1, OBJPROP_TIME1, Time[0]);
   ObjectSet( label1, OBJPROP_PRICE1, UpperBuf[0]);
   
   string label2 = "LowerBufW";
   ObjectDelete(label2);
   ObjectCreate( label2, OBJ_ARROW, 0, 0, 0 );
   ObjectSet( label2, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
   ObjectSet( label2, OBJPROP_COLOR, Magenta);
   ObjectSet( label2, OBJPROP_TIME1, Time[0]);
   ObjectSet( label2, OBJPROP_PRICE1, LowerBuf[0]);
   
   string label3 = "MiddleBufW";
   ObjectDelete(label3);
   ObjectCreate( label3, OBJ_ARROW, 0, 0, 0 );
   ObjectSet( label3, OBJPROP_ARROWCODE, SYMBOL_RIGHTPRICE);
   ObjectSet( label3, OBJPROP_COLOR, Magenta);
   ObjectSet( label3, OBJPROP_TIME1, Time[0]);
   ObjectSet( label3, OBJPROP_PRICE1, MiddleBuf[0]);
   
   string label4 = "W Buyer Balance";   
   ObjectCreate(label4, OBJ_TEXT, 0, Time[0], UpperBuf[0]);
   ObjectSetText(label4, label4, 7, "Times New Roman", Magenta);
   ObjectSet(label4, OBJPROP_TIME1, Time[0]);
   ObjectSet(label4, OBJPROP_PRICE1, UpperBuf[0]);
   ObjectSetText(label4, label4, 7, "Times New Roman", Magenta);
   
   string label5 = "W Seller Balance";   
   ObjectCreate(label5, OBJ_TEXT, 0, Time[0], LowerBuf[0]);
   ObjectSetText(label5, label5, 7, "Times New Roman", Magenta);
   ObjectSet(label5, OBJPROP_TIME1, Time[0]);
   ObjectSet(label5, OBJPROP_PRICE1, LowerBuf[0]);
   ObjectSetText(label5, label5, 7, "Times New Roman", Magenta);
   
   string label6 = "W BS Balance";   
   ObjectCreate(label6, OBJ_TEXT, 0, Time[0], MiddleBuf[0]);
   ObjectSetText(label6, label6, 7, "Times New Roman", Magenta);
   ObjectSet(label6, OBJPROP_TIME1, Time[0]);
   ObjectSet(label6, OBJPROP_PRICE1, MiddleBuf[0]);
   ObjectSetText(label6, label6, 7, "Times New Roman", Magenta);
        

   }  
  }
//+------------------------------------------------------------------+


