インジケータ作成における2つのスタイルの指定方法

tocchi2023/08/10(木) - 03:16 に投稿

インジケータを作成する際にスタイルの指定を行う方法は二通りあり、それぞれ意味が違うので注意が必要。

①#property定義によるスタイルの指定
 この方法は主にインジケーターを適用した時のデフォルト値として採用されます。
 ユーザーがインジケーターの引数を変更した場合、MT4を再起動したときは引数が変更されたままの状態となります。

 #property indicator_type1   DRAW_ARROW
 #property indicator_color1  clrBlue
 #property indicator_style1  STYLE_SOLID
 #property indicator_width1  1
 

②SetIndexStyle関数によるスタイルの指定
 この方法はインジケーターが動作する時の値として採用されます。(通常はOnInitだと思うので初期動作)
 第3、4、5引数が指定されている場合、
 ユーザーがインジケーターの引数を変更した場合、MT4を再起動したときは関数で指定した値に戻されます。

 void  SetIndexStyle(
    int     index,       // line index
    int     type,        // line type
    int     style=EMPTY, // line style
    int     width=EMPTY, // line width
    color   clr=clrNONE  // line color
    );

①のみ、②のみ、①②両方、スタイルの指定はできるが
インジケーターの引数を変更して使うことを考慮するなら
ユーザーの使い勝手としては①のみ指定の方がMT4を再起動したときに、毎回値を変更しなくて済む。

タグ