悬赏20金币未解决
//------------------------------------------------------------------ #property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 clrDeepSkyBlue #property indicator_color2 clrRed #property indicator_width1 2 #property indicator_width2 2 extern int ArrowCodeDn = 233; extern int ArrowCodeUp = 234; extern int LagBar = 1; extern string NoteLagBar = "0 = Signal on current ; 1 = Wait for close"; double ArrowsUp[]; double ArrowsDn[]; double body[]; double trend[]; int init() { IndicatorBuffers(4); SetIndexBuffer(0,ArrowsUp); SetIndexArrow(0,ArrowCodeDn); SetIndexBuffer(1,ArrowsDn); SetIndexArrow(1,ArrowCodeUp); SetIndexBuffer(2,trend); SetIndexBuffer(3,body); SetIndexStyle(0,DRAW_ARROW); SetIndexStyle(1,DRAW_ARROW); return(0); } int deinit() { return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted(); int i, limit; if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit = MathMin(Bars-counted_bars,Bars-1); for(i=limit; i>=0; i--) { double gap = 3.0*iATR(NULL,0,20,i)/4.0; body[i] = MathAbs(Open[i]-Close[i]); trend[i] = 0.0; if((High[i+1] < Low[i-1]) && (body[i] > body[i+1]) && (body[i] > body[i+2]) && (body[i] > body[i+3]) && (iVolume(NULL,0,i-LagBar)>1)) { trend[i] = 1; } if((Low[i+1] > High[i-1]) && (body[i] > body[i+1]) && (body[i] > body[i+2]) && (body[i] > body[i+3]) && (iVolume(NULL,0,i-LagBar)>1)) { trend[i] =- 1; } ArrowsUp[i] = EMPTY_VALUE; ArrowsDn[i] = EMPTY_VALUE; if (trend[i] != trend[i+1]) { if (trend[i] == 1) ArrowsUp[i] = Low[i] - gap; else if (trend[i] ==- 1) ArrowsDn[i] = High[i] + gap; } } return(0); } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ |
找资源