//+------------------------------------------------------------------+ //| All_TF.mq4 | //+------------------------------------------------------------------+ #property copyright "Inkov Evgeni ew123@mail.ru" #property link "+7-918-600-11-33" #property indicator_separate_window #property indicator_minimum -0.3 #property indicator_maximum 1.3 extern string sym="EURUSD"; extern int nom_bar=15; extern color color_up=Red; extern color color_dw=Black; extern color color_0=RoyalBlue; extern color color_txt=Green; extern color color_activ=Red; extern color color_line=Gray; //-------------------- int win; int TF; int width=3; int Step; //+------------------------------------------------------------------+ int init() { IndicatorDigits(Digits); IndicatorShortName("All_TF "+sym); win=WindowFind("All_TF "+sym); Step=nom_bar+3; return(0); } //+------------------------------------------------------------------+ int deinit() { for (int i=9;i>=1;i--) { TF=nom_TF(i); for (int j=0;j=1;i--) { TF=nom_TF(i); sdvig=(9-i)*Step; out_graf(TF,win,sdvig); out_txt(TF,win,sdvig); if (i>1)out_line(str_TF(TF),win,sdvig); } return(0); } //+------------------------------------------------------------------+ void out_line(string str_TF, int win, int sdvig) { string name=sym+str_TF+"L"; if (ObjectFind(name)<0)ObjectCreate(name,OBJ_TREND,win,0,0); ObjectSet(name,OBJPROP_TIME1,Time[nom_bar+sdvig+1]); ObjectSet(name,OBJPROP_TIME2,Time[nom_bar+sdvig+1]); ObjectSet(name,OBJPROP_PRICE1,-0.3); ObjectSet(name,OBJPROP_PRICE2,1.3); ObjectSet(name,OBJPROP_COLOR,color_line); ObjectSet(name,OBJPROP_WIDTH,2); } //-------------------- void out_txt(int TF, int win, int sdvig) { color col; string str_TF=str_TF(TF); string name=sym+str_TF; if (ObjectFind(name)<0)ObjectCreate(name,OBJ_TEXT,win,0,0); if(TF==Period()) col=color_activ; else col=color_txt; ObjectSetText(name, str_TF, 8, "Arial", col); ObjectSet(name,OBJPROP_TIME1,Time[sdvig+1]); ObjectSet(name,OBJPROP_PRICE1,0); } //-------------------- void out_graf(int TF, int win, int sdvig) { double max,min,H,L; for (int i=0;imax || max==0)max=H; if (Lpr2) col=color_dw; else col=color_up; put_rect(sym+DoubleToStr(TF,0)+"_"+DoubleToStr(bar,0)+"_1",win, bar+sdv, width, pr1, pr2, col); // Open, Close put_rect(sym+DoubleToStr(TF,0)+"_"+DoubleToStr(bar,0)+"_2",win, bar+sdv, 1, pr3, pr4, col); // Low, High } //----------------------------------------- void put_rect(string name,int win, int bar, int width, double pr1, double pr2, color col) { if (ObjectFind(name)<0)ObjectCreate(name,OBJ_TREND,win,0,0,0,0); ObjectSet(name,OBJPROP_TIME1,Time[bar]); ObjectSet(name,OBJPROP_TIME2,Time[bar]); ObjectSet(name,OBJPROP_PRICE1,pr1); ObjectSet(name,OBJPROP_PRICE2,pr2); ObjectSet(name,OBJPROP_WIDTH,width); ObjectSet(name,OBJPROP_RAY,false); ObjectSet(name,OBJPROP_COLOR,col); } //------------------------------ double ND(double n) { return(NormalizeDouble(n,Digits)); } //---------------------------- int nom_TF(int n) { switch(n) { case 1: return(PERIOD_M1); case 2: return(PERIOD_M5); case 3: return(PERIOD_M15); case 4: return(PERIOD_M30); case 5: return(PERIOD_H1); case 6: return(PERIOD_H4); case 7: return(PERIOD_D1); case 8: return(PERIOD_W1); case 9: return(PERIOD_MN1); } return(0); } //---------------------------- string str_TF(int n) { if (n==0)n=Period(); switch(n) { case PERIOD_M1: return ("M1"); case PERIOD_M5: return ("M5"); case PERIOD_M15: return ("M15"); case PERIOD_M30: return ("M30"); case PERIOD_H1: return ("H1"); case PERIOD_H4: return ("H4"); case PERIOD_D1: return ("D1"); case PERIOD_W1: return ("W1"); case PERIOD_MN1: return ("MN1"); } return("?"); } //----------------------------