#property copyright "Integer" #property link "http://dmffx.com" #property version "1.00" //+------------------------------------------------------------------+ //| Script program start function | //+------------------------------------------------------------------+ void OnStart() { long h[]; int Charts; Charts=fChartGetIDList(h); long FVBFL[]; long MSH[]; long LS[]; datetime tm[1]; datetime tm2[]; ArrayResize(FVBFL,Charts); ArrayResize(MSH,Charts); ArrayResize(LS,Charts); for(int i=0;i0 && fvbfl!=FVBFL[i]) { if(MainChartID!=h[i]) { MainChartID=h[i]; MainChartMarkerShift=MSH[i]; MainIndex=i; } FVBFL[i]=fvbfl; } } MainChartMarkerShift=MSH[MainIndex]; long MainIndexAtMarker=ChartGetInteger(MainChartID,CHART_FIRST_VISIBLE_BAR)-MainChartMarkerShift; if(MainIndexAtMarker<0)MainIndexAtMarker=0; CopyTime(ChartSymbol(MainChartID),ChartPeriod(MainChartID),int(MainIndexAtMarker),1,tm); fObjVLine(MQL5InfoString(MQL5_PROGRAM_NAME)+"_1_"+IntegerToString(MainIndex),tm[0],"",0,Blue,1,STYLE_SOLID,MainChartID,true,true,false,OBJ_ALL_PERIODS); fObjVLine(MQL5InfoString(MQL5_PROGRAM_NAME)+"_2_"+IntegerToString(MainIndex),tm[0],"",0,Red,1,STYLE_DOT,MainChartID,false,true,false,OBJ_ALL_PERIODS); ChartRedraw(MainChartID); if(LT!=tm[0] || f) { LT=tm[0]; for(int j=0;j=ArraySize(tm2)) { p=ArraySize(tm2)-1; } if(tm2[p]>tm[0]) { p--; } if(p<0) { p=0; } long a=Bars(ChartSymbol(h[j]),ChartPeriod(h[j]))-p-1; ChartNavigate(h[j],CHART_END,int(a)); fObjVLine(MQL5InfoString(MQL5_PROGRAM_NAME)+"_1_"+IntegerToString(j),tm2[p],"",0,Blue,1,STYLE_SOLID,h[j],true,true,false,OBJ_ALL_PERIODS); fObjVLine(MQL5InfoString(MQL5_PROGRAM_NAME)+"_2_"+IntegerToString(j),tm2[p],"",0,Red,1,STYLE_DOT,h[j],false,true,false,OBJ_ALL_PERIODS); ChartRedraw(h[j]); long x=fChartGetLeftVisBarFromLeft(h[j]); if(x>0)FVBFL[j]=x; } } } Sleep(1); } Comment(""); for(int i=0;i=0) { ObjectDelete(aChartID,aObjName); Rv=2; } ObjectCreate(aChartID,aObjName,OBJ_VLINE,aWindow,aTime,0); } ObjectSetInteger(aChartID,aObjName,OBJPROP_BACK,aBack); ObjectSetInteger(aChartID,aObjName,OBJPROP_COLOR,aColor); ObjectSetInteger(aChartID,aObjName,OBJPROP_SELECTABLE,aSelectable); ObjectSetInteger(aChartID,aObjName,OBJPROP_SELECTED,aSelected); ObjectSetInteger(aChartID,aObjName,OBJPROP_TIMEFRAMES,aTimeFrames); ObjectSetString(aChartID,aObjName,OBJPROP_TEXT,aText); ObjectSetInteger(aChartID,aObjName,OBJPROP_WIDTH,aWidth); ObjectSetInteger(aChartID,aObjName,OBJPROP_STYLE,aStyle); ObjectMove(aChartID,aObjName,0,aTime,0); return(Rv); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ string fNameChartByID(long aChartID) { return(ChartSymbol(aChartID)+" "+fNameTimeFrame(ChartPeriod(aChartID))); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ string fNameTimeFrame(int arg) { if(arg==0) { arg=Period(); } switch(arg) { case PERIOD_M1:return("M1"); case PERIOD_M2:return("M2"); case PERIOD_M3:return("M3"); case PERIOD_M4:return("M4"); case PERIOD_M5:return("M5"); case PERIOD_M6:return("M6"); case PERIOD_M10:return("M10"); case PERIOD_M12:return("M12"); case PERIOD_M15:return("M15"); case PERIOD_M20:return("M20"); case PERIOD_M30:return("M30"); case PERIOD_H1:return("H1"); case PERIOD_H2:return("H2"); case PERIOD_H3:return("H3"); case PERIOD_H4:return("H4"); case PERIOD_H6:return("H6"); case PERIOD_H8:return("H8"); case PERIOD_H12:return("H12"); case PERIOD_D1:return("D1"); case PERIOD_W1:return("W1"); case PERIOD_MN1:return("MN1"); default:return("M"+IntegerToString(arg)); } } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ void fObjDeleteByPrefix(string aPrefix,long aChartID=0) { for(int i=ObjectsTotal(aChartID)-1;i>=0;i--) { if(StringFind(ObjectName(aChartID,i),aPrefix,0)==0) { ObjectDelete(aChartID,ObjectName(aChartID,i)); } } } //+------------------------------------------------------------------+