Máximo y mínimo de dos números

Para encontrar el número mayor o menor de dos, MQL5 ofrece las funciones MathMax y MathMin. Sus alias abreviados son fmax y fmin, respectivamente.

numeric MathMax(numeric value1, numeric value2) ≡ numeric fmax(numeric value1, numeric value2)

numeric MathMin(numeric value1, numeric value2) ≡ numeric fmin(numeric value1, numeric value2)

Las funciones devuelven el máximo o el mínimo de los dos valores pasados. Las funciones están sobrecargadas para todos los tipos integrados.

Si se pasan a la función parámetros de tipos diferentes, el parámetro del tipo «inferior» se convierte automáticamente en el tipo «superior»; por ejemplo, en un par de tipos int y double, int se llevará a double. Para obtener más información sobre la conversión implícita de tipos, consulte la sección Conversiones aritméticas de tipo. El tipo de retorno corresponde al tipo «más alto».

Cuando haya un parámetro de tipo string, será «senior», es decir, todo se reduce a una cadena. Las cadenas se compararán lexicográficamente, como en la función StringCompare.

El script MathMaxMin.mq5 muestra las funciones en acción.

void OnStart()
{
   int i = 10j = 11;
   double x = 5.5y = -5.5;
   string s = "abc";
   
   // numbers   
   PRT(MathMax(ij)); // 11
   PRT(MathMax(ix)); // 10
   PRT(MathMax(xy)); // 5.5
   PRT(MathMax(is)); // abc
   
   // type conversions
   PRT(typename(MathMax(ij))); // int, as is
   PRT(typename(MathMax(ix))); // double
   PRT(typename(MathMax(is))); // string
}