
iEnvelopesOnArray は、価格以外のデータにバンド分析を応用できる強力なツールです。
カスタムインジケーターやEAにおいて、多重ロジックや高度なフィルター構築に役立ちます。
- 概要
iEnvelopesOnArray
は、任意のdouble
配列に対してエンベロープ(乖離バンド)を適用する関数です。- 通常の価格チャートではなく、RSIやカスタムインジケーターの出力にエンベロープを適用したい場合に使用されます。
- 特徴
- 任意の指標配列や加工済み価格データにもバンドを適用できる柔軟性
- 通常の
iEnvelopes
よりも、高度なカスタム分析やフィルターロジックに向いている - 配列のインデックス方向(新→旧)には注意:
ArraySetAsSeries()
を適切に設定する必要あり - RSIや移動平均との組み合わせで多重分析が可能
目次
構文
double iEnvelopesOnArray(
double array[],
int total,
int ma_period,
int ma_method,
int ma_shift,
double deviation,
int mode,
int shift
);
パラメータ名 | 内容 |
---|---|
array[] | 対象となる数値配列(インデックス0が最新バー) |
total | 使用するデータ数(例:ArraySize(array) ) |
ma_period | 移動平均の計算期間 |
ma_method | 移動平均の種類MODE_SMA MODE_EMA MODE_SMMA MODE_LWMA |
ma_shift | 移動平均のシフト(例:0) |
deviation | バンドの乖離率(0.1 = 10%) |
mode | バンドの種類MODE_MAIN MODE_UPPER MODE_LOWER |
shift | シフト取得するバーの位置0 =現在, 1 =1本前… |
使用例
double maArray[1000];
ArraySetAsSeries(maArray, true);
// カスタムデータ:SMAを配列に格納
for (int i = 0; i < 1000; i++) {
maArray[i] = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, i);
}
// エンベロープ上限を取得(配列に対して適用)
double upper = iEnvelopesOnArray(maArray, 1000, 14, MODE_SMA, 0, 0.1, 0, 0);
if (Close[0] > upper) {
Print("価格が上限バンドを超過 → 反転の可能性あり");
}
コメント