MQL4 ERR_INVALID_PRICE_PARAM
MQL4 error 4107: correct the price parameter
MQL4 error 4107 invalid price parameter maps to ERR_INVALID_PRICE_PARAM: invalid price parameter for trade function. A price passed to a trade function is structurally invalid for the symbol or operation. Capture GetLastError immediately after the failed call, correct the cause, and retry only when the condition can change.
Open the Coding Agent, then choose MQL4 from the language menu.
PriceParameterDiagnostic.mq4.mq4
#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));
}