//+------------------------------------------------------------------+ //| ZZZ.mq4 | //+------------------------------------------------------------------+ #property copyright "Istoniz" #property link "http://www.kg/" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Aqua //---- input parameters extern int Length=6; //---- buffers double ExtMapBuffer1[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_SECTION); SetIndexBuffer(0,ExtMapBuffer1); SetIndexEmptyValue(0,0.0); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int barn=300; /* //-------------------------- int counted_bars=IndicatorCounted(); limit,barn=Bars-Length; if (counted_bars<0) return(-1); if (counted_bars>0) counted_bars--; limit=Bars-counted_bars+4*Length; //Comment(" limit = ",limit, " Bars = ",Bars); //-------------------------- */ //-------------------------- int shift,Swing,Swing_n,i,zu,zd,uzl; double LL,HH,BH,BL,NH,NL; Swing_n=0; Swing=0; uzl=0; BH =High[barn]; BL=Low[barn]; zu=barn; zd=barn; for ( shift=barn; shift>0 ; shift--) { LL=10000000; HH=-100000000; for ( i=shift+Length; i>shift+1 ; i--) { if ( Low[i]HH ) HH=High[i]; } if ( Low[shift]HH ) { Swing=2; if ( Swing_n==1 ) zu=shift+1; if ( Swing_n==-1 ) zd=shift+1; } else { if ( Low[shift]HH ) Swing=1; } if ( Swing!=Swing_n && Swing_n!=0 ) { if ( Swing==2 ) { Swing=-Swing_n; BH=High[shift]; BL=Low[shift]; } uzl=uzl+1; if ( Swing==1 ) { ExtMapBuffer1[zd]=BL; } if ( Swing==-1 ) { ExtMapBuffer1[zu]=BH; } BH=High[shift]; BL=Low[shift]; } if ( Swing==1 ) { if ( High[shift]>=BH ) { BH=High[shift]; zu=shift; } } if ( Swing==-1 ) { if ( Low[shift]<=BL ) { BL=Low[shift]; zd=shift; } } Swing_n=Swing; } //---- return(0); } //+------------------------------------------------------------------+