iEnvelopesOnArray()

 iEnvelopesOnArray()関数は、ユーザーが自由に作成した配列を基にして、エンベロープの値を算出するために使用します。

 iEnvelopesOnArray()関数は、以下のように定義されています。

double iEnvelopesOnArray(
double array[],
int total,
int ma_period,
int ma_method,
int ma_shift,
double deviation,
int mode,
int shift
);

 各引数の意味は、以下のとおりです。

  • double array[]
    エンベロープを算出する配列名を指定します。
  • int total
    エンベロープを算出する配列の要素数を指定します。
    「0」と記述すると、配列全体(=すべての要素)を基にしてエンベロープを算出します。
  • int ma_period
    中間線となる移動平均線の値を計算する期間を指定します。
  • int ma_method
    以下の表に従って、算出する中間線となる移動平均線の種類を指定します。

    移動平均線の種類

    種 類
    定数
    内 容
    MODE_SMA
    単純移動平均線
    MODE_EMA
    指数移動平均線
    MODE_SMMA
    平滑移動平均線
    MODE_LWMA
    線形加重移動平均線
  • int ma_shift
    算出したエンベロープの表示を右方向にシフト(ずらす)するバーの個数を指定します。
  • double deviation
    中間線となる移動平均線の何%上方に上限となるラインを表示させるかを指定します。
  • int mode
    ライン番号を指定します。
    中間線の値を取得したい場合は「」と記述します。
    上限ラインの値を取得したい場合は「」と記述します。
    下限ラインの値を取得したい場合は「」と記述します。
  • int shift
    エンベロープの値を取得したいバーの位置を指定します。
    算出したエンベロープの値を取得したいバーが現在のバーであれば「」、1本前のバーであれば「」、2本前のバーであれば「」……と記述します。

注意点

 iEnvelopes()関数とは異なって、iEnvelopesOnArray()関数は、通貨ペア名や時間軸や適用価格のデータを取得しません

 したがって、iEnvelopesOnArray()関数でエンベロープの値を算出するためには、あらかじめ価格データを用意しておかなければなりません

 エンベロープは、左から右へ(=古い価格データから新しい価格データに向かって)計算されます。右から左へ(=新しい価格データから古い価格データに向かって)エンベロープを計算するためには、ArraySetAsSeries()関数(詳細は「こちら」を参照してください。)を使います。

具体例

 配列Buffer[]を基にした現在のバーの上限ラインの値を取得したい場合は、以下のように記述します。


double Upper
= iEnvelopesOnArray(Buffer,0,20,0,0,5,1,0);

関連手法

移動平均線とエンベロープで完璧トレード!
移動平均線とエンベロープだけで相場を分析する戦略
移動平均線とエンベロープだけで相場を分析する戦略 | fx-on.com

移動平均線とエンベロープだけで相場を分析する戦略
移動平均線とエンベロープだけで相場を分析する戦略 | fx-on.com

 上記手法(移動平均線とエンベロープだけで相場を分析する戦略移動平均線とエンベロープだけで相場を分析する戦略 | fx-on.com)の詳細については「こちら移動平均線とエンベロープだけで相場を分析する戦略 | fx-on.com」を参照してください。


MT4の使い方からプログラミングまで、わかりやすく解説