error 4756 - página 2

 
angevoyageur:
¿Qué función, clases/método está utilizando para enviar/modificar sus órdenes?
OrderSend() después de configurar elMqlTradeRequest
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
Documentation on MQL5: Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure
  • www.mql5.com
Standard Constants, Enumerations and Structures / Data Structures / Trade Request Structure - Documentation on MQL5
 
RaptorUK:
OrderSend() después de configurar elMqlTradeRequest

¿Has visto esto (del documento Order Send)?

Hay que tener en cuenta que la finalización con éxito de la operación del método OrderSend() no siempre significa una finalización con éxito de la operación cuando se coloca una orden de mercado. Compruebe el valor de retcode que contiene el código de retorno del servidor de operaciones , y los valores del campo deal o order dependiendo del tipo de operación en elresultado devuelto .


Sería más fácil ayudar a ver el código.

 
angevoyageur:

¿Has visto esto (del documento OrderSend)?


Sería más fácil ayudar a ver el código.

Compruebo el resultado devuelto y sólo intento colocar el SL & TP si devuelve TRADE_RETCODE_PLACED o TRADE_RETCODE_DONE

         if( result.retcode != TRADE_RETCODE_PLACED && result.retcode != TRADE_RETCODE_DONE ) 
            {
            SetTPandSL = false;
            Print("Return code # ", result.retcode, " Bid ", result.bid, " Ask ", result.ask, " Deal price ", result.price);
            }
         else SetTPandSL = true;

         if(SetTPandSL && ECN)
            {
            // now modify Position to add SL & TP
            ZeroMemory(request);
            ZeroMemory(result);
            request.action = TRADE_ACTION_SLTP;                   // setting the TP & SL
            request.symbol = _Symbol;                             // symbol
            request.sl = lastTick.ask - SL_Size * _Point;        // Stop Loss
            request.tp = lastTick.ask + TP_Size * _Point;        // Take Profit  
            
            //--- send a trade request
            OrderSend(request,result);
            
            //--- write the server reply to log  
            Print(__FUNCTION__,": Placeing SL & TP ",result.comment, " Return code # ", result.retcode);  
            if( result.retcode != TRADE_RETCODE_PLACED && result.retcode != TRADE_RETCODE_DONE ) 
               Print("Return code # ", result.retcode, " Bid ", lastTick.bid, " Ask ", lastTick.ask, " Deal price ", 
                  result.price, " SL: ", request.sl, " TP: ", request.tp, " Freeze: ", Freeze, " Stoplevel: ", Stop );
            }
 
RaptorUK:

Compruebo el resultado devuelto y sólo intento colocar el SL & TP si devuelve TRADE_RETCODE_PLACED o TRADE_RETCODE_DONE


Hay que tener en cuenta que la finalización con éxito de la operación del método OrderSend() no siempre significa una finalización con éxito de la operación cuando se coloca una orden de mercado. Compruebe el valor deretcode que contiene el código de retorno del servidor de operaciones, y los valores del campo deal o order dependiendo del tipo de operación en elresultado devuelto .

Hay que comprobar el número de ticket de la operación:

  if( (result.retcode != TRADE_RETCODE_PLACED && result.retcode != TRADE_RETCODE_DONE) || result.deal == 0) 

Esto no es la última palabra, si su deal ticket es 0, su modificación de SL/TP no se ejecutará de todos modos. Sigo buscando...


 
angevoyageur:

Tiene que comprobar el número de ticket de transacción:

Esto no es la última palabra, si su ticket de transacción es 0, su modificación de SL/TP no se ejecutará de todos modos. Sigo buscando...

Puedo hacer eso, pero el problema es que la operación fue exitosa y la posición fue abierta... sin embargo, cuando traté de añadir el SL & TP falló con Invalid Stops a pesar de que no eran inválidos. Parece que tengo que esperar a que algo suceda antes de que pueda enviar la solicitud para establecer el TP & SL... pero realmente no sé cuál es la cosa oficial y documentada que debo esperar.

Gracias por la respuesta :-)

 
RaptorUK:

