インジケータラインのオフセット設定 SetIndexShift 関数

関数

カスタムインジケータ関数

SetIndexShift 関数

 この関数は、インジケータラインのオフセットを設定します。

 ここで言うオフセットとは、基準位置から相対位置へ移動させることを言います。例えば、SetIndexShift関数では、引数②にプラスの数字を入れると右側へ、マイナスの数字を入れるとインジケータラインがそのまま平行移動(シフト)します。

データ型と構成・戻り値

void SetIndexShift(①, ②);

 戻り値は無し。

引数 [2]

 SetIndexShift関数は 2個の引数で構成されます。


引数名データ型単位初期値説明
Indexintインジケータラインのインデックス。0~7で設定。
shiftintバー単位のシフト値。プラスの時は右に、マイナスの時は左へバーの数だけ移動します。

使用例

SetIndexShift関数によるインジケータラインの移動

 SetIndexShift関数を使って、インジケータラインを右側へバーで3本分移動させます。移動前は赤色のライン、移動後は黄色のラインです。

 次のコードはインジケータ用のコードです。インジケータ用コードの作成方法についてはこちらを参考にしてください。

コード

// SetIndexShift関数によるインジケータラインの移動
#property strict

#property indicator_chart_window       // チャートウィンドウに表示
#property indicator_buffers 2          // インジケータバッファの数

#property indicator_color1 clrRed      // ①線の色(インジケータライン)
#property indicator_width1 2           // ①線の太さ
#property indicator_style1 STYLE_SOLID // ①線の種類
#property indicator_type1 DRAW_LINE    // ①線のタイプ

#property indicator_color2 clrYellow   // ②線の色(インジケータライン)
#property indicator_width2 2           // ②線の太さ
#property indicator_style2 STYLE_SOLID // ②線の種類
#property indicator_type2 DRAW_LINE    // ②線のタイプ

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

int OnInit() {

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

   SetIndexShift(1, 3);

   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[])
{
   for(int i=0; i<rates_total; i++) {
      Buf1[i]=iMA(Symbol(), 0, 1, 0, MODE_SMA, PRICE_LOW, i); // 1期間安値移動平均
      Buf2[i]=iMA(Symbol(), 0, 1, 0, MODE_SMA, PRICE_LOW, i); // 1期間安値移動平均
   }
return(rates_total);
}

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

結果

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