# OTCFX_b-clock modified V3.2-sw





//+------------------------------------------------------------------+
//|                                            #OTCFX  b-clock_SW.mq4  |
//|                                     Core time code by Nick Bilak |
//|        http://metatrader.50webs.com/         beluck[at]gmail.com |
//|                                  modified by adoleh2000 and dwt5 |
//|                                 Modified and improved by "OTCFX"                                          | 
//|
//| |                                                                |
//+------------------------------------------------------------------+

#property copyright "Copyright © 2005, Nick Bilak"
#property link      "http://metatrader.50webs.com/"

#property indicator_separate_window
#property indicator_color1 Aqua

extern color  BClockClr =  Aqua;
extern color  ClksColor =  Lime;
extern color  TDCOL =  Aqua;
extern bool   show.Bclk = true ;
extern string myFont         = "Arial Bold" ;
extern string myFont2        = "Verdana Bold" ;
//extern int    myCFontSize     = 20 ;
//extern int    myCLKSize     = 16 ;
extern bool show.M1 = true ;
extern bool show.M5 = true ;
extern bool show.M15 = true ;
extern bool show.M30 = true ;
extern bool show.M60 = true ;
extern bool show.M240 = true ;
extern bool show.M1440 = true ;
int   TimeFrame    = 0 ;





//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+

double s1[];

