Array Maximum for indicator value MQL4

 
Hi, i want to find the maximum value for an indicator, I've had a couple of goes but hasn't worked.
 int BarIndexHigh()
  {
   int BarsToCheck=400;
   double IndicatorValues[400];
   for(int i=0; i<BarsToCheck; i++)
     {
      int BarIndexHigh=ArrayMaximum(,IndicatorValues,1);
     IndicatorValues[i]=iATR(NULL,0,7,i);
      Print(StringConcatenate("BarIndex_",i," ATR: ",IndicatorValues[i]));
     }
   return IndicatorValues[i];
int MaxValue()
  {
   double IV[]= {400};
//double ATRA=iATR(NULL,0,7,1);
   int MaxIndex=ArrayMaximum(IV);
   double MaxValue=IV[MaxIndex];
   for(int i=0; i<400; i++) //Array Iteration Loop Forward BarsToCheck
     {
      double ATRB = iATR(NULL,0,7,i);
      double BarIndexHigh=ArrayMaximum(ATRB);
      //  Print(StringConcatenate("BarIndex_",i," ATR: ",MaxValue()));
     }


   return MaxValue();
  }
 
  1. ArrayMaximum does not return a double.
  2. ATRB is not an array (for ArrayMaximum).
  3. Not filling the array.
  4. Must fill the array before using ArrayMaximum.
  5. Can't return a function; must return a value.
   for(int i=0; i<400; i++) //Array Iteration Loop Forward BarsToCheck
     {
      double ATRB = iATR(NULL,0,7,i);
      double BarIndexHigh=ArrayMaximum(ATRB);
      //  Print(StringConcatenate("BarIndex_",i," ATR: ",MaxValue()));
     }

   return MaxValue();

Fill the array, then find the maximum.

   for(int i=0; i<400; i++) //Array Iteration Loop Forward BarsToCheck
     {
      IndicatorValues[i] = iATR(NULL,0,7,i);
     }

   int BarIndexHigh=ArrayMaximum(IndicatorValues);
   double valueHigh=IndicatorValues[BarIndexHigh];
   //  Print(StringConcatenate("BarIndex_",BarIndexHigh," ATR: ",valueHigh));
   return valueHigh;

No need for the array; simplify:

   double valueMax=DBL_MIN;
   for(int i=0; i<400; i++){ //Array Iteration Loop Forward BarsToCheck
      double value = iATR(NULL,0,7,i);
      if(valueMax < value) valueMax=value;
   }
   return valueMax;
 
William Roeder #:
  1. ArrayMaximum does not return a double.
  2. ATRB is not an array (for ArrayMaximum).
  3. Not filling the array.
  4. Must fill the array before using ArrayMaximum.
  5. Can't return a function; must return a value.

Fill the array, then find the maximum.

No need for the array; simplify:

thanks William,

Got the; Fill the array, (then find the maximum) to work. just working on the simplified version. I appreciate your help.