2006年03月20日
MT4入門(5) - カスタムインディケータの作り方(3)
- 手ぶら
- 21:04
- コメントする
- トラックバックする
- カテゴリー:MetaTrader4入門
MT4入門の第5回目です。
前回ちょっと長くなってしまい、自分で読み直してみても嫌になってしまったので、これからは1回の記事は短めにしようと思います。
今回は
「カスタムインディケータの作り方(3) - インディケータの色と線種を変えよう」
です。
前回インディケータの値を入れておく配列についてお話ししましたが、実は配列を定義して計算結果を代入するだけではインディケータは表示されません。
実際にインディケータを表示させるためには、SetIndexBuffer() という関数で、配列を実際のインディケータに割り当ててやる必要があります。この処理は最初に一度だけやればいいので、init() という初期化関数の中に書くことにします。
SetIndexBuffer(0, Buf0);
この例は、Buf0 という配列を0番目のインディケータに割り当てることを意味します。ここで注意することは、インディケータの番号が1番からではなく、0番目から数えるということです。なので、複数あるときは
SetIndexBuffer(0,Buf0);
SetIndexBuffer(1,Buf1);
SetIndexBuffer(2,Buf2);
:
:
のように最初のパラメータを1ずつ増やしていけばよいのです。
インディケータの色と線種もこのinit()関数の中で指定することで変えられます。
そのための関数として SetIndexStyle() を使います。この関数は5つのパラメータがあります。
SetIndexStyle(index, type, style, width, clr)
それぞれのパラメータの意味は
index : インディケータの番号(0,1,2,3,4,5,6,7)
type : インディケータの種類(DRAW_LINE, DRAW_SECTION, DRAW_HISTOGRAM, DRAW_ARROW, DRAW_ZIGZAG, DRAW_NONE)
style : ラインの種類(STYLE_SOLID, STYLE_DASH, STYLE_DOT, STYLE_DASHDOT, STYLE_DASHDOTDOT)
width : ラインの幅(1,2,3,4,5)
clr : ラインの色(Black, Red, Blue など)
です。
インディケータの種類は色々ありますが、ここでは値を直線で結んでいくDRAW_LINEの場合のみ説明します。
ラインの種類は STYLE_SOLIDが実線でその他が点線です。
ラインのサンプルはこんな感じです。DOT が 点で DASH がちょっと長い線になっています。
ラインの幅は文字通りで、幅をドットで表します。
ラインの色の表し方は数値で表す方法もありますが、色定数として予め割り当てられているものを使う方が便利です。
MetaEditor の Navigator ウインドウの Dictionary タブから Standard ccnstants - Web colors を選ぶと一覧が表示されます。
実際のプログラム中には、
SetIndexStyle(0, DRAW_LINE, STYLE_DOT, 1, Red);
のように書きます。
これは、0番目のインディケータに Red の色で1ドット幅の点線のラインを引くことを表します。
チャート上ではこんな感じになります。
この行を追加したサンプルプログラムを(Sample2_Ind.mq4) としておきます。色々とパラメータを変えてどうなるか確かめてみてください。
プログラムを変えたときは必ずF5を押してコンパイルしてエラーが出ないことを確認してください。
あと、インディケータの表示はコンパイルしただけでは反映されませんので、タイムフレームを変えるか、MetaTrader を再起動するか、インディケータを一旦削除して再度挿入するかなどしてみてください。
今日はこんなところです。次回はプログラムを変えないでパラメータを変える方法などを説明する予定です。
為替ブログランキング 現在7位
「次の記事も読んでみたい!」
と思った方はクリックにご協力ください。↑
Trackback on "MT4入門(5) - カスタムインディケータの作り方(3)"
このエントリーのトラックバックURL:
"MT4入門(5) - カスタムインディケータの作り方(3)"へのトラックバックはまだありません。
"MT4入門(5) - カスタムインディケータの作り方(3)"へのコメントはまだありません。