iEnvelopesOnArray 関数
この関数は、配列に格納されたデータのエンベロープ値を計算して、その値を取得します。エンベロープはトレンド系のインジケータに分類されます。
iEnvelopes関数とは異なり 、iEnvelopesOnArray関数は、通貨ペア名、時間軸、適用価格によるデータを取得しません。価格データは事前に準備する必要があります。指標は左から右に計算されます。系列配列として (右から左へ) 配列要素にアクセスするには、ArraySetAsSeries関数を使用する必要があります。
データ型と構成・戻り値
double iEnvelopesOnArray(①, ②, ③, ④, ⑤, ⑥, ⑦, ⑧);
戻り値は、配列に格納されたデータのエンベロープ値を計算して、その値を返します。
引数 [8]
iEnvelopesOnArray関数は 8個の引数で構成されます。
番 号 | 引数名 | データ型 | 単位 | 初期値 | 説明 |
---|---|---|---|---|---|
① | array[] | double | - | - | データを含む配列。 |
② | total | int | - | - | カウントするデータの数。「0」は配列全体を意味します。 |
③ | ma_period | int | - | - | 中心となる移動平均線の平均期間。エンベロープを計算するバーの数を数値で設定します。 |
④ | ma_method | int | - | - | 移動平均の方法。 ENUM_MA_METHOD 列挙値から選択。 |
⑤ | ma_shift | int | - | - | チャートに対するインジケーターのシフト。 |
⑥ | deviation | double | - | - | 中心となる移動平均線からの偏差率。 |
⑦ | mode | int | - | - | インジケータライン。 iEnvelopes関数のインジケータライン識別子から選択。 |
⑧ | shift | int | - | - | エンベロープを算出する位置。 配列データから取得した値のインデックス。インデックス値は配列の左 (0) から始まります。たとえば、左から1番目の計算は「0」、左から2番目を計算する時は「1」になります。 |
使用例
iEnvelopesOnArray関数による配列のエンベロープ値の算出
iEnvelopesOnArray関数を使って配列中のエンベロープの値を算出します。算出する期間は配列arrにある14期間分とします。
コード
// iEnvelopesOnArray関数による配列のエンベロープ値の算出
#property strict
void OnInit() {
int period = 14; // 期間
double arr[];
CopyClose(NULL, 0, 0, 100, arr);
ArraySetAsSeries(arr,true);
double a = iEnvelopesOnArray(arr, 0, period, 0, 0, 2, 0, 0); // ベースライン
double b = iEnvelopesOnArray(arr, 0, period, 0, 0, 2, 1, 0); // 上のライン
double c = iEnvelopesOnArray(arr, 0, period, 0, 0, 2, 2, 0); // 下のライン
Print(period, "期間のエンベロープ値 下のライン:", c);
Print(period, "期間のエンベロープ値 ベースライン:", a);
Print(period, "期間のエンベロープ値 上のライン:", b);
}
コードをコンパイルして実行する方法はこちらを参考にしてください。(デモ口座でお試しください)