MathMin

La función devuelve el valor mínimo de dos valores numéricos.

double  MathMin(
   double  value1,     // primer número
   double  value2      // segundo número
   );

Parámetros

value1

[in]  Primer valor numérico.

value2

[in]  Segundo valor numérico.

Valor devuelto

El número más pequeño de los dos.

Nota

En vez de la función MathMin() se puede usar la función fmin(). Las funciones fmax(), fmin(), MathMax(), MathMin() pueden trabajar con tipos enteros sin conversión al tipo double.

Si los parámetros de diferentes tipos se pasan a la función, el parámetro del tipo menor automáticamente se convierte al tipo mayor. El tipo de valor devuelto corresponde al tipo mayor.

Si se pasan los datos del mismo tipo, no se realiza ninguna conversión.

 

Ejemplo:

//--- input parameters
input uint  InpBars  =  100000;  // Número deseado de barras
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- obtenemos el número de barras disponibles en el servidor
   uint bars_total = Bars(Symbol(),Period());
   if(bars_total==0)
     {
      PrintFormat("Los datos de la serie temporal %s %s %s aún no se han generado en el terminal. Repita el intento más tarde.",Symbol(),StringSubstr(EnumToString(Period()),7));
      return;
     }
//--- obtenemos el número mínimo de barras a partir de dos valores: de las barras disponibles en el servidor y del número solicitado en los ajustes.
   int bars = (int)MathMin(bars_total,InpBars);
//--- si se solicitan más barras de las que están disponibles en el servidor, lo indicaremos en el registro
   if(bars_total<InpBars)
      PrintFormat("El número de barras en el servidor (%u) es inferior al solicitado (%u)",bars_total,InpBars);
//--- mostramos en el diario de registro el número de barras disponibles para trabajar
   Print("Barras disponibles para el trabajo: ",bars);
  }