//+------------------------------------------------------------------+ //| #MTF Supertrend Bar.mq4 | //| Copyright © 2006, Eli hayun | //| http://www.elihayun.com | //+------------------------------------------------------------------+ #property copyright "Copyright © 2006, Eli hayun" #property link "http://www.elihayun.com" //---- #property indicator_separate_window #property indicator_minimum -1 //#property indicator_maximum 5 #property indicator_buffers 8 #property indicator_color1 Red #property indicator_color2 Blue #property indicator_color3 Red #property indicator_color4 Blue #property indicator_color5 Red #property indicator_color6 Blue #property indicator_color7 Red #property indicator_color8 Blue //---- buffers double buf4_up[]; double buf4_down[]; double buf3_up[]; double buf3_down[]; double buf2_up[]; double buf2_down[]; double buf1_up[]; double buf1_down[]; //---- extern double Gap=1; // Gap between the lines of bars extern int Period_1=PERIOD_M15; extern int Period_2=PERIOD_M30; extern int Period_3=PERIOD_H1; extern int Period_4=PERIOD_H4; extern bool AutoDisplay =false; //---- string shortname=""; bool firstTime=true; int UniqueNum=228; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetAutoDisplay(); shortname="# Forex Freedom("+Period_1+","+Period_2+","+Period_3+","+Period_4+")"; firstTime=true; IndicatorShortName(shortname); //---- indicators SetIndexStyle(0,DRAW_ARROW); SetIndexArrow(0,110); SetIndexBuffer(0,buf4_up); SetIndexEmptyValue(0,0.0); SetIndexStyle(1,DRAW_ARROW); SetIndexArrow(1,110); SetIndexBuffer(1,buf4_down); SetIndexEmptyValue(1,0.0); SetIndexStyle(2,DRAW_ARROW); SetIndexArrow(2,110); SetIndexBuffer(2,buf3_up); SetIndexEmptyValue(2,0.0); SetIndexStyle(3,DRAW_ARROW); SetIndexArrow(3,110); SetIndexBuffer(3,buf3_down); SetIndexEmptyValue(3,0.0); SetIndexStyle(4,DRAW_ARROW); SetIndexArrow(4,110); SetIndexBuffer(4,buf2_up); SetIndexEmptyValue(4,0.0); SetIndexStyle(5,DRAW_ARROW); SetIndexArrow(5,110); SetIndexBuffer(5,buf2_down); SetIndexEmptyValue(5,0.0); SetIndexStyle(6,DRAW_ARROW); SetIndexArrow(6,110); SetIndexBuffer(6,buf1_up); SetIndexEmptyValue(6,0.0); SetIndexStyle(7,DRAW_ARROW); SetIndexArrow(7,110); SetIndexBuffer(7,buf1_down); SetIndexEmptyValue(7,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- SetAutoDisplay(); shortname="# Forex Freedom("+Period_1+","+Period_2+","+Period_3+","+Period_4+")"; firstTime=true; //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int i=0, y15m=0, y4h=0, y1h=0, y30m=0, yy; int limit=Bars-counted_bars; datetime TimeArray_4H[], TimeArray_1H[], TimeArray_30M[], TimeArray_15M[]; //---- if (firstTime || NewBar()) { firstTime=false; int win=UniqueNum; // WindowFind(shortname); double dif=Time[0] - Time[1]; for(int ii=ObjectsTotal()-1; ii>-1; ii--) { if (StringFind(ObjectName(ii),"FF_"+win+"_")>=0) ObjectDelete(ObjectName(ii)); else ii=-1; } //---- double shift=0.2; for(ii=0; ii<4; ii++) { string txt="??"; double gp; switch(ii) { case 0: txt=tf2txt(Period_1); gp=1 + shift; break; case 1: txt=tf2txt(Period_2); gp=1 + Gap + shift; break; case 2: txt=tf2txt(Period_3); gp=1 + Gap*2 + shift; break; case 3: txt=tf2txt(Period_4); gp=1 + Gap*3 + shift; break; } string name="FF_"+win+"_"+ii+"_"+txt; ObjectCreate(name, OBJ_TEXT, WindowFind(shortname), iTime(NULL,0,0)+dif*3, gp); ObjectSetText(name, txt,8,"Arial", Black); } } ArrayCopySeries(TimeArray_4H,MODE_TIME,Symbol(),Period_4); ArrayCopySeries(TimeArray_1H,MODE_TIME,Symbol(),Period_3); ArrayCopySeries(TimeArray_30M,MODE_TIME,Symbol(),Period_2); ArrayCopySeries(TimeArray_15M,MODE_TIME,Symbol(),Period_1); //---- for(i=0, y15m=0, y4h=0, y1h=0, y30m=0;i