!_BZ_everyhour





//+------------------------------------------------------------------+ 
//|                                                | 
//|                                                                  | 
//|   Copyright © 2008, Avery T. Horton, Jr. aka TheRumpledOne       |
//|                                                                  |
//|   PO BOX 43575, TUCSON, AZ 85733                                 |
//|                                                                  |
//|   GIFTS AND DONATIONS ACCEPTED                                   | 
//|                                                                  |
//|   therumpledone@gmail.com                                         |  
//+------------------------------------------------------------------+ 

#property  copyright "Copyright © 2008, Avery T. Horton, Jr. aka TRO" 
#property  link      "http://www.therumpldone.com/" 



#property indicator_chart_window
//---- input parameters

extern int win = 0;
extern int price.x.offset= 250;//250
extern int price.y.offset= -160;//-190
extern bool show.info=true;

extern string    session_name = "";
extern color     session_color = White;
//extern int       open_time=8;
extern int       straddle_width=3;
extern int       channel=1;
extern color myColor = DarkGray ;

double open_price;
double rates_h1[2][6];
string OP, BZ, BZW, SZ, SZW;



//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators


  OP = "Open " + session_name;
  BZ = "Buy zone " + session_name;
  BZW = "Buy zone width " + session_name;
  SZ = "Sell zone " + session_name;
  SZW = "Sell zone width " + session_name;
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectDelete(OP);
   ObjectDelete(BZ);
   ObjectDelete(BZW);
   
   ObjectDelete(SZ);
   ObjectDelete(SZW);
   
   ObjectDelete(session_name);

   ObjectDelete("BZ_630");
   ObjectDelete("BZ_629");
   ObjectDelete("BZ_629B");
   ObjectDelete("BZ_631");
   ObjectDelete("BZ_632");
   ObjectDelete("BZ_634");

   
      
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
//----


   if( TimeHour(Time[0]) != TimeHour(Time[1]) ) 
     { 
        // draw the vertical bars that marks the time span
   double level= (High[1] + Low[1] + Close[1]) / 3;
   SetTimeLine("HourStart", "Hour", 0, White, level+10*Point);
     }
   
   
    open_price = iOpen(NULL,PERIOD_H1,0);  



	double LgTop = open_price +( straddle_width+channel)*Point ;	
   double LgBot = open_price + straddle_width*Point ;

   double ShTop = open_price - straddle_width*Point ;	
   double ShBot = open_price - (straddle_width+channel)*Point ; 


double LgProfit = ( iHigh(NULL,PERIOD_H1,0) -  LgTop ) / Point  ;
double ShProfit = ( ShBot - iLow(NULL,PERIOD_H1,0) )   / Point  ;

    if (ObjectFind(OP) != 0)
    
      {
      
      
          ObjectCreate(session_name,OBJ_TEXT,0,CurTime(),open_price+4*Point);
          ObjectSetText(session_name, session_name+"                                                                                                                                                        ",
                                                                                  8, "Arial",session_color);
      //    ObjectSet(session_name, OBJPROP_YDISTANCE, 100);
          
          
          ObjectCreate(OP, OBJ_HLINE, 0, CurTime(), open_price);
          ObjectSet(OP, OBJPROP_STYLE, STYLE_DOT);
          ObjectSet(OP, OBJPROP_COLOR, session_color);
          
          ObjectCreate(BZ, OBJ_HLINE, 0, CurTime(), LgBot );
          ObjectSet(BZ, OBJPROP_STYLE, STYLE_DASH);
          ObjectSet(BZ, OBJPROP_COLOR, Blue);
          
          ObjectCreate(BZW, OBJ_HLINE, 0, CurTime(), LgTop );
          ObjectSet(BZW, OBJPROP_STYLE, STYLE_DASH);
          ObjectSet(BZW, OBJPROP_COLOR, Blue);
          
          
          ObjectCreate(SZ, OBJ_HLINE, 0, CurTime(), ShTop);
          ObjectSet(SZ, OBJPROP_STYLE, STYLE_DASH);
          ObjectSet(SZ, OBJPROP_COLOR, Red);
          
          ObjectCreate(SZW, OBJ_HLINE, 0, CurTime(), ShBot);
          ObjectSet(SZW, OBJPROP_STYLE, STYLE_DASH);
          ObjectSet(SZW, OBJPROP_COLOR, Red);
          
          
      
       
      }
      
      else
      {
         ObjectMove(session_name,0,CurTime(),open_price+4*Point);
         ObjectMove(OP, 0, CurTime(), open_price);
         ObjectMove(BZ, 0, CurTime(), LgBot);
         ObjectMove(BZW, 0, CurTime(), LgTop); 
         ObjectMove(SZ, 0, CurTime(), ShTop);
         ObjectMove(SZW, 0, CurTime(), ShBot);
      
      }


   
   
