mt4 - インジゲーター - Simple MACD

sitemap
世界最強のFXキャッシュバックサイト
TOP > インジゲータ > Simple_MACD
Simple_MACD
Simple_MACDの説明
MACDを独自インジゲータとして作成。
単純にチャートウインドウの下のサブウインドウにMACDを表示させるだけのインジゲータ。

Simple_RSIイメージ
ソースコード説明
ソースコード完成例

テキスト版(ソースコード)はこちら
各処理の説明
■プロパティの設定
①#property indicator_separate_window
②#property indicator_buffers 3
③#property indicator_color1 Silver
④#property indicator_width1 2
⑤#property indicator_color2 Blue
⑥#property indicator_width2 2
⑦#property indicator_color3 Red
⑧#property indicator_width3 2

①#property indicator_separate_window
インジゲータをサブウインドウに表示する。

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

③#property indicator_color1 Silver
インジゲータの色を指定する。今回は銀(Silver)を使用。

④#property indicator_width1 2
インジゲータのラインの太さ(幅)を指定する。今回は2を使用。

⑤#property indicator_color2 Blue
インジゲータの色を指定する。今回は青(Blue)を使用。

⑥#property indicator_width2 2
インジゲータのラインの太さ(幅)を指定する。今回は2を使用。

⑦#property indicator_color3 Red
インジゲータの色を指定する。今回は赤(Red)を使用。

⑧#property indicator_width3 2
インジゲータのラインの太さ(幅)を指定する。今回は2を使用。

■変数の設定
①double BufMACD_HISTOGRAM[];
②double BufMACD_MAIN[];
③double BufMACD_SIGNAL[];

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

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

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

■初期化関数の設定
int init()
{
①SetIndexStyle(0,DRAW_HISTOGRAM);
②SetIndexBuffer(0,BufMACD_HISTOGRAM);
③SetIndexStyle(1,DRAW_LINE);
④SetIndexBuffer(1,BufMACD_MAIN);
⑤SetIndexStyle(2,DRAW_LINE);
⑥SetIndexBuffer(2,BufMACD_SIGNAL);
return(0);
}

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

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

③SetIndexStyle(1,DRAW_LINE);
描画スタイルを指定する。
ここでは、1番目のインデックスに指定したBufMACD_MAINの設定を指定。

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

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

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

■指標計算関数の設定
int start()
{
① int limit = Bars-IndicatorCounted();
②for(int i=0; i<limit; i++)
{
③BufMACD_MAIN[i] = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
④BufMACD_SIGNAL[i] = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i);
⑤BufMACD_HISTOGRAM[i] = BufMACD_MAIN[i] - BufMACD_SIGNAL[i];
}
return(0);
}

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

②for(int i=0; i<limit; i++){ }
for文。

③BufMACD_MAIN[i] = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_MAIN,i);
配列BufMACD_MAINにiMACDの値を代入。
ここでは、現在のチャートの通貨ペア、時間足、ファーストEMA期間12、スローEMA期間26、シグナルライン期間9、終値、メインラインの値、終値、メイン、i番目の足を指定。

④BufMACD_SIGNAL[i] = iMACD(NULL,0,12,26,9,PRICE_CLOSE,MODE_SIGNAL,i);
配列BufMACD_SIGNALにiMACDの値を代入。
ここでは、現在のチャートの通貨ペア、時間足、ファーストEMA期間12、スローEMA期間26、シグナルライン期間9、終値、シグナルラインの値、i番目の足を指定。

⑤BufMACD_HISTOGRAM[i] = BufMACD_MAIN[i] - BufMACD_SIGNAL[i];
配列BufMACD_HISTOGRAMにBufMACD_MAIN[i] - BufMACD_SIGNAL[i]の値を代入。
パラメータの説明


線の属性を指定。

#0 : ヒストグラムの色
#1 : メインラインの色
#2 : シグナルラインの色

ここで任意に線の色や太さ(幅)、線種(スタイル)を指定することができる。
注意事項
線の幅が1以外のときは線種は変更できない。
このインジゲータに使用しているMQLの一覧
関連ページ
スポンサードリンク
Twitter