MathMin

A função retorna o valor mínimo entre dois valores.

double  MathMin(
   double  value1,     // primeiro valor
   double  value2      // segundo valor
   );

Parâmetros

value1

[in]  Primeiro valor numérico.

value2

[in]  Segundo valor numérico.

Valor do Retorno

O menor valor dos dois valores.

Observação

Ao invés de MathMin(), você pode usar fmin(). As funções fmax(), fmin(), MathMax(), MathMin() podem trabalhar com tipos inteiros sem convertê-los para o tipo double.

Se parâmetros de diferentes tipos são passados para um função, o parâmetro do menor tipo é automaticamente convertido para o maior tipo. O tipo do valor de retorno corresponde ao do maior tipo.

Se dados de mesmo tipo são passados, nenhuma conversão é realizada.

 

Exemplo:

//--- input parameters
input uint  InpBars  =  100000;  // Número desejado de barras
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- obtemos o número de barras disponíveis no servidor
   uint bars_total = Bars(Symbol(),Period());
   if(bars_total==0)
     {
      PrintFormat("Os dados da série temporal %s %s ainda não foram gerados no terminal. Tente novamente mais tarde.",Symbol(),StringSubstr(EnumToString(Period()),7));
      return;
     }
//--- obtemos o número mínimo de barras a partir de dois valores: a partir do número disponível no servidor e a partir do número solicitado nas configurações
   int bars = (int)MathMin(bars_total,InpBars);
//--- se forem solicitadas mais barras do que as disponíveis no servidor, informaremos isso no log.
   if(bars_total<InpBars)
      PrintFormat("O número de barras no servidor (%u) é menor do que o solicitado (%u)",bars_total,InpBars);
//--- registramos no log o número de barras disponíveis
   Print("Barras disponíveis para trabalho: ",bars);
  }