IndicatorBuffers()函数是MQL4中一个重要的函数,主要用在技术指标中设置指标缓存的数量和类型。指标缓存是在指标计算过程中存储中间结果的一组数组,能够有效地提高指标计算的速度。
IndicatorBuffers()函数的语法如下:
void IndicatorBuffers(int count);
其中,count参数表示指标缓存的数量,它必须大于0。
在MQL4指标程序中,IndicatorBuffers()函数通常是在初始化函数init()中调用,以设置指标缓存的数量和类型。在调用IndicatorBuffers()函数之后,我们还需要使用SetIndexBuffer()函数来设置每个缓存的类型和大小。例如:
// Set the number of buffers and buffer types
IndicatorBuffers(2);
SetIndexBuffer(0, buffer1);
SetIndexBuffer(1, buffer2);
在指标计算过程中,我们可以将指标值存储在这些缓存中,例如:
buffer1[0] = …; //计算指标值并存储在缓存0中
buffer2[0] = …; //计算指标值并存储在缓存1中
如果要在外部程序中访问缓存数据,可以使用iCustom()函数。例如:
double value1 = iCustom(_Symbol, _Period, "MyIndicator", 0, 0);
double value2 = iCustom(_Symbol, _Period, "MyIndicator", 1, 0);
其中,第一个参数表示当前交易品种的名称,第二个参数表示时间周期,第三个参数表示指标的名称,第四个参数表示要访问的缓存的索引,第五个参数表示要访问的缓存元素的偏移量。
IndicatorBuffers()函数可以大幅度提高指标计算的速度,尤其是在计算复杂技术指标时。它是MQL4中非常重要的一个函数。