int init()
{
  IndicatorShortName("CLKV3"); 



  //{
 switch(TimeFrame)
   {
      case 1  : string TimeFrameStr="M1" ;   break;    
      case 5  :     TimeFrameStr=   "M5" ;   break;
      case 15 :     TimeFrameStr=   "M15";   break;     
      case 30 :     TimeFrameStr=   "M30";   break;
      case 60 :     TimeFrameStr=   "H1" ;   break;
      case 240  :   TimeFrameStr=   "H4" ;   break;
      case 1440 :   TimeFrameStr=   "D1" ;   break;
      case 10080 :  TimeFrameStr=   "W1" ;   break;
      case 43200 :  TimeFrameStr=   "MN1";   break;
      default  :    TimeFrameStr=   "CurrTF";
   }   
   //if (TimeFrame<Period()) TimeFrame=Period();
  return(0);  
  }
   return(0);
   int deinit()
  {
   ObjectDelete("time");
    ObjectDelete("timey");
   ObjectDelete("time1");
   ObjectDelete("time2");
   ObjectDelete("time3");
   ObjectDelete("time4");
   ObjectDelete("time5");
   ObjectDelete("time6");
   ObjectDelete("time7");
   ObjectDelete("time8");
   ObjectDelete("T1");
   ObjectDelete("T2");
    ObjectDelete("T3");
   Comment("");
   
   return(0);
  }
  
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   
  
	double i,i1,i2,i3,i4,i5,i6,i7;
   int m,s,k,  
    m0, m1,m2,m3,m4,m5,m6,m7,  
    s0, s1,s2,s3,s4,s5,s6,s7,
   h,h1,h2,h3,h4,h5,h6,h7;
  
 
 
   if (TimeFrame ==0)TimeFrame=Period();

   m=iTime(NULL,TimeFrame,0)+TimeFrame*60 - TimeCurrent();

 //  m=Time[0]+Period()*60-CurTime();
   m1=iTime(NULL,1440,0)+1440*60-CurTime();
   m2=iTime(NULL,240,0)+240*60-CurTime();
   m3=iTime(NULL,60,0)+60*60-CurTime();
   m4=iTime(NULL,30,0)+30*60-CurTime();
   m5=iTime(NULL,15,0)+15*60-CurTime();
   m6=iTime(NULL,5,0)+5*60-CurTime();
   m7=iTime(NULL,1,0)+1*60-CurTime();

   i=m/60.0;
   i1=m1/60.0;
   i2=m2/60.0;
   i3=m3/60.0;
   i4=m4/60.0;
   i5=m5/60.0;
   i6=m6/60.0;
   i7=m7/60.0;

   s=m%60;
   s0=m%60;
   s1=m1%60;
   s2=m2%60;
   s3=m3%60;
   s4=m4%60;
   s5=m5%60;
   s6=m6%60;
   s7=m7%60;
  
   m=(m-m%60)/60;
   m0=(m-m%60)/60;
   m1=(m1-m1%60)/60;
   m2=(m2-m2%60)/60;
   m3=(m3-m3%60)/60;
   m4=(m4-m4%60)/60;
   m5=(m5-m5%60)/60;
   m6=(m6-m6%60)/60;
   m7=(m7-m7%60)/60;

   h=m/60;
   h1=m1/60;
   h2=m2/60;
   h3=m3/60;
   h4=m4/60;  
   h5=m5/60;
   h6=m6/60;
   h7=m7/60;    
 
	
 string Bclk=   "                   <"+m+":"+s; 
 string M1=  "|M1|  "+m7+"m :"+s7; 
 string M5=  "|M5|  "+m6+"m :"+s6; 
 string M15= "|M15| "+m5+"m :"+s5; 
 string M30= "|M30| "+m4+"m :"+s4; 
 string M60= "|M60| "+m3+"m :"+s3; 
 string M240= "|H4| "+m2+"m :"+s2;  
 string M1440= "|D1| "+m1+"m :"+s1; 
   
   if(show.Bclk ){     
   Comment( m + " minutes " + s + " seconds left to bar end");}
   
	   
   ObjectDelete("time");  
   if(ObjectFind("time") != 0)
   {
   if(show.Bclk ){
   ObjectCreate("time", OBJ_TEXT, 0, Time[0], Close[0]+ 0.0000);}
   if(show.Bclk ){
   ObjectSetText("time",StringSubstr((Bclk),0), 10, "Verdana Bold" ,BClockClr);}
   //ObjectDelete("time");
   }
   else
   {
   ObjectMove("time", 0, Time[0], Close[0]+0.0005);
   //ObjectDelete("time");
   
   
  
   }
   
 
   
  
   {
  string P=Period(); 
   //string M15= "M15   "+m5+"m : "+s5;
   //ObjectCreate("time1", OBJ_LABEL, 0, 0, 0);
  // ObjectSetText("time1","   "+m+"m : "+s , myCFontSize, myFont ,TDCOL);
  // ObjectSet("time1", OBJPROP_CORNER,3);
   //ObjectMove("time1", 0, Time[0], Close[0]+0.0005);
   //ObjectSet("time1", OBJPROP_XDISTANCE, 10);
  // ObjectSet("time1", OBJPROP_YDISTANCE,10 );
   
   //ObjectCreate("T1", OBJ_LABEL,WindowFind("CLKV3"), 0, 0);
   //ObjectSetText("T1",StringSubstr((P),0),myCFontSize, "Verdana", TDCOL);
   //ObjectSet("T1", OBJPROP_CORNER, 3);
  // ObjectSet("T1", OBJPROP_XDISTANCE, 70);
   //ObjectSet("T1", OBJPROP_YDISTANCE, 65);  
  
   ObjectCreate("T2", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("T2",TimeToStr(CurTime(),TIME_SECONDS),11, "Verdana Bold", TDCOL);
   ObjectSet("T2", OBJPROP_CORNER, 0);
   ObjectSet("T2", OBJPROP_XDISTANCE, 250);
   ObjectSet("T2", OBJPROP_YDISTANCE, 5);
   
   ObjectCreate("T3", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("T3",TimeToStr(CurTime(),TIME_DATE),10, "Verdana", TDCOL);
   ObjectSet("T3", OBJPROP_CORNER, 0);
   ObjectSet("T3", OBJPROP_XDISTANCE, 155);
   ObjectSet("T3", OBJPROP_YDISTANCE, 5);
   if(show.M1){
   ObjectCreate("time2", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time2",StringSubstr((M1),0), 16, myFont ,ClksColor);
   ObjectSet("time2", OBJPROP_CORNER, 0);
   ObjectSet("time2", OBJPROP_XDISTANCE, 10);
   ObjectSet("time2", OBJPROP_YDISTANCE, 24);}
    if(show.M5){ 
   ObjectCreate("time3", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time3",StringSubstr((M5),0) , 16, myFont ,ClksColor); 
   ObjectSet("time3", OBJPROP_CORNER, 0);
   ObjectSet("time3", OBJPROP_XDISTANCE, 150);
   ObjectSet("time3", OBJPROP_YDISTANCE, 24);}
    if(show.M15){ 
   ObjectCreate("time4", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time4",StringSubstr((M15),0), 16, myFont ,ClksColor); 
   ObjectSet("time4", OBJPROP_CORNER, 0);
   ObjectSet("time4", OBJPROP_XDISTANCE, 280);
   ObjectSet("time4", OBJPROP_YDISTANCE, 24);}
    if(show.M30){
   ObjectCreate("time5", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time5",StringSubstr((M30),0), 16, myFont ,ClksColor); 
   ObjectSet("time5", OBJPROP_CORNER, 0);
   ObjectSet("time5", OBJPROP_XDISTANCE, 430);
   ObjectSet("time5", OBJPROP_YDISTANCE, 24);}
   
    if(show.M60){
   ObjectCreate("time6", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time6",StringSubstr((M60),0), 16, myFont ,ClksColor); 
   ObjectSet("time6", OBJPROP_CORNER, 0);
   ObjectSet("time6", OBJPROP_XDISTANCE, 580);
   ObjectSet("time6", OBJPROP_YDISTANCE, 24);}
   
    if(show.M240){
   ObjectCreate("time7", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time7",StringSubstr((M240),0), 16, myFont ,ClksColor); 
   ObjectSet("time7", OBJPROP_CORNER, 0);
   ObjectSet("time7", OBJPROP_XDISTANCE, 740);
   ObjectSet("time7", OBJPROP_YDISTANCE, 24);}
   
    if(show.M1440){
   ObjectCreate("time8", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time8",StringSubstr((M1440),0), 16, myFont ,ClksColor); 
   ObjectSet("time8", OBJPROP_CORNER, 0);
   ObjectSet("time8", OBJPROP_XDISTANCE, 876);
   ObjectSet("time8", OBJPROP_YDISTANCE, 24);}
   
   ObjectCreate("time9", OBJ_LABEL, WindowFind("CLKV3"), 0, 0);
   ObjectSetText("time9","B-ClockV3", 13, "Verdana Bold", Orchid);
   ObjectSet("time9", OBJPROP_CORNER, 0);
   ObjectSet("time9", OBJPROP_XDISTANCE, 40);
   ObjectSet("time9", OBJPROP_YDISTANCE, 1);
   
     
   }


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






Sample





Analysis



Market Information Used:

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


Indicator Curves created:


Indicators Used:



Custom Indicators Used:

Order Management characteristics:

Other Features: