ソースコード完成例
各処理の説明
■プロパティの設定
①#property indicator_chart_window
②#property indicator_buffers 3
③#property indicator_color1 Green
④#property indicator_color2 Green
⑤#property indicator_color3 Green
⑥#property indicator_style1 STYLE_SOLID
⑦#property indicator_style2 STYLE_SOLID
⑧#property indicator_style3 STYLE_SOLID
⑨#property indicator_width1 2
⑩#property indicator_width2 2
⑪#property indicator_width3 2
①#property indicator_chart_window
インジゲータをチャートウインドウに表示する。
②#property indicator_buffers 3
インジゲータのバッファを格納する。
③#property indicator_color1 Green
インジゲータ1(上線)の色を指定する。今回は緑(Green)を使用。
④#property indicator_color2 Green
インジゲータ2(中央線)の色を指定する。今回は緑(Green)を使用。
⑤#property indicator_color3 Green
インジゲータ3(下線)の色を指定する。今回は緑(Green)を使用。
⑥#property indicator_style1 STYLE_SOLID
インジゲータ1(上線)のラインの種類を指定する。今回は実線を使用。
⑦#property indicator_style2 STYLE_SOLID
インジゲータ2(中央線)のラインの種類を指定する。今回は実線を使用。
⑧#property indicator_style3 STYLE_SOLID
インジゲータ3(下線)のラインの種類を指定する。今回は実線を使用。
⑨#property indicator_width1 2
インジゲータ1(上線)のラインの太さ(幅)を指定する。今回は2を使用。
⑩#property indicator_width2 2
インジゲータ2(中央線)のラインの太さ(幅)を指定する。今回は2を使用。
⑪#property indicator_width3 2
インジゲータ3(下線)のラインの太さ(幅)を指定する。今回は2を使用。
■変数の設定
①double BufUP[];
②double BufCenter[];
③double BufDOWN[];
①double BufUP[];
double型の変数を指定。ここでは、BufUP(上線の値)という配列を指定。
②double BufCenter[];
double型の変数を指定。ここでは、BufCenter(中央線の値)という配列を指定。
③double BufDOWN[];
double型の変数を指定。ここでは、BufDOWN(下線の値)という配列を指定。
■初期化関数の設定
int init()
{
①SetIndexBuffer(0, BufUP);
②SetIndexBuffer(1, BufCenter);
③SetIndexBuffer(2, BufDOWN);
return(0);
}
①SetIndexBuffer(0,BufUP);
インジケーターバッファーをインジケーターバッファー領域に割り当てる。
ここでは、0番目のインデックスを指定し、BufUPという配列を指定。
②SetIndexBuffer(1,BufCenter);
インジケーターバッファーをインジケーターバッファー領域に割り当てる。
ここでは、1番目のインデックスを指定し、BufCenterという配列を指定。
③SetIndexBuffer(2,BufDOWN);
インジケーターバッファーをインジケーターバッファー領域に割り当てる。
ここでは、2番目のインデックスを指定し、BufDOWNという配列を指定。
■指標計算関数の設定
int start()
{
① int limit = Bars-IndicatorCounted();
②for(int i=0; i < limit; i++)
{
③BufUP[i] = iBands(NULL,0,20,3,0,PRICE_CLOSE,1,i);
④BufCenter[i] = iBands(NULL,0,20,3,0,PRICE_CLOSE,0,i);
⑤BufDOWN[i] = iBands(NULL,0,20,3,0,PRICE_CLOSE,2,i);
}
return(0);
}
①int limit = Bars-IndicatorCounted();
int型の変数limitにBars-IndicatorCounted()を代入。
Barsは、
表示されているバーの本数を格納しているint型の変数。
IndicatorCounted()は、インジケーターの確定値が計算されたバー(現在のバー以外)の本数を取得する関数。
②for(int i=0; i<limit; i++){ }
for文。
③BufUP[i] = iBands(NULL,0,20,3,0,PRICE_CLOSE,1,i);
配列BufUPにiBandsの値(上線の値)を代入。
④BufCenter[i] = iBands(NULL,0,20,3,0,PRICE_CLOSE,0,i);
配列BufCenterにiBandsの値(中央線の値)を代入。
⑤BufDOWN[i] = iBands(NULL,0,20,3,0,PRICE_CLOSE,2,i);
配列BufDOWNにiBandsの値(下線の値)を代入。