
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
seleccion por simbolo y majic no funciona
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
OrderSelect no funciona, no selecciona una orden (ticket por indice) para trabajar con ella, ejemplo simple en adjunto y no funciona en mt5 por alguna razon.
seleccion por simbolo y majic no funciona
if (OrderSymbol() == Symbol() && OrderMagicNumber() == MagicNumber)
{
}
OrderSelect no funciona no selecciona una orden (entrada por índice) para trabajar con ella, ejemplo sencillo en el adjunto y no funciona en mt5 por alguna razón
Hola, esta es una pregunta que tengo, como puedo obtener datos sobre errores al enviar ordenes para MT5, en la version MT4 se ve asi
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
El código de error está contenido en la estructura MqlTradeResult, no podré utilizar el código anterior en MT5 sin acceso al resultado, ¿cómo puedo modificar mt4orders.mqh para que devuelva los errores del servidor de órdenes? gracias
Hola, esta es una pregunta que tengo, como puedo obtener datos sobre errores al enviar ordenes para MT5, en la version MT4 se ve asi
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
El código de error está contenido en la estructura MqlTradeResult, no podré utilizar el código anterior en MT5 sin acceso al resultado, ¿cómo puedo modificar mt4orders.mqh para que devuelva los errores del servidor de órdenes? gracias
Es decir, ¿si hay un error al cerrar una orden GetLastError() devolverá el código de error (del servidor de operaciones), aunque no comprobemos MqlTradeResult Result; Result.retcode en OrderSend(Request, Result)?
Sí, no es difícil de implementar.
if (CloseError == false)
{
ResetLastError();
error = GetLastError();
Print(" CloseOpenedTrades OrderClose failed" + " - ticket=", OrderTicket() + string(error) + ") " + ErrorDescription(error) + " - ticket= ", OrderTicket());
}
No entiendo el significado de lo resaltado.
Sí, no es difícil de aplicar.
No entiendo el significado de la parte resaltada.
fue en la EA para mt4
Dices que no es difícil de implementar, pero de hecho GetLastError() puede devolver un error del servidor de operaciones si no se envía la orden, sin analizar la estructura MqlTradeResult.
Puedes simplemente añadir una comprobación a:
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ? Result.retcode < TRADE_RETCODE_ERROR : false);
}
¿pero es necesario hacerlo, si GetLastError() puede funcionar tal cual?
este era el caso en el asesor mt4
Entonces hay un error en la lógica.
Usted dice que no es difícil de implementar, pero de hecho GetLastError() puede devolver un error de servidor de comercio, si la orden no se envía, sin analizar la estructura MqlTradeResult.
Puedes simplemente añadir una comprobación a:
{
MqlTradeResult Result;
if (::OrderSend(Request, Result) || Result.retcode != TRADE_RETCODE_DONE)
{
Print("OrderSend() error: ", ResultRetcodeDescription(Result.retcode));
return(false);
}
else
{
return(true);
}
//return(MT4ORDERS::OrderSend(Request, Result) ? Result.retcode < TRADE_RETCODE_ERROR : false);
}
¿pero es necesario hacerlo, si GetLastError() puede funcionar tal cual?
No te entiendo. Tu implementación en if contiene un error. Además, existe el TRADE_RETCODE_DONE_PARTIAL - es una ejecución exitosa de OrderSend.
E incluso si arreglas tu código, sólo registrará un mensaje de error (y puede que alguien no quiera verlo cada vez). Pero NO estará disponible en MQL.
Por lo tanto, la variante cuando GetLastError devuelve tanto los errores de tiempo de ejecución estándar y códigos de retorno del servidor de comercio adicional parece ser el más óptimo.