//+---------------------------------------------------------------------+ //| _Levels.mq4 | //| Copyright © InVest0r 2010 | //+---------------------------------------------------------------------+ #property indicator_chart_window #property indicator_buffers 8 #property indicator_color1 Red //0 #property indicator_color2 Blue //1 #property indicator_color3 Red //2 #property indicator_color4 Blue //3 #property indicator_color5 Gray //4 #property indicator_color6 Gray //5 #property indicator_color7 White //6 #property indicator_color8 White //7 extern int nobs =900, Level1 =14, Level2 =8, Level3 =50; double levelup1[999],leveldn1[999], levelup2[999],leveldn2[999], levelup3[999],leveldn3[999]; double level1,level2,level3; double trdn[], trup[]; double up[],dn[]; //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int init() { SetIndexBuffer(0,dn); SetIndexStyle(0,DRAW_ARROW,EMPTY,1); SetIndexArrow(0,238); SetIndexBuffer(1,up); SetIndexStyle(1,DRAW_ARROW,EMPTY,1); SetIndexArrow(1,236); SetIndexBuffer(2,trdn); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(3,trup); SetIndexStyle(3,DRAW_LINE); // SetIndexBuffer(4,levelup2); // SetIndexStyle(4,DRAW_LINE); // SetIndexBuffer(5,leveldn2); // SetIndexStyle(5,DRAW_LINE); SetIndexBuffer(6,levelup3); SetIndexStyle(6,DRAW_LINE,0,2); SetIndexBuffer(7,leveldn3); SetIndexStyle(7,DRAW_LINE,0,2); SetIndexShift(4,2); SetIndexShift(5,2); return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { ObjectsDeleteAll(0); Comment(""); return(0); } //------------------------------------------------------------------------ int start() { level1=2.0/(1+Level1); for(int i=nobs; i>=0; i--) { if(iHigh(NULL,0,i)>levelup1[i+1]) levelup1[i]=iHigh(NULL,0,i); else levelup1[i]=level1*iHigh(NULL,0,i)+(1-level1)*levelup1[i+1]; if(iLow(NULL,0,i)leveldn1[i+1]) {trup[i]=leveldn1[i]; } if (levelup1[i]leveldn2[i] && iLow(NULL,0,i+1)==leveldn2[i+1]) { ObjectCreate(Time[i]+Symbol()+"up",OBJ_ARROW,0,Time[i],leveldn1[i]); ObjectSet(Time[i]+Symbol()+"up",OBJPROP_ARROWCODE,236); ObjectSet(Time[i]+Symbol()+"up",OBJPROP_COLOR,Lime);} } return(0); } //---------------------------------------------------------------------------------------------------------------