#property indicator_chart_window #property indicator_buffers 3 #property indicator_color2 Blue #property indicator_style2 STYLE_SOLID #property indicator_width2 2 #property indicator_color3 Red #property indicator_style3 STYLE_SOLID #property indicator_width3 2 double BufSTC_MAIN[]; double BufUP[]; double BufDOWN[]; extern int UP_LINE = 80; extern int DOWN_LINE = 20; // 初期化関数 int init() { SetIndexBuffer(0, BufSTC_MAIN); SetIndexBuffer(1, BufUP); SetIndexBuffer(2, BufDOWN); SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,EMPTY_VALUE); SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,2,Blue); SetIndexArrow(1,233); SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,2,Red); SetIndexArrow(2,234); return(0); } // 指標計算関数 int start() { int counted_bar = IndicatorCounted(); int limit = Bars-counted_bar; if(counted_bar == 0) limit -= 1; for (int i = limit-1; i>=0; i--) { BufSTC_MAIN[i] = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,i); } if(counted_bar == 0) limit -= 2; for (i = limit-1; i>=0; i--) { BufUP[i] = EMPTY_VALUE; if(BufSTC_MAIN[i+1] < UP_LINE && BufSTC_MAIN[i] >= UP_LINE) { BufUP[i] = Low[i]-20*Point; } BufDOWN[i] = EMPTY_VALUE; if(BufSTC_MAIN[i+1] > DOWN_LINE && BufSTC_MAIN[i] <= DOWN_LINE) { BufDOWN[i] = High[i]+20*Point; } } return(0); }