
MQL4 インジケーター作成
SetIndexStyle()
- できること
- インジケーターの線の種類・太さ・色を設定する
- 対応
- MQL4
SetIndexStyle() とは
MQL4 のカスタムインジケーターで、バッファの表示方法(線・ヒストグラム・矢印など)、線のスタイル、太さ、色を設定する関数です。
SetIndexStyle() の書式と引数
void SetIndexStyle(
int index,
int type,
int style=EMPTY,
int width=EMPTY,
color clr=clrNONE
)| 引数 | 型 | 省略時 | 説明 |
|---|---|---|---|
index | int | 必須 | バッファの番号。 |
type | int | 必須 | 表示方法。DRAW_LINE(線)、DRAW_HISTOGRAM、DRAW_ARROW(矢印)、DRAW_SECTION、DRAW_NONE(表示しない)など。 |
style | int | EMPTY | 線のスタイル。STYLE_SOLID(実線)、STYLE_DASH、STYLE_DOT など。EMPTY なら変えない。 |
width | int | EMPTY | 線の太さ(1〜5)。EMPTY なら変えない。 |
clr | color | clrNONE | 色。clrNONE なら変えない。 |
戻り値
なし
SetIndexStyle() の使い方(コード例)
#property strict
#property indicator_chart_window
#property indicator_buffers 1
double Buf[];
int OnInit()
{
SetIndexBuffer(0, Buf);
SetIndexStyle(0, DRAW_LINE, STYLE_DASH, 1, clrOrange); // オレンジの破線
SetIndexLabel(0, "終値");
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 limit = rates_total - prev_calculated;
if(prev_calculated > 0) limit++;
for(int i = 0; i < limit && i < rates_total; i++) // MQL4 は 0 = 最新
Buf[i] = close[i];
return rates_total;
}MetaEditor でコンパイルできることを確認済みです。
MQL4 と MQL5 の違い
MQL5 には SetIndexStyle() はありません。#property indicator_type1 などで宣言するか、PlotIndexSetInteger(番号, PLOT_DRAW_TYPE, DRAW_LINE) などで設定します。












