SetIndexStyle関数|MT4インディケータの線のスタイルを設定する方法
執筆者
佐川直弘(株式会社トリロジー取締役)
MetaTrader 4(MT4)のMQL4プログラムでカスタムインディケータを作成する際には、インディケータ線のスタイルを適切に設定することが重要です。この記事では、SetIndexStyle()関数を使用してインディケータ線のスタイルを設定する方法について、初心者にもわかりやすく解説します。
インディケータ線のスタイルとは?
インディケータ線のスタイルは、チャート上に表示されるインディケータの線の種類や色、太さなどを指します。MQL4では、SetIndexStyle()関数を使用してこれらのスタイルを設定することができます。この関数を使用することで、線を用いたインディケータだけでなく、ヒストグラム形式やシンボル表示なども設定可能です。
SetIndexStyle()関数の使用方法
SetIndexStyle()関数を使用すると、インディケータ線のスタイルを設定することができます。この関数の仕様は以下の通りです。
- 関数仕様
- void SetIndexStyle(int index, int type, int style=EMPTY, int width=EMPTY, color clr=CLR_NONE)
引数の説明
- index
- インディケータ配列インデックス番号(0~7)
- type
- インディケータ種別
- style
- 線種(未指定の場合はEMPTY)
- width
- 線幅(1~5、未指定の場合はEMPTY)
- clr
- 線色(未指定の場合はCLR_NONE)
以下に、SetIndexStyle()関数を使用してインディケータ線のスタイルを設定するサンプルコードを示します。
- サンプルコード
- #property indicator_separate_window
#property indicator_buffers 3
#property indicator_color1 Silver
#property indicator_color2 Blue
#property indicator_color3 Red
//—- インディケータパラメータ
extern int FastEMA = 12; // 高速EMAの期間
extern int SlowEMA = 26; // 低速EMAの期間
extern int SignalSMA = 9; // シグナルSMAの期間
//—- インディケータバッファ
double ind_buffer1[]; // インディケータのバッファ1
double ind_buffer2[]; // インディケータのバッファ2
double ind_buffer3[]; // インディケータのバッファ3
// カスタムインディケータの初期化関数
int init() {
//—- インディケータバッファの設定
IndicatorBuffers(3);
//—- 描画設定
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 3);
SetIndexDrawBegin(0, SignalSMA);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 2);
//—- インディケータバッファのマッピング
SetIndexBuffer(0, ind_buffer1);
SetIndexBuffer(1, ind_buffer2);
SetIndexBuffer(2, ind_buffer3);
//—- データウィンドウおよびインディケータサブウィンドウラベルの名前
IndicatorShortName(“Custom OsMA Indicator (" + FastEMA + “," + SlowEMA + “," + SignalSMA + “)");
return (0);
}#property indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 Red
//—- インディケータパラメータ
extern int FastEMA = 12;
extern int SlowEMA = 26;
extern int SignalSMA = 9;
//—- インディケータバッファ
double ind_buffer1[];
// カスタムインディケータの初期化関数
int init() {
//—- インディケータバッファの設定
IndicatorBuffers(1);
//—- 描画設定
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, Red);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 2);
//—- インディケータバッファのマッピング
SetIndexBuffer(0, ind_buffer1);
//—- データウィンドウおよびインディケータサブウィンドウラベルの名前
IndicatorShortName(“Custom Indicator (" + FastEMA + “," + SlowEMA + “," + SignalSMA + “)");
return (0);
}
このサンプルコードでは、以下のことを行っています。
- `#property`ディレクティブを使って、インディケータの設定を行います。
- 外部パラメータ(`FastEMA`、`SlowEMA`、`SignalSMA`)を宣言します。
- グローバル変数としてインディケータ配列(`ind_buffer1`)を宣言します。
- `init()`関数内で、`IndicatorBuffers()`関数を使って配列の個数を設定します。
- `SetIndexStyle()`関数を使って、インディケータ線のスタイルを設定します。ここでは、赤色で太さが2の実線を設定しています。
- `SetIndexBuffer()`関数を使って、配列の領域を確保します。7. `IndicatorShortName()`関数を使って、インディケータの短縮名称を設定します。
まとめ
インディケータ線のスタイルを適切に設定することで、チャート上の視認性が向上し、トレードの精度も向上します。MQL4のSetIndexStyle()関数を使用することで、簡単にインディケータ線の種類や色、太さを設定し、カスタムインディケータをより使いやすくすることができます。初心者の方も、この基本的な使い方を理解して、実際のトレードに応用してみてください。
ディスカッション
コメント一覧
まだ、コメントがありません