BB Arrow - インジゲーター

sitemap
世界最強のFXキャッシュバックサイト
TOP > インジゲータ > BB Arrow
BB Arrow
BB Arrowの説明
ボリンジャーバンドの上バンドにタッチしたときは、下矢印、下バンドにタッチしたときは、上矢印をチャート上に矢印を表示するインジゲーター。

タッチしてからの逆張りの目安として使ったりすることができる。

ソースコード説明
ソースコード完成例
cci_arrowコード
テキスト版(ソースコード)はこちら
各処理の説明
■プロパティの設定
①#property indicator_chart_window
②#property indicator_buffers 5
③#property indicator_color1 Green
④#property indicator_color2 Green
⑤#property indicator_color3 Green
⑥#property indicator_color4 Blue
⑦#property indicator_color5 Red
⑧#property indicator_style1 STYLE_SOLID
⑨#property indicator_style2 STYLE_SOLID
⑩#property indicator_style3 STYLE_SOLID
⑪#property indicator_style4 STYLE_SOLID
⑫#property indicator_style5 STYLE_SOLID
⑬#property indicator_width1 2
⑭#property indicator_width2 2
⑮#property indicator_width3 2
⑯#property indicator_width4 2
⑰#property indicator_width5 2

①#property indicator_chart_window
インジゲータをチャートウインドウに表示する。

②#property indicator_buffers 5
インジゲータのバッファを格納する。

③#property indicator_color1 Green
1つ目のインジゲータ(ボリンジャーバンドの上バンド)の色を指定する。今回は緑(Green)。

④#property indicator_color2 Green
2つ目のインジゲータ(ボリンジャーバンドの中央バンド)の色を指定する。今回は緑(Green)。

⑤#property indicator_color3 Green
3つ目のインジゲータ(ボリンジャーバンドの下バンド)の色を指定する。今回は緑(Green)。

⑥#property indicator_color4 Blue
2つ目のインジゲータ(上矢印)の色を指定する。今回は青(Blue)。

⑦#property indicator_color5 Red
3つ目のインジゲータ(下矢印)の色を指定する。今回は赤(Red)。

⑧#property indicator_style1 STYLE_SOLID
1つ目のインジゲータ(ボリンジャーバンドの上バンド)の線種を指定する。

⑨#property indicator_style2 STYLE_SOLID
2つ目のインジゲータ(ボリンジャーバンドの中央バンド)の線種を指定する。

⑩#property indicator_style3 STYLE_SOLID
3つ目のインジゲータ(ボリンジャーバンドの下バンド)の線種を指定する。

⑪#property indicator_style4 STYLE_SOLID
4つ目のインジゲータ(上矢印)の線種を指定する。

⑫#property indicator_style5 STYLE_SOLID
5つ目のインジゲータ(下矢印)の線種を指定する。

⑬#property indicator_width1 2
1つ目のインジゲータ(ボリンジャーバンドの上バンド)の線の幅を指定する。

⑭#property indicator_width2 2
2つ目のインジゲータ(ボリンジャーバンドの中央バンド)の線の幅を指定する。

⑮#property indicator_width3 2
3つ目のインジゲータ(ボリンジャーバンドの下バンド)の線の幅を指定する。

⑯#property indicator_width4 2
4つ目のインジゲータ(上矢印)の線の幅を指定する。

⑰#property indicator_width5 2
5つ目のインジゲータ(下矢印)の線の幅を指定する。

■変数の設定
①double BufUP[];
②double BufCenter[];
③double BufDOWN[];
④double BufUP_Arrow[];
⑤double BufDOWN_Arrow[];

①double BufUP[];
double型の変数を指定。ここでは、BufUPという配列を指定(ボリンジャーバンドの上バンド用)。

②double BufCenter[];
double型の変数を指定。ここでは、BufCenterという配列を指定(ボリンジャーバンドの中央バンド用)。

③double BufDOWN[];
double型の変数を指定。ここでは、BufDOWNという配列を指定(ボリンジャーバンドの下バンド用)。

④double BufUP_Arrow[];
double型の変数を指定。ここでは、BufUP_Arrowという配列を指定(上矢印用)。

⑤double BufDOWN_Arrow[];
double型の変数を指定。ここでは、BufDOWN_Arrowという配列を指定(上矢印用)。

■外部パラメーターの設定
①extern int BB_Period = 20;

①extern int BB_Period = 20;
int型の変数を指定。ここでは、BB_Periodという変数を指定(ボリンジャーバンドの中間線の値を計算する期間)。

■初期化関数の設定
int init()
{
   ①SetIndexBuffer(0, BufUP);
   ②SetIndexBuffer(1, BufCenter);
   ③SetIndexBuffer(2, BufDOWN);
   ④SetIndexBuffer(3, BufUP_Arrow);
   ⑤SetIndexBuffer(4, BufDOWN_Arrow);
   
   ⑥SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,2,Blue);
   ⑦SetIndexArrow(3,233);
   
   ⑧SetIndexStyle(4,DRAW_ARROW,STYLE_SOLID,2,Red);
   ⑨SetIndexArrow(4,234);
	
   return(0);
}

