诚信为本
量力而为
当前位置:ea编程网 EA知识 正文

利用iBandsOnArray()函数计算基于数组数据的布林带指标

布林带(Bollinger Bands)是一种流行的技术分析工具,通过计算股票价格的标准差来确定价格波动的范围。布林带包括三条线:中线(通常是简单移动平均线)、上轨(中线加上标准差的某个倍数)和下轨(中线减去标准差的某个倍数)。在本文中,我们将详细介绍如何使用 MetaTrader 4(MT4)平台中的iBandsOnArray()函数来计算基于数组数据的布林带指标。

iBandsOnArray()函数结构如下:

double iBandsOnArray(
double array[], // array with data 
int total, // number of elements 
int period, // averaging period 
double deviation, // deviation 
int bands_shift, // bands shift 
int mode, // line index 
int shift // shift 
);

参数说明:

  1. array[]:输入数据数组,用于计算布林带指标的价格或其他数据。
  2. total:数组中的元素数量,通常使用 ArraySize() 函数获取。
  3. period:计算布林带的移动平均线所用的周期,通常设为 20。
  4. deviation:标准差的倍数,通常设为 2。
  5. bands_shift:布林带线的平移值,通常设为 0。
  6. mode:布林带线的类型,包括 MODE_UPPER(上轨)、MODE_LOWER(下轨)和 MODE_MAIN(中线)。
  7. shift:获取对应指标线的索引/序号,0 指当前最新 K 线所对应的值,然后从右往左分别是 1、2、3、4…。

假设我们有一个包含 100 个元素的价格数据数组 PriceArray[],我们可以使用以下代码计算并获取相应的布林带指标值:

double PriceArray[100]; // 假设 PriceArray 已经填充好数据
int total = ArraySize(PriceArray);
int period = 20;
double deviation = 2;
int bands_shift = 0;

double UpperBand_0 = iBandsOnArray(PriceArray, total, period, deviation, bands_shift, MODE_UPPER, 0);
double MiddleBand_0 = iBandsOnArray(PriceArray, total, period, deviation, bands_shift, MODE_MAIN, 0);
double LowerBand_0 = iBandsOnArray(PriceArray, total, period, deviation, bands_shift, MODE_LOWER, 0);

在这个示例中,UpperBand_0、MiddleBand_0 和 LowerBand_0 分别表示基于 PriceArray 数据的布林带上轨、中线和下轨的最新值。

以下是一个示例,演示了如何使用 iBandsOnArray() 函数获取当前图表中最近 5 个布林带上轨、中线和下轨的值:

// 填充价格数组
double PriceArray[100];
for (int i = 0; i < 100; i++) {
   PriceArray[i] = iClose(Symbol(), 0, i);
}

// 计算布林带值
double UpperBandsArray[5], MiddleBandsArray[5], LowerBandsArray[5];
int total = ArraySize(PriceArray);
int period = 20;
double deviation = 2;
int bands_shift = 0;

for (int i = 0; i < 5; i++) {
   UpperBandsArray[i] = iBandsOnArray(PriceArray, total, period, deviation, bands_shift, MODE_UPPER, i);
   MiddleBandsArray[i] = iBandsOnArray(PriceArray, total, period, deviation, bands_shift, MODE_MAIN, i);
   LowerBandsArray[i] = iBandsOnArray(PriceArray, total, period, deviation, bands_shift, MODE_LOWER, i);
}

这段代码首先填充了一个价格数组,然后使用 iBandsOnArray() 函数计算并将结果存储在三个数组中,分别表示布林带的上轨、中线和下轨。最后,通过循环迭代,我们可以获取到最近 5 个 K 线的布林带值。

通过熟练掌握 iBandsOnArray() 函数,交易者和开发者可以在策略开发和市场分析中更好地利用布林带指标。这种方法提供了更大的灵活性,使得基于数组的布林带计算能够应对更多的实际应用场景。

总结: iBandsOnArray() 函数为开发者提供了一种方便的方法来计算基于数组数据的布林带指标。通过将特定数据集传递给该函数,可以根据自定义的参数计算布林带的上轨、中线和下轨。这对于分析非标准数据集或者自定义数据非常有用,为交易策略提供了更多的灵活性。

未经允许不得转载:ea编程网 » 利用iBandsOnArray()函数计算基于数组数据的布林带指标