インジケーター作成06

今回の内容は、「インジケーターとしての完成度を高める」です。

前回までの記事をまだ読んでない方は、まずはそちらから読み進めてください。
「MT4インジケーター作成入門」の記事一覧

前回完成ファイル【Sample_Indicator_05.mq4】をダウンロード

インジケーターの詳細設定をする

前回までは、MACDの2本のラインを描画する必要最低限のコードを入力してきました。ここでは、より細かく設定する方法を解説します。

インジケーターについての説明を追加

作成したインジケーターを他の誰かが使用する際に知ってもらいたい情報をインジケーター自体に追加することができます。
次のコードは、#propertyで始まる数行に#property descriptionの2行を追加したコードです。

#property copyright "Dr.EA公式ブログ"
#property link      "https://www.dr-ea.com/meta-blog/"
#property version   "1.00"
#property description "このインジケーターはブログ記事MT4インジケーター作成入門シリーズのサンプルインジケーターです。"
#property description "上の「Dr.EA公式ブログ」へのリンクからブログトップページをご覧いただけます。"

#property descriptionで追加した情報は、次の画像のように設定ダイアログのバージョン情報タブに表示されます。

property_description

各ラインにラベルを設定する

ラベルを設定すると、ラインをマウスでポイントしたときにValue1やValue2と表示されていたものが、設定したラベル名で表示されます。ラベルはデータウィンドウにも反映されます。
ラベルを設定するには、次のコードをOnInit()関数内に追加します。

   SetIndexLabel(0, "MACD");        // ラベルを設定
   SetIndexLabel(1, "Signal");      // ラベルを設定

SetIndexLabel画像

インジケーターの短縮名を設定する

インジケーターの短縮名を設定すると、サブウィンドウの左上(とラベル設定無しのデータウィンドウ)に反映されます。パラメーター設定を短縮名に入れるとパラメーター設定の確認がしやすくなります。
短縮名は、次のようにOnInit()関数内にIndicatorShortName()関数で設定します。

   // ShortNameを設定
   string short_name = "MACD(" + (string)FastEMA_Period + ",";
   short_name += (string)SlowEMA_Period + ",";
   short_name += (string)Signal_Period + ")";
   IndicatorShortName(short_name);

ShortName

MetaTrader4のMACDを真似てみる

MT4のMACDと同じ見た目にするには、#propertyの色と太さを次のように変更して、#property indicator_style2でドットを指定します。

property indicator_color1 clrSilver   // 1つ目の色
#property indicator_width1 1           // 1つ目の太さ
#property indicator_color2 clrRed      // 2つ目の色
#property indicator_width2 1           // 2つ目の太さ
#property indicator_style2 STYLE_DOT   // 2つ目のスタイル

最後に、OnInit()関数内で、1本目をラインからヒストグラムに変更して完成です。

   SetIndexStyle(0, DRAW_HISTOGRAM);// 描画スタイルをヒストグラムと定義

今回の完成ファイル【Sample_Indicator_06】をダウンロード

まとめ

今回は、インジケーターの見た目を整えて完成度を高めるというテーマで解説してきました。計算の必要がないので、今までの記事より簡単だったかもしれませんね^^