Puedo hacerlo, pero el problema es que la operación fue exitosa y la posición se abrió... sin embargo, cuando traté de agregar el SL y el TP falló con Stops inválidos a pesar de que no eran inválidos. Parece que tengo que esperar a que algo suceda antes de que pueda enviar la solicitud para establecer el TP y el SL... pero realmente no sé cuál es la cosa oficial y documentada que debo esperar.

Gracias por la respuesta :-)

Lo sé. Estoy revisando todo el sitio mql5 para encontrar una respuesta :-D

Editar:

Nohay absolutamente nada en este sitio que muestra cómo poner un sl / tp con un tipo de ejecución del comercio delmercado.

En realidad tengo el mismo problema, pero utilizando PositionOpen en lugar de OrderSend, también puedo hacerlo manualmente.

 
angevoyageur:

Lo sé. Estoy revisando todo el sitio mql5 para encontrar una respuesta :-D

Editar:

Nohay absolutamente nada en este sitio que muestra cómo poner un sl / tp con un tipo de ejecución de comercio demercado.

En realidad tengo el mismo problema pero usando PositionOpen en lugar de OrderSend, también puedo hacerlo manualmente.

He encontrado. Es un problema de sincronización entre su EA y el servidor de comercio. Tienes que usar el manejador de eventos OnTradeTransaction().

El resultado de la ejecución de la solicitud de comercio en un servidor enviado por OrderSend() función puede ser rastreado por OnTradeTransaction handler. Hay que tener en cuenta que el manejador OnTradeTransaction será llamado varias veces cuando se ejecute una solicitud de operación.

Por ejemplo, cuando se envía una orden de compra de mercado, se gestiona, se crea una orden de compra apropiada para la cuenta, la orden se ejecuta y se elimina de la lista de las abiertas, luego se añade al historial de órdenes, se añade una operación apropiada al historial y se crea una nueva posición. La función OnTradeTransaction será llamada para cada uno de estos eventos.

RTFM ;-) Pruébalo... mañana por mí.
 
angevoyageur:

Lo he encontrado. Es un problema de sincronización entre tu EA y el servidor de operaciones. Tienes que usar el manejador de eventos OnTradeTransaction().

RTFM ;-) Pruébalo... mañana por mí.
Ahhhh, gracias, voy a echar un vistazo. :-)
 
RaptorUK:
Ahhhh, gracias, voy a echar un vistazo. :-)
¿Es este el hilo que encontraste?https://www.mql5.com/en/forum/10850 informa del mismo problema que yo tengo
 

Mi EA está trayendo u errores extraños con la construcción 778. El volumen de 0.1 es normalizado y claramente no es inválido.

2013.03.12 07:29:57 pivots (SILVER,M5) SILVER failed ORDER_TYPE_SELL_STOP with volume 0.10; err# 4756 check code: 10014 comentarios: Volumen no válido

2013.03.12 07:20:00 pivots (SILVER,M5) SILVER failed ORDER_TYPE_SELL_STOP with volume 0.10; err# 4756 returned code: 10014, comentarios del broker: Volumen inválido

Este es el código que lo hace aparecer

      ResetLastError();
      if(OrderCheck(_request,_check)){
         if(!OrderSend(_request,_result)){
            Print(TradeSymbol," failed ",EnumToString(OrderType)," with volume ",DoubleToString(OrderVolume,2),"; err# ",GetLastError()," returned code: ",_result.retcode,", broker comments: ",_result.comment);
            return(false);}
         else{
            if(_result.retcode!=(0||TRADE_RETCODE_PLACED||TRADE_RETCODE_DONE)){
               Print(TradeSymbol," failed ",EnumToString(OrderType)," with volume ",DoubleToString(OrderVolume,2),"; err# ",GetLastError()," returned code: ",_result.retcode,", broker comments: ",_result.comment);}}}
      else{
         Print(TradeSymbol," failed ",EnumToString(OrderType)," with volume ",DoubleToString(OrderVolume,2),"; err# ",GetLastError()," check code: ",_check.retcode," comments: ",_check.comment);
         return(false); }


Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
Documentation on MQL5: Standard Constants, Enumerations and Structures / Trade Constants / Order Properties
  • www.mql5.com
Standard Constants, Enumerations and Structures / Trade Constants / Order Properties - Documentation on MQL5