CROSS MA01 - インジゲーター

sitemap
世界最強のFXキャッシュバックサイト
TOP > インジゲータ > CROSS_MA01
CROSS_MA01
CROSS_MA01の説明
2本の移動平均線(MA)を表示させて、移動平均線がクロスしたときに矢印を表示させるインジゲーター。
トレンドの判断やエントリーのシグナルとして使用する人もいる。

ソースコード説明
ソースコード完成例

テキスト版(ソースコード)はこちら
各処理の説明
■プロパティの設定
①#property indicator_chart_window
②#property indicator_buffers 4
③#property indicator_color1 DodgerBlue
④#property indicator_color2 HotPink
⑤#property indicator_color3 Blue
⑥#property indicator_color4 Red

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

②#property indicator_buffers 4
インジゲータのバッファを格納する。今回は4つ。

③#property indicator_color1 DodgerBlue
インジゲータの色を指定する。短期移動平均線の色。今回はDodgerBlueを使用。

④#property indicator_color2 HotPink
インジゲータの色を指定する。長期移動平均線の色。今回はHotPinkを使用。

⑤#property indicator_color3 Blue
インジゲータの色を指定する。ゴールデンクロス時の上矢印の色。今回はBlueを使用。

⑥#property indicator_color4 Red
インジゲータの色を指定する。デッドクロス時の下矢印の色。今回はRedを使用。

■変数の設定
①double BufMA01[];
②double BufMA02[];
③double BufBuy[];
④double BufSell[];

⑤extern int MA01_Period = 20;
⑥extern int MA02_Period = 100;

①double BufMA01[];
double型の変数を指定。ここでは、短期移動平均線用にBufMA01という配列を指定。

②double BufMA02[];
double型の変数を指定。ここでは、長期移動平均線用にBufMA02という配列を指定。

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

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

⑤extern int MA01_Period = 20;
外部パラメーターの設定。短期移動平均線の期間を20に設定。パラメーターで変更可能。

⑥extern int MA02_Period = 40;
外部パラメーターの設定。長期移動平均線の期間を40に設定。パラメーターで変更可能。

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

	⑤SetIndexStyle(2,DRAW_ARROW,STYLE_SOLID,5,Blue);
	⑥SetIndexArrow(2,233);

	⑦SetIndexStyle(3,DRAW_ARROW,STYLE_SOLID,5,Red);
	⑧SetIndexArrow(3,234);

	return(0);
}

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

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

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

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

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

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

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

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


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

	③if(counted_bar == 0) limit -= MA02_Period-1;
	④for (int i = limit-1; i>=0; i--)
	{
		⑤BufMA01[i] = iMA(NULL,0,MA01_Period,0,MODE_EMA,PRICE_CLOSE,i);
		⑥BufMA02[i] = iMA(NULL,0,MA02_Period,0,MODE_EMA,PRICE_CLOSE,i);
	}

	⑦if(counted_bar == 0) limit -= 2;
	⑧for (i = limit-1; i>=0; i--)
	{
		⑨BufBuy[i] = EMPTY_VALUE;
		⑩if(BufMA01[i+2] <= BufMA02[i+2] && BufMA01[i+1] > BufMA02[i+1])
			⑪BufBuy[i] = Low[i]-10*Point;

		⑫BufSell[i] = EMPTY_VALUE;
		⑬if(BufMA01[i+2] >= BufMA02[i+2] && BufMA01[i+1] < BufMA02[i+1])
			⑭BufSell[i] = High[i]+10*Point;
	}
	return(0);
}

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

②int limit = Bars-counted_bar;
int型の変数limitに表示されているバーの本数からcounted_barを引いた値を代入。

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

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

⑤BufMA01[i] = iMA(NULL,0,MA01_Period,0,MODE_EMA,PRICE_CLOSE,i);
BurMA01[i]にiMAの値を代入。

⑥BufMA02[i] = iMA(NULL,0,MA02_Period,0,MODE_EMA,PRICE_CLOSE,i);
BurMA02[i]にiMAの値を代入。

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

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

⑨BufBuy[i] = EMPTY_VALUE;
BufBuy[i]にEMPTY_VALUEを代入。つまり空っぽにする。

⑩if(BufMA01[i+2] <= BufMA02[i+2] && BufMA01[i+1] > BufMA02[i+1])
if文。

⑪BufBuy[i] = Low[i]-10*Point;
安値の1pips下に上矢印を表示させる。

⑫BufSell[i] = EMPTY_VALUE;
BufSell[i]にEMPTY_VALUEを代入。つまり空っぽにする。

⑬if(BufMA01[i+2] >= BufMA02[i+2] && BufMA01[i+1] < BufMA02[i+1])
if文。

⑭BufSell[i] = High[i]+10*Point;
高値の1pips上に下矢印を表示させる。
パラメータの説明



MA01_Period : 短期移動平均線の期間の指定
MA02_Period : 長期移動平均線の期間の指定



#0 : MA01の線の色と幅とスタイル
#1 : MA02の線の色と幅とスタイル
#2 : Buy矢印の色と幅
#3 : Sell矢印の色と幅

注意事項
CROSS_MA01は移動平均線のクロスと同時に矢印は表示されません。
ローソク足が確定したときに1本前の足で移動平均線がクロスしていた場合のみ矢印を表示させます。
このインジゲータに使用しているMQLの一覧
関連ページ
スポンサードリンク
Twitter