#property インジケータの設定

MQL4基礎

プリプロセッサ

#property (インジケータの設定)

 インジケータのパラメータについて#propertyで指定することができます。

構成

 #propertyの後でインジケータの各パラメータを設定します。

#property indicator_chart_window // チャートウィンドウに表示
#property indicator_buffers ①   // インジケータバッファの数
#property indicator_typeN ③     // インジケータの種類
#property indicator_labelN ④    // ラベル
#property indicator_colorN ⑤    // 線の色
#property indicator_widthN ⑥    // 線の太さ
#property indicator_styleN ⑦    // 線の種類
プロパティデータ型説明
indicator_chart_windowチャートウィンドウにインジケーターを表示させます。
indicator_buffersintインジケータ計算用バッファ数を設定。
①にバッファ数を設定。
indicator_typeNintデータウィンドウに表示される N番目のインジケータ描画スタイルのタイプを設定。
③にインジケータの種類を設定。種類は SetIndexStyle関数の描画スタイルの定数(または 値)から選択。
indicator_labelNstringデータウィンドウに表示される N番目のラベルを設定。
④に”〇〇〇”と文字列を設定。
indicator_colorNcolorデータウィンドウに表示される N番目の色を設定。
⑤にカラーを設定。
indicator_widthNintデータウィンドウに表示される N番目の線の太さを設定。
⑥に線の太さを数字で設定。数字が大きいほど太くなります。
indicator_styleNintデータウィンドウに表示される N番目の線の種類を設定。
⑦に線の種類を設定。線の種類はENUM_LINE_STYLE 列挙値の定数(または 値)から選択。

使用例

インジケータの線の設定

 各バーの終値を直線で結ぶインジケータを作成します。そして、直線の線の設定を #propertyで行ないます。

コード

// インジケータの線の設定
#property strict

#property indicator_chart_window                // チャートウィンドウに表示
#property indicator_buffers 1                   // インジケータバッファの数
#property indicator_type1 DRAW_LINE             // インジケータの種類
#property indicator_label1 "インジケータテスト" // インジケータのラベル
#property indicator_color1 clrRed               // 線の色
#property indicator_width1 1                    // 線の太さ
#property indicator_style1 STYLE_SOLID          // 線の種類

double Buf[];                                   // インジケータバッファの配列

int OnInit() {

   SetIndexBuffer(0, Buf);                      // 1次元動的配列をインジケータバッファへ関連付け

   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
{
   int i;
   for(i=0;i<rates_total; i++) {
      Buf[i]=close[i];
   }
return(rates_total);
}

インジケータを実行する方法はこちらを参考にしてください。(デモ口座でお試しください)

結果

「#property indicator_…」の設定を変えていろいろ試してみてください。

タイトルとURLをコピーしました