_TRO_Multi_Meter_Control





//+------------------------------------------------------------------+ 
//|  _TRO_Multi_Meter_Control                                        | 
//|                                                                  | 
//|   Copyright © 2007, Avery T. Horton, Jr. aka TheRumpledOne       |
//|                                                                  |
//|   PO BOX 43575, TUCSON, AZ 85733                                 |
//|                                                                  |
//|   GIFT AND DONATIONS ACCEPTED                                    | 
//|                                                                  |
//|   therumpldone@gmail.com                                         |  
//+------------------------------------------------------------------+ 
//|                                                                  |
//| go to www.kreslik.com for the latest indicator updates           |  
//+------------------------------------------------------------------+ 
//|                                                                  |
//| Use www.efxgroup.com as your forex broker...                     |  
//| ...tell them therumpledone sent you!                             |  
//+------------------------------------------------------------------+ 

// thank you Xard777 from www.forex-tsd.com for showing me how to delete the objects properly.
// thank you mladen from www.forex-tsd.com for showing me I had a locals and global variables with same name 


#property indicator_chart_window

extern bool Show_Heading = false;
 
extern string IndName = "CTL" ; // change

extern bool Corner_of_Chart_RIGHT_TOP = true;

extern int Shift_UP_DN =15; 
extern int Adjust_Side_to_side  = 20; // 20

extern color BarLabel_color = LightBlue;
extern color CommentLabel_color = LightBlue;

extern color Up_color = Lime;
extern color Eq_color = Yellow;
extern color Dn_color = Red;
//******************* 
// change inputs for your indicator 



//*******************

string ObjHead01,ObjHead02,ObjHead03,ObjHead04,ObjHead05,ObjHead06,ObjHead07,ObjHead08,ObjHead09,ObjHead10,ObjHead11;  

string Obj0001,Obj0002,Obj0003,Obj0004,Obj0005,Obj0006,Obj0007,Obj0008,Obj0009,Obj0010,Obj0011;  

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


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

//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {    
   //***********************************************************************************************************************

string LabelTime="";

