!_BZ_everyhour

11 Views
0 Downloads
0 Favorites
!_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);
}

Comments