BB STC - インジゲーター

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

また、ストキャスティクスが指定したレベルラインを上抜けたら、上矢印、下抜けたら、下矢印をチャート上に矢印を表示するインジゲーター。

ボリンジャーバンドとストキャスティクスの組み合わせで逆張りに使えるかも。

作成の簡単な経緯などは、「ボリンジャーバンドとストキャスティクスの組み合わせ」で紹介しています。

ソースコード説明
ソースコード完成例
cci_arrowコード
テキスト版(ソースコード)はこちら
各処理の説明
■プロパティの設定
①#property indicator_chart_window
②#property indicator_buffers 8

①#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[];

①double BufSTC_MAIN[];
double型の変数を指定。ここでは、BufSTC_MAINという配列を指定(ストキャスティクスの値用)。

②double BufUP_STC[];
double型の変数を指定。ここでは、BufUP_STCという配列を指定(ストキャスティクスの上矢印用)。

③double BufDOWN_STC[];
double型の変数を指定。ここでは、BufDOWN_STCという配列を指定(ストキャスティクスの下矢印用)。

④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 UP_LINE = 80;
③extern int DOWN_LINE = 20;

①extern int BB_Period = 20;
int型の変数を指定。ここでは、BB_Periodという変数を指定(ボリンジャーバンドの中間線の値を計算する期間)。
②extern int UP_LINE = 80;
int型の変数を指定。ここでは、UP_LINEという変数を指定(ストキャスティクスのレベルライン)。

③extern int DOWN_LINE = 20;
int型の変数を指定。ここでは、BB_Periodという変数を指定(ストキャスティクスのレベルライン)。

■初期化関数の設定
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);
}

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

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

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

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

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

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

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

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

⑨SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,EMPTY_VALUE);
描画スタイルを指定する。ここでは、0番目のインデックスに指定したBufSTCの設定を指定する。

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

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

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

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

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

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

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

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

■指標計算関数の設定
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] < 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 -= 1;
if文。

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

⑤BufSTC_MAIN[i] = iStochastic(NULL,0,5,3,3,MODE_SMA,0,MODE_MAIN,i);
配列BufSTC_MAINにiStochasticの値を代入。

⑥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文。

⑪ストキャスティクスの下矢印サイン処理
ストキャスティクスの下矢印を表示させる条件と処理。

⑫ストキャスティクスの上矢印サイン処理
ストキャスティクスの上矢印を表示させる条件と処理。

⑬ボリンジャーバンドの下矢印サイン処理
ボリンジャーバンドの下矢印を表示させる条件と処理。

⑬ボリンジャーバンドの上矢印サイン処理
ボリンジャーバンドの上矢印を表示させる条件と処理。

⑪BufUP_Arrow[i] = EMPTY_VALUE;
BufUP_Arrow[i]を空にする。
パラメータの説明
bb_stcパラメーター

BB_Period : ボリンジャーバンドの中間線の値を計算する期間を指定
UP_LINE : ストキャスティクスのレベルライン(上限値)
DOWN_LINE : ストキャスティクスのレベルライン(下限値)

bb_stc色

#0 : 使用しない
#1 : ストキャスティクスがレベルライン(下限値)を上抜けたときの上矢印
#2 : ストキャスティクスがレベルライン(上限値)を下抜けたときの下矢印
#3 : 使用しない
#4 : 使用しない
#5 : 使用しない
#6 : ボリンジャーバンドの上バンドにタッチしたときの下矢印
#7 : ボリンジャーバンドの下バンドにタッチしたときの上矢印
使用例
BB_Period : 20
UP_LINE : 80
DOWN_LINE : 20

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

BB STC使用例
ボリンジャーバンドとストキャスティクスは表示されません。表示させたい場合は、既存のインジゲーターをチャートに追加してください。
注意事項
線の幅が1以外のときは線種は変更できない。
このインジゲータに使用しているMQLの一覧
関連ページ
スポンサードリンク
Twitter