//+------------------------------------------------------------------+ //| Bulls.mq4 | //| Copyright © 2005, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net/" #property indicator_chart_window //---- input parameters extern int BarsBack = 300; extern int CountBars=30; extern int myYear = 2011; extern int myMonth = 9; extern int myDay = 20; extern int myHour = 12; extern int myMinute = 0; extern color LineColor = Red; string ObjID = "CL_"; int per; int StartBar; //---- buffers //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- per = Period(); return(0); } int deinit() { DeleteExistingLines(); } //+------------------------------------------------------------------+ //| Bulls Power | //+------------------------------------------------------------------+ int start() { int i, counted_bars=IndicatorCounted(); //---- if(Bars<=CountBars) return(0); //---- int limit=BarsBack; datetime tm; // Find starting point for lines for(i=0; i 1440) StartBar = i; else { if (TimeDay(tm) == myDay) { if (per > 60) StartBar = i; else { if (TimeHour(tm) == myHour) { if (per == 60) StartBar = i; else { if (TimeMinute(tm) == myMinute) StartBar = i; } } // Hour check } // period greater than hour check } // Day check } // period greaterthan day check } } } for(i=StartBar; i CountBars) { for(i=StartBar; i>= 0; i-=CountBars) DrawLine(ObjID + i, iTime(NULL, 0, i), LineColor); } //---- //---- return(0); } void DeleteExistingLines() { int objLines = ObjectsTotal(OBJ_VLINE); string objName; if (objLines > 0) { for (int i = objLines; i >= 0;i--) { objName = ObjectName(i); if (StringFind(objName, ObjID, 0) >= 0) { ObjectDelete(objName); continue; } } } } void DrawLine(string LineName, datetime myTime, color LineColor) { if(ObjectFind(LineName) != 0) { ObjectCreate(LineName, OBJ_VLINE, 0, myTime, 0); ObjectSet(LineName, OBJPROP_COLOR, LineColor); ObjectSet(LineName, OBJPROP_STYLE, STYLE_SOLID); ObjectSet(LineName, OBJPROP_WIDTH, 1); } ObjectSet(LineName, OBJPROP_TIME1, myTime); } //+------------------------------------------------------------------+