mql4 equivalent to Excel Min() and Max() of a moving average

 

I am trying to retrieve the value of the highest point and lowest point of a moving average over the last 20 bars. 

Simple, if this was an excel spreadsheet.

This is as close as I have been able to get. No Errors, but when  MaxValue>MinValue is used as a BUY or SELL condition, it prevents all orders.

Any help would be much appreciated.


     
 double ArrayBuffer[];
 int i;
 int counted_bars;
 

  int doloop()
 {
   i=Bars-counted_bars-1;          
   while(i>=0)                      
      {
      ArrayBuffer[i]=iMA(NULL,PERIOD_M30,10,0,MODE_SMMA,PRICE_CLOSE,i); 
      i--;                          
      }
 
 }

void OnTick(void)   
{

       int    ArrayMax = ArrayMaximum(ArrayBuffer,WHOLE_ARRAY,0);
       int    ArrayMin = ArrayMinimum(ArrayBuffer,WHOLE_ARRAY,0);
     
       double MaxValue = ArrayBuffer[ArrayMax];
       double MinValue = ArrayBuffer[ArrayMin];


if(MaxValue>MinValue) // Fails: not true



}
 
double ArrayBuffer[];
int counted_bars = 20;

int doloop()
{         
     ArrayFree( ArrayBuffer );
     int value = ArrayResize( ArrayBuffer, counted_bars );
     if( value == counted_bars )
          for(int i=0; i<counted_bars; i++)                      
               ArrayBuffer[i]=iMA(NULL,PERIOD_M30,10,0,MODE_SMMA,PRICE_CLOSE,i);
     
     return value;
}

void OnTick(void)   
{
     if( doloop() != counted_bars ) return;
     
     double    MaxValue = ArrayBuffer[ ArrayMaximum(ArrayBuffer) ],
               MinValue = ArrayBuffer[ ArrayMinimum(ArrayBuffer) ];

     if(MaxValue>MinValue)
     {
          // Fails: not true
     }
}
 
Konstantin Nikitin:
Thank you. Most appreciated.