//+------------------------------------------------------------------+ //| LocalTime.mq4 | //| Copyright © 2010, Robert Hill. | //| | //| Plaqce local time on chart in ant corner | //+------------------------------------------------------------------+ #property copyright "Copyright © 2010, Robert Hill" #property link "None" //---- indicator settings #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Blue #property indicator_width2 1 extern string C = "---Corner Position---"; extern string c0 = " 0 = Upper left"; extern string c1 = " 1 = Upper right"; extern string c2 = " 2 = Lower left"; extern string c3 = " 3 = Lower right"; extern int myCorner = 0; extern int CommentY = 25; extern int CommentTxtSize = 12; extern color CommentColor = White; extern string Object_ID = "LT_"; //---- buffers double LineBuffer[]; //---- variables int Comment2Y; string CommentStr, Comment2Str; string CommentLabel, Comment2Label; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- drawing settings SetIndexBuffer(0,LineBuffer); SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2); SetIndexEmptyValue(1,EMPTY_VALUE); // Text labels DeleteBadLabels(); DeleteExistingLabels(); SetupLabels(); //---- initialization done return(0); } int deinit() //added by Big Be { ClearLabels(); DeleteExistingLabels(); return(0);} int start() { if (Comment2Y < 10) { SetupLabels(); ClearLabels(); DeleteExistingLabels(); SetupLabels();// Make sure label settings are OK } else { ClearLabels(); } Comment2Str = "Broker: " + TimeToStr(TimeCurrent(), TIME_DATE|TIME_SECONDS); CommentStr = " Local: " + TimeToStr(TimeLocal(), TIME_DATE|TIME_SECONDS); if (myCorner > 1) { OutputComment2ToChart(CommentStr, CommentColor); OutputCommentToChart(Comment2Str, CommentColor); } else { OutputCommentToChart(CommentStr, CommentColor); OutputComment2ToChart(Comment2Str, CommentColor); } return(0); } void ClearLabels() { string mComment = " "; OutputCommentToChart( mComment, CommentColor); OutputComment2ToChart(mComment, CommentColor); } void DeleteBadLabels() { int objLabels = ObjectsTotal(OBJ_LABEL); string objName; if (objLabels > 0) { for (int i = objLabels; i >= 0;i--) { objName = ObjectName(i); if (StringFind(objName,Object_ID, 0) >= 0) { // Found 2 Play object, now check for wrong Symbol if (StringFind(objName,Symbol(), 0) < 0) { ObjectDelete(objName); } } } } } void DeleteExistingLabels() { int objLabels = ObjectsTotal(OBJ_LABEL); string objName; if (objLabels > 0) { for (int i = objLabels; i >= 0;i--) { objName = ObjectName(i); if (StringFind(objName,Object_ID, 0) >= 0) { // Found 2 Play object, now check for Symbol if (StringFind(objName,Symbol(), 0) >= 0) { ObjectDelete(objName); } } } } } void SetupLabels() { Comment2Y = CommentY + CommentTxtSize + 4; CommentLabel = Object_ID + Symbol() + "_Comment1"; Comment2Label = Object_ID + Symbol() + "_Comment2"; } void OutputLabelToChart(string LabelName, int LabelY, int LabelTxtSize, int X_Offset, string LabelFont, color LabelColor, string LabelStr) { if(ObjectFind(LabelName) != 0) { ObjectCreate(LabelName, OBJ_LABEL, 0, 0, 0); ObjectSet(LabelName, OBJPROP_CORNER, myCorner); ObjectSet(LabelName, OBJPROP_XDISTANCE, X_Offset); ObjectSet(LabelName, OBJPROP_YDISTANCE, LabelY); } ObjectSetText(LabelName, LabelStr, LabelTxtSize, LabelFont, LabelColor); } void OutputComment2ToChart(string mComment, color mColor) { OutputLabelToChart(Comment2Label, Comment2Y, CommentTxtSize, 10, "Arial", mColor, mComment); } void OutputCommentToChart(string mComment, color mColor ) { OutputLabelToChart(CommentLabel, CommentY, CommentTxtSize, 10, "Arial", mColor, mComment); }