SetIndexStyle 関数
この関数は、指定したインジケータラインのタイプ、スタイル、線幅、色を設定します。
データ型と構成・戻り値
void SetIndexStyle(①, ②, ③, ④, ⑤);
戻り値は無し。
引数 [5]
SetIndexStyle関数は 5個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | index | int | - | - | インジケータラインのインデックス。0~7で設定。 |
② | type | int | - | - | インジケータラインの形状スタイル。 描画スタイルから選択。 |
③ | style | int | - | EMPTY | インジケータラインの描画スタイル。初期値の「EMPTY」は変更しないことを意味します。 ENUM_LINE_STYLE 列挙値から選択。④の線幅が 0 または 1の時に設定できます。 |
④ | width | int | - | EMPTY | インジケータラインの線幅。1~5で設定。初期値の「EMPTY」は変更しないことを意味します。 |
⑤ | clr | color | - | clrNONE | インジケータラインの色。初期値の「clrNONE」は変更しないことを意味します。 |
※引数①の番号付けは 0から始まりますが、「#property」を使ってコードの最初に設定する場合の番号付けは 1から始まりますでご注意ください。
使用例
SetIndexStyle関数によるインジケータラインの設定
SetIndexStyle関数を使って、インジケータでプロットするラインの設定を変更します。
次のコードはインジケータ用のコードです。インジケータ用コードの作成方法についてはこちらを参考にしてください。
コード
// SetIndexStyle関数によるインジケータラインの設定
#property strict
#property indicator_chart_window // チャートウィンドウに表示
#property indicator_buffers 2 // インジケータバッファの数
#property indicator_color1 clrRed // ①線の色(インジケータライン)
#property indicator_width1 1 // ①線の太さ
#property indicator_style1 STYLE_SOLID // ①線の種類
#property indicator_color2 clrRed // ②線の色(インジケータライン)
#property indicator_width2 1 // ②線の太さ
#property indicator_style2 STYLE_SOLID // ②線の種類
double Buf1[], Buf2[]; // インジケータバッファの配列
int OnInit() {
SetIndexBuffer(0, Buf1); // 1次元動的配列をインジケータバッファへ関連付け
SetIndexBuffer(1, Buf2);
SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, clrYellow); // インジケータライン①
SetIndexStyle(1, DRAW_ARROW); // インジケータライン②
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++) {
Buf1[i]=iMA(Symbol(), 0, 10, 0, MODE_SMA, PRICE_CLOSE, i); // 10期間移動平均
Buf2[i]=iMA(Symbol(), 0, 50, 0, MODE_SMA, PRICE_CLOSE, i); // 50期間移動平均
}
return(rates_total);
}
インジケータ用コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)