//+------------------------------------------------------------------+ 
if (show.info) {    



   ObjectCreate("BZ_630", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("BZ_630","BUY ZONE", 30, "Arial Bold", Gray);
   ObjectSet("BZ_630", OBJPROP_CORNER, 0);
   ObjectSet("BZ_630", OBJPROP_XDISTANCE, 760+price.x.offset);
   ObjectSet("BZ_630", OBJPROP_YDISTANCE, 160+price.y.offset);
 
   ObjectCreate("BZ_629", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("BZ_629",DoubleToStr(LgTop,Digits), 15, "Arial Bold", Blue);
   ObjectSet("BZ_629", OBJPROP_CORNER, 0);
   ObjectSet("BZ_629", OBJPROP_XDISTANCE, 770+price.x.offset);
   ObjectSet("BZ_629", OBJPROP_YDISTANCE, 197+price.y.offset);
   
   ObjectCreate("BZ_629b", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("BZ_629b",DoubleToStr( ShBot ,Digits), 15, "Arial Bold", Red);
   ObjectSet("BZ_69b", OBJPROP_CORNER, 0);
   ObjectSet("BZ_629b", OBJPROP_XDISTANCE, 770+price.x.offset);
   ObjectSet("BZ_629b", OBJPROP_YDISTANCE, 260+price.y.offset);                 
                     
   ObjectCreate("BZ_631", OBJ_LABEL, win, 0, 0);//HiLow LABEL
   ObjectSetText("BZ_631",DoubleToStr(open_price,Digits), 30, "Arial Bold", White );
   ObjectSet("BZ_631", OBJPROP_CORNER, 0);
   ObjectSet("BZ_631", OBJPROP_XDISTANCE, 765+price.x.offset); // 765
   ObjectSet("BZ_631", OBJPROP_YDISTANCE, 215+price.y.offset); // 210
           
 
   ObjectCreate("BZ_632", OBJ_LABEL, win, 0, 0);
   ObjectSetText("BZ_632",DoubleToStr( LgProfit ,0), 15, "Arial Bold", LimeGreen);
   ObjectSet("BZ_632", OBJPROP_CORNER, 0);
   ObjectSet("BZ_632", OBJPROP_XDISTANCE, 860+price.x.offset);
   ObjectSet("BZ_632", OBJPROP_YDISTANCE, 197+price.y.offset);
                 
   ObjectCreate("BZ_634", OBJ_LABEL, win, 0, 0);
   ObjectSetText("BZ_634",DoubleToStr( ShProfit ,0), 15, "Arial Bold", Crimson);
   ObjectSet("BZ_634", OBJPROP_CORNER, 0);
   ObjectSet("BZ_634", OBJPROP_XDISTANCE, 860+price.x.offset);
   ObjectSet("BZ_634", OBJPROP_YDISTANCE, 260+price.y.offset);    
    
/*   
   ObjectCreate("BZ_634a", OBJ_LABEL, win, 0, 0);
   ObjectSetText("BZ_634a",DoubleToStr(s,Digits-4), 15, "Arial Bold", Yellow);
   ObjectSet("BZ_634a", OBJPROP_CORNER, 0);
   ObjectSet("BZ_634a", OBJPROP_XDISTANCE, 900+price.x.offset);
   ObjectSet("BZ_634a", OBJPROP_YDISTANCE, 280+price.y.offset);
   
   ObjectCreate("BZ_634b", OBJ_LABEL, win, 0, 0);
   ObjectSetText("BZ_634b",DoubleToStr(m,Digits-4)+" : "+DoubleToStr(s,Digits-4), 15, "Arial Bold", Yellow);
   ObjectSet("BZ_634b", OBJPROP_CORNER, 0);
   ObjectSet("BZ_634b", OBJPROP_XDISTANCE, 870+price.x.offset);
   ObjectSet("BZ_634b", OBJPROP_YDISTANCE, 280+price.y.offset); 
   
   ObjectCreate("t634b", OBJ_LABEL, win, 0, 0);
   ObjectSetText("t634b","Time Left", 15, "Arial Bold", Gray);
   ObjectSet("t634b", OBJPROP_CORNER, 0);
   ObjectSet("t634b", OBJPROP_XDISTANCE, 765+price.x.offset);
   ObjectSet("t634b", OBJPROP_YDISTANCE, 280+price.y.offset);   
*/
//+------------------------------------------------------------------+  
   WindowRedraw();    
} // if showinfo
   
//----
   return(0);
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Helper                                                           |
//+------------------------------------------------------------------+
void SetTimeLine(string objname, string text, int idx, color col1, double vleveltext) 
{
   string name= "[PIVOT] " + objname;
   int x= Time[idx];

   if (ObjectFind(name) != 0) 
      ObjectCreate(name, OBJ_TREND, 0, x, 0, x, 100);
   else {
      ObjectMove(name, 0, x, 0);
      ObjectMove(name, 1, x, 100);
   }
   
   ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);
   ObjectSet(name, OBJPROP_COLOR, myColor);
   
   if (ObjectFind(name + " Label") != 0) 
      ObjectCreate(name + " Label", OBJ_TEXT, 0, x, vleveltext);
   else
      ObjectMove(name + " Label", 0, x, vleveltext);
            
   ObjectSetText(name + " Label", text, 8, "Arial", col1);
}



Sample



image not available


Analysis



Market Information Used:

Series array that contains open time of each bar
Series array that contains close prices for each bar
Series array that contains the highest prices of each bar
Series array that contains the lowest prices of each bar
Series array that contains open prices of each bar


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: