MathMin

La funzione restituisce il valore minimo di due valori.

double  MathMin(
   double  value1,     // primo valore
   double  value2      // secondo valore
   );

Parametri

value1

[in] Primo valore numerico.

value2

[in]  Secondo valore numerico.

Valore restituito

Il più piccolo dei due valori.

Nota

Invece di MathMin() è possibile utilizzare fmin(). Le funzioni fmax(), fmin(), MathMax(), MathMin() possono lavorare con tipi interi senza fare il typecasting di queste al tipo double.

Se i parametri di tipi diversi vengono passati in una funzione, il parametro del tipo minore è automaticamente castato(da "casting") al tipo principale. Il tipo del valore di ritorno corrisponde al tipo principale.

Se i dati dello stesso tipo sono passati, nessun casting viene eseguito.

 

Esempio:

//--- parametri d'ingresso
input uint  InpBars  =  100000;  // Numero di barre desiderato
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- ottenere il numero di barre disponibili sul server
   uint bars_total = Bars(Symbol(),Period());
   if(bars_total==0)
     {
      PrintFormat("Data for timeseries %s %s not yet generated in the terminal. Please try again later.",Symbol(),StringSubstr(EnumToString(Period()),7));
      return;
     }
//--- ottenere il numero minimo di barre da due valori - da quelli disponibili sul server e dal numero richiesto nelle impostazioni
   int bars = (int)MathMin(bars_total,InpBars);
//--- se sono richieste più barre di quelle disponibili sul server, segnalarlo nel journal
   if(bars_total<InpBars)
      PrintFormat("Number of bars on the server (%u) is less than requested (%u)",bars_total,InpBars);
//-- visualizzare il numero di barre disponibili per il lavoro nel journal
   Print("Bars available for work: ",bars);
  }