try find a maximum value or minimum value of a particular math calculation where it required to find out maximum value out of 3 , but in case of 2 value it worked any suggestion would help me find out. Thank you in advance
- Questions from Beginners MQL5 MT5 MetaTrader 5
- How to calculate the max lot size
- Maximum value for setting the stop loss and take profit
Here you go:
// Inline macro #define inline_MathMax(value1, value2) ((value1 >= value2) ? value1 : value2) #define inline_MathMin(value1, value2) ((value1 <= value2) ? value1 : value2) // Function template <typename T, typename U> const T MathMax(const T value1, const U value2) { return((T)MathMax((double)value1, (double)value2)); } // Function template <typename T, typename U> const T MathMin(const T value1, const U value2) { return((T)MathMin((double)value1, (double)value2)); } const double MathMax( const double value1, const double value2, const double value3 = NULL, const double value4 = NULL, const double value5 = NULL, const double value6 = NULL, const double value7 = NULL, const double value8 = NULL, const double value9 = NULL, const double value10 = NULL) { double val_a = inline_MathMax(value1, value2); val_a = inline_MathMax(val_a, value3); val_a = inline_MathMax(val_a, value4); val_a = inline_MathMax(val_a, value5); val_a = inline_MathMax(val_a, value6); val_a = inline_MathMax(val_a, value7); val_a = inline_MathMax(val_a, value8); val_a = inline_MathMax(val_a, value9); val_a = inline_MathMax(val_a, value10); return(val_a); } // Multi input function const int MathMax( const int value1, const int value2, const int value3 = NULL, const int value4 = NULL, const int value5 = NULL, const int value6 = NULL, const int value7 = NULL, const int value8 = NULL, const int value9 = NULL, const int value10 = NULL) { int val_a = inline_MathMax(value1, value2); val_a = inline_MathMax(val_a, value3); val_a = inline_MathMax(val_a, value4); val_a = inline_MathMax(val_a, value5); val_a = inline_MathMax(val_a, value6); val_a = inline_MathMax(val_a, value7); val_a = inline_MathMax(val_a, value8); val_a = inline_MathMax(val_a, value9); val_a = inline_MathMax(val_a, value10); return(val_a); } // Multi input function const double MathMin( const double value1, const double value2, const double value3 = DBL_MAX, const double value4 = DBL_MAX, const double value5 = DBL_MAX, const double value6 = DBL_MAX, const double value7 = DBL_MAX, const double value8 = DBL_MAX, const double value9 = DBL_MAX, const double value10 = DBL_MAX) { double val_a = inline_MathMin(value1, value2); val_a = inline_MathMin(val_a, value3); val_a = inline_MathMin(val_a, value4); val_a = inline_MathMin(val_a, value5); val_a = inline_MathMin(val_a, value6); val_a = inline_MathMin(val_a, value7); val_a = inline_MathMin(val_a, value8); val_a = inline_MathMin(val_a, value9); val_a = inline_MathMin(val_a, value10); return(val_a); } // Multi input function const int MathMin( const int value1, const int value2, const int value3 = INT_MAX, const int value4 = INT_MAX, const int value5 = INT_MAX, const int value6 = INT_MAX, const int value7 = INT_MAX, const int value8 = INT_MAX, const int value9 = INT_MAX, const int value10 = INT_MAX) { int val_a = inline_MathMin(value1, value2); val_a = inline_MathMin(val_a, value3); val_a = inline_MathMin(val_a, value4); val_a = inline_MathMin(val_a, value5); val_a = inline_MathMin(val_a, value6); val_a = inline_MathMin(val_a, value7); val_a = inline_MathMin(val_a, value8); val_a = inline_MathMin(val_a, value9); val_a = inline_MathMin(val_a, value10); return(val_a); }
BTW, I just saw, there is an error in the code above for the Math max function.
The default input on the parameters from value3 to value 10 would need not to be NULL but DBL_MAX * -1.0 and INT_MAX * -1 respectively.
Maybe you want to correct that. Else you will have issues with negative numbers always returning NULL as results.
OP asked for a function, at least that's what I understood.
The posted version is at least concerning speed just one function call and more easy to read when utilized.
I had the same issue and this is a snippet from my personal function library.
Of course you can do it as you like.

You are missing trading opportunities:
- Free trading apps
- Over 8,000 signals for copying
- Economic news for exploring financial markets
Registration
Log in
You agree to website policy and terms of use
If you do not have an account, please register