诚信为本
量力而为
当前位置:峰汇在线 ea编程知识 正文

iEnvelopesOnArray() 函数解读

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                // 指标移动的柱数
);

其中,参数说明:

  1. array[]:包含自定义数据的数组,如价格、交易量等。
  2. total:指定数组元素的数量。
  3. ma_period:指定移动平均线的周期,如20、50等。
  4. ma_method:指定移动平均线的计算方法,如MODE_SMA(简单移动平均)、MODE_EMA(指数移动平均)等。
  5. ma_shift:指定移动平均线的移位,如0表示不移位,正数表示向右移位。
  6. deviation:指定包络线与移动平均线的偏离率,如0.1表示10%。
  7. mode:指定线索引,如0表示上包络线,1表示下包络线。
  8. 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%的准确性。因此,在实际交易中需要结合其他技术分析工具和风险管理方法。

版权所有转载请注明标题及链接:峰汇在线 » iEnvelopesOnArray() 函数解读