Parabolic Arrow - インジゲーター

sitemap
世界最強のFXキャッシュバックサイト
TOP > インジゲータ > Parabolic Arrow
Parabolic Arrow
Parabolic Arrowの説明
パラボリックSARが反転したら、チャート上に矢印を表示するインジゲーター。

パラボリックは、反応が早めなので、トレンド転換時の逆張りや、トレンドフォローの決済の目安として使ったりすることができる。

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

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

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

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

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

■変数の設定
①double BufSAR[];
②double BufBuy[];
③double BufSell[];

①double BufSAR[];
double型の変数を指定。ここでは、BufSARという配列を指定(パラボリックSARの値用)。

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

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

■初期化関数の設定
int init()
{
	①SetIndexBuffer(0,BufSAR);
	②SetIndexBuffer(1,BufBuy);
	③SetIndexBuffer(2,BufSell);
	

	④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,BufSAR);
インジケーターバッファーをインジケーターバッファー領域に割り当てる。
ここでは、0番目のインデックスを指定し、BufSARという配列を指定。

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

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

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

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

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

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

■指標計算関数の設定
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--)
	{
		⑤BufSAR[i] = iSAR(NULL,0,0.02,0.2,i);
	}

⑥if(counted_bar == 0) limit -= 2;
⑦for (i = limit-1; i>=0; i--)
	{
⑧BufBuy[i] = EMPTY_VALUE;
⑨if(BufSAR[i+1] >= Close[i+1] && BufSAR[i] <= Close[i])
	{
⑩BufBuy[i] = Low[i]-20*Point;
	}
	
⑪BufSell[i] = EMPTY_VALUE;
⑫if(BufSAR[i+1] <= Close[i+1] && BufSAR[i] >= Close[i])
	{
⑬BufSell[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 -= 1;
if文。

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

⑤BufSAR[i] = iSAR(NULL,0,0.02,0.2,i);
配列BufSARにiSARの値を代入。ここでは、パラボリックの値を取得。

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

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

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

⑨if(BufSAR[i+1] >= Close[i+1] && BufSAR[i] <= Close[i])
if文。ここでは、パラボリックの位置がローソク足の上から下に移動したらという条件。

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

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

⑫if(BufSAR[i+1] <= Close[i+1] && BufSAR[i] >= Close[i])
if文。ここでは、パラボリックの位置がローソク足の下から上に移動したらという条件。

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

#0 : 使用しません
#1 : パラボリックがローソク足の下になったときの上矢印
#2 : パラボリックがローソク足の上になったときの下矢印
使用例
cci_arrow使用例
わかりやすいように、パラボリック(ドット)を表示させています。
実際は、矢印のみ表示されます。
注意事項
線の幅が1以外のときは線種は変更できない。
このインジゲータに使用しているMQLの一覧
関連ページ
スポンサードリンク
Twitter