iEnvelopesOnArray()函数是MetaTrader 4(MT4)平台上的一种内置函数,用于在自定义数据数组上计算包络线指标。与iEnvelopes()函数不同,iEnvelopesOnArray()函数允许用户在自定义数据集上进行包络线分析,而不仅仅局限于市场价格数据。
一、iEnvelopesOnArray()函数结构与参数
以下是iEnvelopesOnArray()函数的基本语法和参数说明:
double iEnvelopesOnArray
(
double array[], // 包含数据的数组
int total, // 数组元素的数量
int ma_period, // MA平均周期
int ma_method, // MA平均方法
int ma_shift, // MA移位
double deviation, // 偏离率(以百分比表示)
int mode, // 线索引
int shift // 指标移动的柱数
);
其中,参数说明:
- array[]:包含自定义数据的数组,如价格、交易量等。
- total:指定数组元素的数量。
- ma_period:指定移动平均线的周期,如20、50等。
- ma_method:指定移动平均线的计算方法,如MODE_SMA(简单移动平均)、MODE_EMA(指数移动平均)等。
- ma_shift:指定移动平均线的移位,如0表示不移位,正数表示向右移位。
- deviation:指定包络线与移动平均线的偏离率,如0.1表示10%。
- mode:指定线索引,如0表示上包络线,1表示下包络线。
- shift:指定包络指标移动的柱数,如1表示向右移动1根柱子。
二、iEnvelopesOnArray()函数用法
iEnvelopesOnArray()函数可用于在自定义数据集上计算包络线指标。以下是一个简单的示例,展示如何在一个自定义数据数组上使用iEnvelopesOnArray()函数:
// 定义一个自定义数据数组
double custom_data[] = {100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110};
// 调用iEnvelopesOnArray()函数计算上包络线
double upper_envelope = iEnvelopesOnArray(custom_data, ArraySize(custom_data), 5, MODE_SMA, 0, 0.1, 0, 0);
// 调用iEnvelopesOnArray()函数计算下包络线
double lower_envelope = iEnvelopesOnArray(custom_data, ArraySize(custom_data), 5, MODE_SMA, 0, 0.1, 1, 0);
在此示例中,我们首先定义了一个包含11个元素的自定义数据数组custom_data
。然后,我们分别调用iEnvelopesOnArray()函数计算上包络线和下包络线。
参数设置如下:
custom_data
是我们要计算包络线的自定义数据数组。- 使用
ArraySize(custom_data)
获取数组的元素数量。 - 设置移动平均线周期为5。
- 使用简单移动平均(MODE_SMA)作为计算方法。
- 不进行移动平均线移位(设置为0)。
- 设置偏离率为10%(0.1)。
- 对于上包络线,设置线索引为0;对于下包络线,设置线索引为1。
- 不进行指标移动(设置为0)。
通过上述示例,我们可以在自定义数据数组上使用iEnvelopesOnArray()函数来计算包络线指标。这种灵活性使得该函数可以应用于各种非价格数据,如交易量、自定义指标等。需要注意的是,iEnvelopesOnArray()函数与iEnvelopes()函数一样,仅作为辅助分析工具,不能保证100%的准确性。因此,在实际交易中需要结合其他技术分析工具和风险管理方法。