if (LabelTime=="") {LabelTime=TimeToStr(TimeLocal(),TIME_SECONDS); }

   int    counted_bars=IndicatorCounted();
   
   
   ObjHead01 = "CTLColHead01" + LabelTime ; 
   ObjHead02 = "CTLColHead02" + LabelTime ; 
   ObjHead03 = "CTLColHead03" + LabelTime ; 
   ObjHead04 = "CTLColHead04" + LabelTime ; 
   ObjHead05 = "CTLColHead05" + LabelTime ; 
   ObjHead06 = "CTLColHead06" + LabelTime ; 
   ObjHead07 = "CTLColHead07" + LabelTime ; 
   ObjHead08 = "CTLColHead08" + LabelTime ; 
   ObjHead09 = "CTLColHead09" + LabelTime ; 
         
   string CTL_ObjHead01 ="M1 " ;
   string CTL_ObjHead02 ="M5  " ;     
   string CTL_ObjHead03 ="M15 " ;
   string CTL_ObjHead04 =" M30 " ;
   string CTL_ObjHead05 ="H1  " ;     
   string CTL_ObjHead06 ="H4  " ;
   string CTL_ObjHead07 ="D1  " ;
   string CTL_ObjHead08 ="W1  " ;
   string CTL_ObjHead09 ="MN1" ;   
   
   
        
    if (Corner_of_Chart_RIGHT_TOP == true)
    { int Col01x = 170+Adjust_Side_to_side ;                 
      int Col01y = 28+Shift_UP_DN ;
    }
    if (Corner_of_Chart_RIGHT_TOP == false)
   { Col01x = 159+Adjust_Side_to_side ;       
     Col01y = 24+Shift_UP_DN ;
    } 
    
   int ColAdj = -20 ; 
   int Col02x = Col01x + ColAdj ;   
   int Col03x = Col01x + ColAdj*2 ; 
   int Col04x = Col01x + ColAdj*3 ; 
   int Col05x = Col01x + ColAdj*4 ; 
   int Col06x = Col01x + ColAdj*5 ; 
   int Col07x = Col01x + ColAdj*6 ;    
   int Col08x = Col01x + ColAdj*7 ; 
   int Col09x = Col01x + ColAdj*8 ;     
   
   if ( Show_Heading) {        
   ObjectCreate(ObjHead01, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead01,CTL_ObjHead01 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead01, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead01, OBJPROP_XDISTANCE, Col01x);
   ObjectSet(ObjHead01, OBJPROP_YDISTANCE, Col01y); 

   ObjectCreate(ObjHead02, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead02,CTL_ObjHead02 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead02, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead02, OBJPROP_XDISTANCE, Col02x);
   ObjectSet(ObjHead02, OBJPROP_YDISTANCE, Col01y);   
       
   ObjectCreate(ObjHead03, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead03,CTL_ObjHead03 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead03, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead03, OBJPROP_XDISTANCE, Col03x);
   ObjectSet(ObjHead03, OBJPROP_YDISTANCE, Col01y); 
 
   ObjectCreate(ObjHead04, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead04,CTL_ObjHead04 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead04, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead04, OBJPROP_XDISTANCE, Col04x);
   ObjectSet(ObjHead04, OBJPROP_YDISTANCE, Col01y); 
   
   ObjectCreate(ObjHead05, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead05,CTL_ObjHead05 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead05, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead05, OBJPROP_XDISTANCE, Col05x);
   ObjectSet(ObjHead05, OBJPROP_YDISTANCE, Col01y); 
            
   ObjectCreate(ObjHead06, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead06,CTL_ObjHead06 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead06, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead06, OBJPROP_XDISTANCE, Col06x);
   ObjectSet(ObjHead06, OBJPROP_YDISTANCE, Col01y); 

   ObjectCreate(ObjHead07, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead07,CTL_ObjHead07 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead07, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead07, OBJPROP_XDISTANCE, Col07x);
   ObjectSet(ObjHead07, OBJPROP_YDISTANCE, Col01y); 
         
   ObjectCreate(ObjHead08, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead08,CTL_ObjHead08 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead08, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead08, OBJPROP_XDISTANCE, Col08x);
   ObjectSet(ObjHead08, OBJPROP_YDISTANCE, Col01y); 

   ObjectCreate(ObjHead09, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(ObjHead09,CTL_ObjHead09 , 7, "Tahoma Narrow", BarLabel_color);
   ObjectSet(ObjHead09, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(ObjHead09, OBJPROP_XDISTANCE, Col09x);
   ObjectSet(ObjHead09, OBJPROP_YDISTANCE, Col01y); 
       
} // Show_Heading

 //*******************   change for  your indicator ********************
 
    
    string M1_CTL= "-",M5_CTL= "-", M15_CTL= "-", M30_CTL= "-", H1_CTL= "-", H4_CTL= "-", D1_CTL= "-",PRC1, W1_CTL= "-", MN1_CTL= "-";

    color  color_CTLm1,color_CTLm5,color_CTLm15,color_CTLm30,color_CTLH1,color_CTLH4,color_CTLD1,color_CTLW1,color_CTLMN1;     
         

   //CTL Signals

 
    double CTL_M1 = ( iHigh(NULL,PERIOD_M1,0) + iLow(NULL,PERIOD_M1,0) ) * 0.5 ;
    double CTL_m1 = ( iHigh(NULL,PERIOD_M1,1) + iLow(NULL,PERIOD_M1,1) ) * 0.5 ;

    double CTL_M5 = ( iHigh(NULL,PERIOD_M5,0) + iLow(NULL,PERIOD_M5,0) ) * 0.5 ;
    double CTL_m5 = ( iHigh(NULL,PERIOD_M5,1) + iLow(NULL,PERIOD_M5,1) ) * 0.5 ;

    double CTL_M15 = ( iHigh(NULL,PERIOD_M15,0) + iLow(NULL,PERIOD_M15,0) ) * 0.5 ;
    double CTL_m15 = ( iHigh(NULL,PERIOD_M15,1) + iLow(NULL,PERIOD_M15,1) ) * 0.5 ;

    double CTL_M30 = ( iHigh(NULL,PERIOD_M30,0) + iLow(NULL,PERIOD_M30,0) ) * 0.5 ;
    double CTL_m30 = ( iHigh(NULL,PERIOD_M30,1) + iLow(NULL,PERIOD_M30,1) ) * 0.5 ;

    double CTL_H1 = ( iHigh(NULL,PERIOD_H1,0) + iLow(NULL,PERIOD_H1,0) ) * 0.5 ;
    double CTL_h1 = ( iHigh(NULL,PERIOD_H1,1) + iLow(NULL,PERIOD_H1,1) ) * 0.5 ;

    double CTL_H4 = ( iHigh(NULL,PERIOD_H4,0) + iLow(NULL,PERIOD_H4,0) ) * 0.5 ;
    double CTL_h4 = ( iHigh(NULL,PERIOD_H4,1) + iLow(NULL,PERIOD_H4,1) ) * 0.5 ;

    double CTL_D1 = ( iHigh(NULL,PERIOD_D1,0) + iLow(NULL,PERIOD_D1,0) ) * 0.5 ;
    double CTL_d1 = ( iHigh(NULL,PERIOD_D1,1) + iLow(NULL,PERIOD_D1,1) ) * 0.5 ;
    
    double CTL_W1 = ( iHigh(NULL,PERIOD_W1,0) + iLow(NULL,PERIOD_W1,0) ) * 0.5 ;
    double CTL_w1 = ( iHigh(NULL,PERIOD_W1,1) + iLow(NULL,PERIOD_W1,1) ) * 0.5 ;
    
    double CTL_MN1 = ( iHigh(NULL,PERIOD_MN1,0) + iLow(NULL,PERIOD_MN1,0) ) * 0.5 ;
    double CTL_mn1 = ( iHigh(NULL,PERIOD_MN1,1) + iLow(NULL,PERIOD_MN1,1) ) * 0.5 ;
    
 
   
    if ((iClose(NULL,PERIOD_M1,0) > CTL_M1) 
    &&  (iClose(NULL,PERIOD_M1,0) > CTL_m1)) color_CTLm1 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_M1,0) < CTL_M1) 
    &&  (iClose(NULL,PERIOD_M1,0) < CTL_m1)) color_CTLm1 = Dn_color; 
    else color_CTLm1 = Eq_color; }
    
    
    if ((iClose(NULL,PERIOD_M5,0) > CTL_M5) 
    &&  (iClose(NULL,PERIOD_M5,0) > CTL_m5)) color_CTLm5 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_M5,0) < CTL_M5) 
    &&  (iClose(NULL,PERIOD_M5,0) < CTL_m5)) color_CTLm5 = Dn_color; 
    else color_CTLm5 = Eq_color; }
        
    if ((iClose(NULL,PERIOD_M15,0) > CTL_M15) 
    &&  (iClose(NULL,PERIOD_M15,0) > CTL_m15)) color_CTLm15 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_M15,0) < CTL_M15) 
    &&  (iClose(NULL,PERIOD_M15,0) < CTL_m15)) color_CTLm15 = Dn_color; 
    else color_CTLm15 = Eq_color; }
    
    if ((iClose(NULL,PERIOD_M30,0) > CTL_M30) 
    &&  (iClose(NULL,PERIOD_M30,0) > CTL_m30)) color_CTLm30 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_M30,0) < CTL_M30) 
    &&  (iClose(NULL,PERIOD_M30,0) < CTL_m30)) color_CTLm30 = Dn_color; 
    else color_CTLm30 = Eq_color; }

    if ((iClose(NULL,PERIOD_H1,0) > CTL_H1) 
    &&  (iClose(NULL,PERIOD_H1,0) > CTL_h1)) color_CTLH1 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_H1,0) < CTL_H1) 
    &&  (iClose(NULL,PERIOD_H1,0) < CTL_h1)) color_CTLH1 = Dn_color; 
    else color_CTLH1 = Eq_color; }

    if ((iClose(NULL,PERIOD_H4,0) > CTL_H4) 
    &&  (iClose(NULL,PERIOD_H4,0) > CTL_h4)) color_CTLH4 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_H4,0) < CTL_H4) 
    &&  (iClose(NULL,PERIOD_H4,0) < CTL_h4)) color_CTLH4 = Dn_color; 
    else color_CTLH4 = Eq_color; }

    if ((iClose(NULL,PERIOD_D1,0) > CTL_D1) 
    &&  (iClose(NULL,PERIOD_D1,0) > CTL_d1)) color_CTLD1 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_D1,0) < CTL_D1) 
    &&  (iClose(NULL,PERIOD_D1,0) < CTL_d1)) color_CTLD1 = Dn_color; 
    else color_CTLD1 = Eq_color; }

    if ((iClose(NULL,PERIOD_W1,0) > CTL_W1) 
    &&  (iClose(NULL,PERIOD_W1,0) > CTL_w1)) color_CTLW1 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_W1,0) < CTL_W1) 
    &&  (iClose(NULL,PERIOD_W1,0) < CTL_w1)) color_CTLW1 = Dn_color; 
    else color_CTLW1 = Eq_color; }

    if ((iClose(NULL,PERIOD_MN1,0) > CTL_MN1) 
    &&  (iClose(NULL,PERIOD_MN1,0) > CTL_mn1)) color_CTLMN1 = Up_color; 
    else {
    if ((iClose(NULL,PERIOD_MN1,0) < CTL_MN1) 
    &&  (iClose(NULL,PERIOD_MN1,0) < CTL_MN1)) color_CTLMN1 = Dn_color; 
    else color_CTLMN1 = Eq_color; }

               
    
 //*******************          
    
    int Col00x = Col01x + 20 ;
    int Col00y = 50+Shift_UP_DN ;
    
    Col01y = 20+Shift_UP_DN ;
    
   Obj0002 = "SignalCTLM1t" + LabelTime ; 
           
           ObjectCreate(Obj0002, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0002,IndName, 7, "Tahoma Narrow",  BarLabel_color);  
   ObjectSet(Obj0002, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0002, OBJPROP_XDISTANCE, Col00x);
   ObjectSet(Obj0002, OBJPROP_YDISTANCE, Col00y);  // 50+Shift_UP_DN

   Obj0003 = "SignalCTLM1" + LabelTime ;        
           ObjectCreate(Obj0003, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0003, M1_CTL, 40, "Tahoma Narrow",  color_CTLm1);
   ObjectSet(Obj0003, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0003, OBJPROP_XDISTANCE, Col01x);
   ObjectSet(Obj0003, OBJPROP_YDISTANCE, Col01y); 

   Obj0004 = "SignalCTLM5" + LabelTime ;          
           ObjectCreate(Obj0004, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0004, M5_CTL, 40, "Tahoma Narrow",  color_CTLm5);
   ObjectSet(Obj0004, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0004, OBJPROP_XDISTANCE, Col02x);
   ObjectSet(Obj0004, OBJPROP_YDISTANCE, Col01y); 
      
   Obj0005 = "SignalCTLM15" + LabelTime ; 
   ObjectCreate(Obj0005, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0005, M15_CTL, 40, "Tahoma Narrow",  color_CTLm15);
   ObjectSet(Obj0005, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0005, OBJPROP_XDISTANCE, Col03x);
   ObjectSet(Obj0005, OBJPROP_YDISTANCE, Col01y); 
      
   Obj0006 = "SignalCTLM30" + LabelTime ; 
   ObjectCreate(Obj0006, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0006, M30_CTL, 40, "Tahoma Narrow",  color_CTLm30);
   ObjectSet(Obj0006, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0006, OBJPROP_XDISTANCE, Col04x);
   ObjectSet(Obj0006, OBJPROP_YDISTANCE, Col01y); 

   Obj0007 = "SignalCTLM60" + LabelTime ;      
           ObjectCreate(Obj0007, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0007, H1_CTL, 40, "Tahoma Narrow",  color_CTLH1);
   ObjectSet(Obj0007, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0007, OBJPROP_XDISTANCE, Col05x);
   ObjectSet(Obj0007, OBJPROP_YDISTANCE, Col01y); 

   Obj0008 = "SignalCTLM240" + LabelTime ;          
           ObjectCreate(Obj0008, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0008, H4_CTL, 40, "Tahoma Narrow",  color_CTLH4);
   ObjectSet(Obj0008, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0008, OBJPROP_XDISTANCE, Col06x);
   ObjectSet(Obj0008, OBJPROP_YDISTANCE, Col01y);

   Obj0009 = "SignalCTLM1440" + LabelTime ;    
           ObjectCreate(Obj0009, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0009, D1_CTL, 40, "Tahoma Narrow",  color_CTLD1);
   ObjectSet(Obj0009, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0009, OBJPROP_XDISTANCE, Col07x);
   ObjectSet(Obj0009, OBJPROP_YDISTANCE, Col01y);
   
   Obj0010 = "SignalCTLW1" + LabelTime ;    
           ObjectCreate(Obj0010, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0010, W1_CTL, 40, "Tahoma Narrow",  color_CTLW1);
   ObjectSet(Obj0010, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0010, OBJPROP_XDISTANCE, Col08x);
   ObjectSet(Obj0010, OBJPROP_YDISTANCE, Col01y);   
   
   Obj0011 = "SignalCTLMN1" + LabelTime ;    
           ObjectCreate(Obj0011, OBJ_LABEL, 0, 0, 0);
   ObjectSetText(Obj0011, MN1_CTL, 40, "Tahoma Narrow",  color_CTLMN1);
   ObjectSet(Obj0011, OBJPROP_CORNER, Corner_of_Chart_RIGHT_TOP);
   ObjectSet(Obj0011, OBJPROP_XDISTANCE, Col09x);
   ObjectSet(Obj0011, OBJPROP_YDISTANCE, Col01y); 
     
 //----
   return(0);
  }
//+------------------------------------------------------------------+

//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----

ObjectsDeleteAll(0,OBJ_HLINE);
ObjectsDeleteAll(0,OBJ_TEXT);
ObjectsDeleteAll(0,OBJ_LABEL);
deleteObject(); 

//----
   return(0);
  }
  
void deleteObject()
  { 
//ObjectDelete(Obj0001);  
ObjectDelete(Obj0002); 
ObjectDelete(Obj0003); 
ObjectDelete(Obj0004); 
ObjectDelete(Obj0005); 
ObjectDelete(Obj0006); 
ObjectDelete(Obj0007); 
ObjectDelete(Obj0008); 
ObjectDelete(Obj0009); 
ObjectDelete(Obj0010); 
ObjectDelete(Obj0011); 

ObjectDelete(ObjHead01);  
ObjectDelete(ObjHead02); 
ObjectDelete(ObjHead03); 
ObjectDelete(ObjHead04); 
ObjectDelete(ObjHead05); 
ObjectDelete(ObjHead06); 
ObjectDelete(ObjHead07); 
ObjectDelete(ObjHead08); 
ObjectDelete(ObjHead09); 
 
  }



Sample





Analysis



Market Information Used:

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


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: