Files
mql5-skills/skills/mql5/references/docs/08-math/0608-math-mathmin.md
T
2026-06-23 21:47:51 +08:00

63 lines
2.2 KiB
Markdown
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# MathMin
The function returns the minimal value of two values.
```
double  MathMin(
   double  value1,     // first value
   double  value2      // second value
   );
```
Parameters
value1
[in]  First numeric value.
value2
[in]  Second numeric value.
Return Value
The smallest of the two values.
Note
Instead of MathMin() you can use fmin(). Functions fmax(), [fmin()](/en/docs/math/mathmin), [MathMax](/en/docs/math/mathmax)(), [MathMin()](/en/docs/math/mathmin) can work with integer types without typecasting them to the type of double.
If parameters of different types are passed into a function, the parameter of the smaller type is automatically [cast](/en/docs/basis/types/casting) to the larger type. The type of the return value corresponds to the larger type.
If data of the same type are passed, no casting is performed.
Example:
```
//--- input parameters
input uint  InpBars  =  100000;  // Desired number of bars
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- get the number of available bars on the 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;
     }
//--- get the minimum number of bars from two values - from those available on the server and from the requested number in the settings
   int bars = (int)MathMin(bars_total,InpBars);
//--- if more bars are requested than are available on the server, report this in the journal
   if(bars_total<InpBars)
      PrintFormat("Number of bars on the server (%u) is less than requested (%u)",bars_total,InpBars);
//--- display the number of bars available for work in the journal
   Print("Bars available for work: ",bars);
  }
```