①SetIndexBuffer(0,BufUP);
インジケーターバッファーをインジケーターバッファー領域に割り当てる。
ここでは、0番目のインデックスを指定し、BufUPという配列を指定。

②SetIndexBuffer(1,BufCenter);
1番目のインデックスを指定し、BufCenterという配列を指定。

③SetIndexBuffer(2,BufDOWN);
2番目のインデックスを指定し、BufDOWNという配列を指定。

④SetIndexBuffer(3,BufUP_Arrow);
3番目のインデックスを指定し、BufUP_Arrowという配列を指定。

⑤SetIndexBuffer(4,BufDOWN_Arrow);
4番目のインデックスを指定し、BufDOWN_Arrowという配列を指定。

⑥SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,2,Blue);
描画スタイルを指定する。ここでは、3番目のインデックスに指定したBufUP_Arrowの設定を指定する。

⑦SetIndexArrow(3,233);
記号を表示させる。ここでは、3番目のインデックスに指定したBufUP_Arrowの設定を指定する。

⑧SetIndexStyle(4,DRAW_ARROW,STYLE_SOLID,2,Blue);
描画スタイルを指定する。ここでは、4番目のインデックスに指定したBufDOWN_Arrowの設定を指定する。

⑧SetIndexArrow(4,234);
記号を表示させる。ここでは、4番目のインデックスに指定したBufDOWN_Arrowの設定を指定する。

■指標計算関数の設定
int start()
{
	①int counted_bar = IndicatorCounted();
	②int limit = Bars-counted_bar;
    
    ③if(counted_bar == 0) limit -= BB_Period-1;
    ④for (int i = limit-1; i>=0; 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--)
	{
    ⑩if(BufUP[i] < High[i])
    {
      ⑪BufDOWN_Arrow[i] = EMPTY_VALUE;
      ⑫BufDOWN_Arrow[i] = High[i]+30*Point;
    }
    ⑬if(BufDOWN[i] > Low[i])
    {
      ⑭BufUP_Arrow[i] = EMPTY_VALUE;
      ⑮BufUP_Arrow[i] = Low[i]-30*Point;
    }
    }

   return(0);
}

①int counted_bar = IndicatorCounted();
int型の変数counted_barにバー(確定値が計算されたバー(現在のバー以外))の本数を代入。

②int limit = Bars-IndicatorCounted();
int型の変数limitにBars-IndicatorCounted()を代入。
Barsは、 表示されているバーの本数を格納しているint型の変数。
IndicatorCounted()は、インジケーターの確定値が計算されたバー(現在のバー以外)の本数を取得する関数。

③if(counted_bar == 0) limit -= BB_Period-1;
if文。

④for (int i = limit-1; i>=0; i--)
for文。

⑤BufUP[i] = iBands(NULL,0,BB_Period,3,0,PRICE_CLOSE,1,i);
配列BufUPにiBandsの値を代入。ここでは、上バンドの値を取得。

⑥BufCenter[i] = iBands(NULL,0,BB_Period,3,0,PRICE_CLOSE,0,i);
配列BufCenterにiBandsの値を代入。ここでは、中央バンドの値を取得。

⑦BufDOWN[i] = iBands(NULL,0,BB_Period,3,0,PRICE_CLOSE,2,i);
配列BufDOWNにiBandsの値を代入。ここでは、下バンドの値を取得。

⑧if(counted_bar == 0) limit -= 2;
if文。

⑨for (i = limit-1; i>=0; i--)
for文。

⑩if(BufUP[i] < High[i])
if文。ここでは、上バンドの値が高値より小さかったらという意味。

⑪BufDOWN_Arrow[i] = EMPTY_VALUE;
BufDOWN_Arrow[i]を空にする。

⑫BufDOWN_Arrow[i] = High[i]+30*Point;
高値の30ポイント上に下矢印を表示する。

⑬if(BufDOWN[i] > Low[i])
if文。ここでは、下バンドの値が安値より大きかったらという意味。

⑪BufUP_Arrow[i] = EMPTY_VALUE;
BufUP_Arrow[i]を空にする。

⑫BufUP_Arrow[i] = Low[i]+30*Point;
安値の30ポイント下に上矢印を表示する。
パラメータの説明


BB_Period : ボリンジャーバンドの中間線の値を計算する期間を指定

cci_arrow色

#0 : ボリンジャーバンドの上バンドの線
#1 : ボリンジャーバンドの中央バンドの線
#2 : ボリンジャーバンドの下バンドの線
#3 : ボリンジャーバンドの下バンドにタッチしたときの上矢印
#4 : ボリンジャーバンドの上バンドにタッチしたときの下矢印
使用例
BB_Period : 20

上記設定のときのチャート。

cci_arrow使用例
注意事項
線の幅が1以外のときは線種は変更できない。
このインジゲータに使用しているMQLの一覧
関連ページ
スポンサードリンク
Twitter