//+------------------------------------------------------------------+ //| | //| Copyright © 2004, MetaQuotes Software Corp. | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, FX Sniper " #property link "http://www.metaquotes.net/" //---- indicator settings #property indicator_chart_window #property indicator_buffers 4 #property indicator_color1 Yellow #property indicator_color2 Green #property indicator_color3 Red #property indicator_color4 White //---- buffers double ExtMapBuffer1[]; //Yellow double ExtMapBuffer2[]; //Green double ExtMapBuffer3[]; //Red double XBuffer[]; //White double XBuffer[]; //White extern int extRperiod = 48; extern int extDraw4HowLong = 500; //----- variables int c; int i; int length; double lengthvar; int loopbegin; int pos; double sum; double tmp; int width; double wtp; //previous value double wt; //current value //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { SetIndexBuffer(0,ExtMapBuffer1); //Yellow SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2); SetIndexBuffer(1,ExtMapBuffer2); //Green SetIndexStyle(1, DRAW_LINE, STYLE_SOLID, 2); SetIndexBuffer(2,ExtMapBuffer3); //Red SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 2); // 233 up arrow // 234 down arrow // 159 big dot // 168 open square // 120 box with X SetIndexStyle(3,DRAW_ARROW); SetIndexBuffer(3, XBuffer); //White SetIndexArrow(3,159); return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { int i; for( i=0; i= 0; pos--) { sum = 0; for(i = length; i >= 1 ; i--) { lengthvar = length + 1; lengthvar /= 3; tmp = 0; tmp = ( i - lengthvar)*Close[length-i+pos]; sum+=tmp; } wtp=wt; wt = sum*6/(length*(length+1)); ExtMapBuffer1[pos] = wt; //yellow ExtMapBuffer2[pos] = wt; //green ExtMapBuffer3[pos] = wt; //red i_am_red=false; i_am_green=false; if (wtp > wt) { //ExtMapBuffer2[pos+1] = EMPTY_VALUE; //remove GREEN ExtMapBuffer2[pos+1] = EMPTY_VALUE; //remove GREEN i_am_red=true; redcount++; } else { //ExtMapBuffer3[pos+1] = EMPTY_VALUE; //remove RED ExtMapBuffer3[pos+1] = EMPTY_VALUE; //remove RED i_am_green=true; greencount++; } if (i_am_yellow) {yellowcount++;} } return(0); } //+------------------------------------------------------------------+