#property indicator_chart_window #property indicator_buffers 8 double BufSTC_MAIN[]; double BufUP_STC[]; double BufDOWN_STC[]; double BufUP[]; double BufCenter[]; double BufDOWN[]; double BufUP_Arrow[]; double BufDOWN_Arrow[]; extern int BB_Period = 20; extern int UP_LINE = 80; extern int DOWN_LINE = 20; // 初期化関数 int init() { SetIndexBuffer(0, BufSTC_MAIN); SetIndexBuffer(1, BufUP_STC); SetIndexBuffer(2, BufDOWN_STC); SetIndexBuffer(3, BufUP); SetIndexBuffer(4, BufCenter); SetIndexBuffer(5, BufDOWN); SetIndexBuffer(6, BufUP_Arrow); SetIndexBuffer(7, BufDOWN_Arrow); 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); SetIndexStyle(6,DRAW_ARROW,STYLE_SOLID,4,Green); SetIndexArrow(6,233); SetIndexStyle(7,DRAW_ARROW,STYLE_SOLID,4,Yellow); SetIndexArrow(7,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); BufUP[i] = iBands(NULL,0,BB_Period,3,0,PRICE_CLOSE,1,i); BufCenter[i] = iBands(NULL,0,BB_Period,3,0,PRICE_CLOSE,0,i); BufDOWN[i] = iBands(NULL,0,BB_Period,3,0,PRICE_CLOSE,2,i); } if(counted_bar == 0) limit -= 2; for (i = limit-1; i>=0; i--) { BufDOWN_STC[i] = EMPTY_VALUE; if(BufSTC_MAIN[i+1] > UP_LINE && BufSTC_MAIN[i] <= UP_LINE) { BufDOWN_STC[i] = High[i]+20*Point; } BufUP_STC[i] = EMPTY_VALUE; if(BufSTC_MAIN[i+1] < DOWN_LINE && BufSTC_MAIN[i] >= DOWN_LINE) { BufUP_STC[i] = Low[i]-20*Point; } if(BufUP[i]Low[i]){ BufUP_Arrow[i] = EMPTY_VALUE; BufUP_Arrow[i] = Low[i]-30*Point; } } return(0); }