MQL4 ERR_INVALID_TRADE_VOLUME
MQL4 error 131 invalid trade volume: normalize lots
MQL4 error 131 invalid trade volume maps to ERR_INVALID_TRADE_VOLUME: invalid trade volume. The requested lots violate the symbol minimum, maximum, step, or another broker volume rule. For API calls, check the return value and capture GetLastError after a documented failure. Critical runtime errors require preventive guards and inspection of the terminal log.
Open the Coding Agent, then choose MQL4 from the language menu.
TradeVolumeDiagnostic.mq4MQL4
#property strict
#property script_show_inputs
input double Lots = 0.10;
input int Slippage = 3;
void OnStart()
{
if(!IsTradeAllowed())
{
Print("Trading is not currently allowed or the trade context is busy.");
return;
}
RefreshRates();
double price = NormalizeDouble(Ask, Digits);
ResetLastError();
int ticket = OrderSend(Symbol(), OP_BUY, Lots, price, Slippage,
0, 0, "diagnostic", 0, 0, clrNONE);
if(ticket >= 0)
{
Print("Order opened. Ticket ", ticket);
return;
}
int error_code = GetLastError();
Print("OrderSend failed. error=", error_code,
" symbol=", Symbol(), " lots=", DoubleToString(Lots, 2),
" ask=", DoubleToString(price, Digits));
}