ZigZagのタグを付けられた記事一覧

インジケータの情報を取得する2

4XP => メタトレーダー対応、固定スプレッド、最小1000通貨
50種類以上の通貨ペア、各種CFD(金、株など)対応

前回に引き続き、「ZigZag」インジケータを利用します。

この「ZigZag」インジケータをつかって、別のインジケータを作ってみましょう。

簡単インジケータ作成テンプレート」を使ったサンプルを作ってみます。

テンプレートを適当なファイル名にコピーして、

インストールパス\MetaTrader\experts\indicators

に入れてください。

コピーした、テンプレートのinit()を以下のように修正してください。

int init()

{

//—- indicators

SetIndexStyle(0,DRAW_ARROW, EMPTY, 4);

SetIndexArrow(0,159);

SetIndexBuffer(0,ExtMapBuffer1);

SetIndexStyle(1,DRAW_ARROW, EMPTY, 2);

SetIndexBuffer(1,ExtMapBuffer2);

SetIndexStyle(2,DRAW_ARROW, EMPTY, 2);

SetIndexBuffer(2,ExtMapBuffer3);

//—-

return(0);

}

次は、DataSet()を以下のように修正してください。

void DataSet(int i)

{

ExtMapBuffer1[i]=iCustom(NULL, 0, “ZigZag”,12,5,3,0,i);

ExtMapBuffer2[i]=iCustom(NULL, 0, “ZigZag”,12,5,3,1,i);

ExtMapBuffer3[i]=iCustom(NULL, 0, “ZigZag”,12,5,3,2,i);

}

これで終了です。

今回注目する点は、

iCustom(NULL, 0, “ZigZag”,12,5,3,2,i);

インターフェース仕様は、

double iCustom( string symbol, int timeframe, string name, …, int mode, int shift)

で、symbolにNULLを入れることで、今利用している通貨ペアを使用します。

timeframeに0を入れことで、今利用している通貨ペアの時間軸を使います。

nameは、利用したいインジケータ名「ZigZag」。

ファイル名の拡張子をのぞいた名前を使います。

問題は、次の

ここは、利用元のインジケータのパラメータを入れます。

「ZigZag」は、3つパラメータがあるので、3つ。

12,5,3

を指定しています。

利用元のインジケータのパラメータが0なら0、20なら20。

引数が可変になるので、分かりにくいところです。

modeは、何番目のバッファから取得するか。

shiftは、何番目の足の情報を取得するかです。

パラメータ設定部分が、わかりにくいので注意してくださいね。

コンパイルして、動かすと元々線が出ていた場所は、赤丸。

バッファ1が青い×。

バッファ2が緑の×。

が表示されるはずです。

この方法は、いろいろなインジケータから情報を取得できるので、おもしろいことができると思います。


タグ