//+------------------------------------------------------------------+ //| #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: