CCI Arrow - インジゲーター

sitemap
世界最強のFXキャッシュバックサイト
TOP > インジゲータ > CCI_Arrow
CCI_Arrow
CCI_Arrowの説明
CCIの値が一定値を抜けた場合(1本前の終値時)、チャート上に矢印を表示するインジゲーター。

買われすぎと売られすぎの判断材料として利用できる。

ソースコード説明
ソースコード完成例
cci_arrowコード
テキスト版(ソースコード)はこちら
各処理の説明
■プロパティの設定
①#property indicator_chart_window
②#property indicator_buffers 3
③#property indicator_color1 Black
④#property indicator_color2 Blue
⑤#property indicator_color3 Red

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

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

③#property indicator_color1 Black
1つ目のインジゲータの色を指定する。今回は黒(実際は表示させない)。

④#property indicator_color2 Blue
2つ目のインジゲータの色を指定する。今回は青(Blue)。

⑤#property indicator_color3 Red
3つ目のインジゲータの色を指定する。今回は黒(Red)。

■変数の設定
①double BufCCI[];
②double BufUp[];
③double BufDown[];

①double BufCCI[];
double型の変数を指定。ここでは、BufCCIという配列を指定。

②double BufUp[];
double型の変数を指定。ここでは、BufUpという配列を指定。

③double BufDown[];
double型の変数を指定。ここでは、BufDownという配列を指定。

■外部パラメーターの設定
①extern int CCI_Period = 20;
②extern int UP_Line = 100;
③extern int Down_Line = 100;

①extern int CCI_Period = 20;
int型の変数CCI_Periodを指定。初期値は20。

②extern int UP_Line = 100;
int型の変数UP_Lineを指定。初期値は100。

③extern int Down_Line = 100;
int型の変数Down_Lineを指定。初期値は100。
ここでは、マイナス表記ができないため、条件文内でマイナスにする。

■初期化関数の設定
int init()
{
	①SetIndexBuffer(0,BufCCI);
	②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);
}

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

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

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

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

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

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

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

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

■指標計算関数の設定
int start()
{
①	int counted_bar = IndicatorCounted();
②int limit = Bars-counted_bar;

③	if(counted_bar == 0) limit -= CCI_Period-1;
④for (int i = limit-1; i>=0; i--)
	{
		⑤BufCCI[i] = iCCI(NULL,0,CCI_Period,5,i);
	}

⑥	if(counted_bar == 0) limit -= 2;
⑦for (i = limit-1; i>=0; i--)
	{
		⑧BufUp[i] = EMPTY_VALUE;
		⑨if(BufCCI[i+1] < UP_Line && BufCCI[i] > UP_Line)
		{
		⑩BufUp[i] = Low[i]-20*Point;
		}
		
		⑪BufDown[i] = EMPTY_VALUE;
		⑫if(BufCCI[i+1] > -Down_Line && BufCCI[i] < -Down_Line)
		{
		⑬BufDown[i] = High[i]+20*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 -= CCI_Period-1;
if文。

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

⑤BufCCI[i] = iCCI(NULL,0,CCI_Period,5,i);
配列BufCCIにiCCIの値を代入。
ここでは、現在のチャートの通貨ペア、時間足、期間はパラメーターで変更可能(CCI_Period)、代表値、i番前の足を指定。

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

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

⑧BufUp[i] = EMPTY_VALUE;
BufUpの値を空にする。

⑨if(BufCCI[i+1] < UP_Line && BufCCI[i] > UP_Line)
CCIの条件文。2本前のCCIの値がUP_Line以下で、1本前のCCIの値がUP_Line以上のとき。

⑩BufUp[i] = Low[i]-20*Point;
安値の20ポイント下に上矢印を表示する。

⑪BufDown[i] = EMPTY_VALUE;
BufDownの値を空にする。

⑫if(BufCCI[i+1] > -Down_Line && BufCCI[i] < -Down_Line)
CCIの条件文。2本前のCCIの値がDown_Line以上で、1本前のCCIの値がDown_Line以下のとき。

⑬BufDown[i] = High[i]+20*Point;
高値の20ポイント上に下矢印を表示する。
パラメータの説明


CCI_Period : CCIの期間を指定
UP_Line : 上限値(買われすぎ)→この値以上になったときに上矢印を表示
Down_Line : 下限値(売られすぎ) →この値以下になったときに下矢印を表示
※下限値はマイナスになります。

cci_arrow色

#1 : CCIの色(表示されません)
#2 : 上限値を抜けたときに表示する上矢印の色
#3 : 下限値を抜けたときに表示する下矢印の色
使用例
CCI_Period : 20
UP_Line :100
Down_Line : 100(-100)

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

cci_arrow使用例

※わかりやすいようにサブチャートにCCIを表示しています。
UP_Lineの100を上抜け、Down_Lineの-100を下抜けしたところに黄色い縦の点線を引いています。
注意事項
サブチャートにCCIのチャートは表示されません。
線の幅が1以外のときは線種は変更できない。
このインジゲータに使用しているMQLの一覧
関連ページ
スポンサードリンク
Twitter