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

熟悉MQL4语言的ArrayMaximum()和ArrayMinimum()两个函数

在MQL4语言的数组函数中,有ArrayMaximum()和ArrayMinimum()两个函数,分别是用来在一维数字数组中搜索最大/最小的那个元素。通俗点说,就是在一维数字数组中找最大值/最小值所对应的序号。数组排序规则是第一个0,接下来1、2、3、4……。

ArrayMaximum()函数结构:

int  ArrayMaximum( 
   const void&   array[],             // 用来搜索的数字数组
   int           count=WHOLE_ARRAY,   // 搜索元素的数量,默认WHOLE_ARRAY表示整个数组 
   int           start=0              // 开始搜索序号,0表示从第一个 
   );

ArrayMinimum()函数结构:

int  ArrayMinimum( 
   const void&   array[],             // 用来搜索的数字数组 
   int           count=WHOLE_ARRAY,   // 搜索元素的数量,默认WHOLE_ARRAY表示整个数组 
   int           start=0              // 开始搜索序号,0表示从第一个 
   );

假如现在有一组欧元兑美元USD的订单,在获取它们的开仓价格并写入自定义 tkop 数组。

double tkop[8] = {1.16058,1.13058,1.11058,1.14058,1.17058,1.19058,1.11758,1.10358};

接下来就用 ArrayMaximum() 和 ArrayMinimum() 来获取它们中的最大值和最小值,参考代码:

double tkop[8] = {1.16058,1.13058,1.11058,1.14058,1.17058,1.19058,1.11758,1.10358};

int H_index = ArrayMaximum(tkop, WHOLE_ARRAY, 0);
int L_index =  ArrayMinimum(tkop, WHOLE_ARRAY, 0);

Comment("数组 tkop 中:" + IntegerToString(H_index)+" 值最大/最大值 = "+ DoubleToStr(tkop[H_index],5) + "\n" +
        "数组 tkop 中:" + IntegerToString(L_index)+" 值最小/最小值 = "+ DoubleToStr(tkop[L_index],5));
ArrayMaximum()和ArrayMinimum()用法说明

上图是用注释的形式将结果显示在图表左上角,从结果中可以看出,用 ArrayMaximum() 和ArrayMinimum() 函数就可以找出一个数字数组中的最大值和最小值。在参考代码中可以看出,ArrayMaximum() 和ArrayMinimum() 并不是直接找最大值和最小值,而是搜索最大值/最小值在数组中的位置,当然,知道位置了,那最大值/最小值也就自然知道了。

在很多智能交易EA或指标编程中,都有需要获取某组数值中的最大值或最小值,那就先将对应数值写入自定义数组,然后用ArrayMaximum() 和ArrayMinimum()两个函数就可以了。

版权所有转载请注明标题及链接:峰汇在线 » 熟悉MQL4语言的ArrayMaximum()和ArrayMinimum()两个函数