¡¡¡El EA que escribí hace tres meses no puede pasar las pruebas de estrategia ahora, pero solía funcionar bien hace dos o tres meses!!!

 
El EA que escribí hace tres meses no puede pasar la prueba ahora, pero solía trabajar bien en el servidor MetaQuotes-Demo. ¿Hay alguien que se encontró con el mismo problema? El código de error es siempre como "failed instant sell 0.10 EURUSD at 1.38103 sl: 1.38253 tp: 1.38053 [Invalid request]" y "OrderSend failed with error #4756". Ayuda, estoy totalmente confundido.
-----------------------------------------------------------------------------------
si (condición1)
{
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol;
sell.deviation = 0;
sell.price = NormalizeDouble(mtick.bid,_Digits);
sell.volume = 0.1;
sell.tp = NormalizeDouble(sell.price - mtp*_Point,_Digits);
sell.sl = NormalizeDouble(sell.price + msl*_Point,_Digits);
sell.type_filling = ORDER_FILLING_AON;
if(OrderSend(sell,result_sell)==false)
{
Print("OrderSend falló con el error #",GetLastError());
ResetLastError();
}
}
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
 

Intente añadir ZeroMemory(sell).

if (condition1)
{
ZeroMemory(sell);
sell.action = TRADE_ACTION_DEAL;
sell.type = ORDER_TYPE_SELL;
sell.symbol = _Symbol; 
Hemos solucionado este problema, espere a la próxima versión, por favor.
 
Rosh:

Prueba a añadir ZeroMemory(sell).

Hemos solucionado este problema, espere a la próxima compilación, por favor.

Rosh, acaba de actualizar a .565 y obtuvo el mismo mensaje #4756

ZeroMemory(struct) ayuda. ¿Así que está arreglado o no todavía?

Gracias

 
Rosh:

Prueba a añadir ZeroMemory(sell).

Hemos solucionado este problema, espere a la próxima versión, por favor.

Tengo el mismo error aunque he seguido la forma exacta de componer la orden. ¿Cómo es posible? Estoy usando la build 597.

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 Alert: The Buy order request could not be completed -error:4756

2012.02.26 20:08:18 Core 1 2012.02.23 08:00:00 falló la compra de mercado 0.10 EURUSD sl: 1.32438 tp: 1.33738 [Modo de llenado no soportado].

if(Condición_de_compra_3 && Condición_de_compra_4)

{

// ¿alguna posición de compra abierta?

if(Buy_opened)

{

Alert("¡¡Ya tenemos una posición de compra!!");

return; // No abrir una nueva posición de compra

}

ZeroMemory(mrequest);

mrequest.action = TRADE_ACTION_DEAL; // ejecución inmediata de la orden

mrequest.type = ORDER_TYPE_BUY; // Orden de compra

mrequest.symbol = _Symbol; // par de divisas

mrequest.desviación=0; // Desviación del precio actual

mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // último precio de venta

mrequest.volumen = Lote; // número de lotes a negociar

mrequest.tp = NormalizeDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit

mrequest.sl = NormalizeDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss

mrequest.type_filling = ORDER_FILLING_AON; // Tipo de ejecución de la orden

//--- enviar orden

OrderSend(mrequest,mresult);

// obtener el código de resultado

if(mresult.retcode==10009 || mresult.retcode==10008) //La solicitud se ha completado o el pedido se ha realizado

{

Alert("Se ha realizado con éxito un pedido de compra con Ticket#:",mresult.order,"!");

}

else

{

Alert("La solicitud de compra no ha podido completarse -error:",GetLastError());

ResetLastError();

return;

}

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
 

Me he dado cuenta de que en la referencia de MQL5 (última versión que se acaba de actualizar hoy), ya no existe ORDER_FILLING_AON, pero incluso si utilizo ORDER_FILLING_FOK, me sigue apareciendo el error 4756. Por favor, aconsejadme.

ENUM_ORDER_TYPE_FILLING

Identificador

Descripción

ORDER_FILLING_FOK

La operación puede ejecutarse exclusivamente con un volumen especificado a un precio igual o mejor que el precio especificado en la orden. Si no hay suficiente volumen de ofertas en el símbolo de la orden, ésta no se ejecutará. Este tipo de relleno se utiliza en losmodos de ejecuciónSYMBOL_TRADE_EXECUTION_INSTANTo SYMBOL_TRADE_EXECUTION_REQUEST.

ORDER_FILLING_IOC

Un acuerdo para ejecutar la operación con el máximo volumen del mercado a un precio igual o mejor que el precio especificado en la orden. En este caso no se colocará una orden adicional por volumen no llenado. Este tipo de llenado se utiliza en los modos de ejecuciónSYMBOL_TRADE_EXECUTION_MARKETy SYMBOL_TRADE_EXECUTION_EXCHANGE dependiendo de la configuración del símbolo en un servidor de operaciones.

ORDER_FILLING_RETURN

Un acuerdo para ejecutar la operación con el máximo volumen del mercado a un precio igual o mejor que el precio especificado en la orden. En este caso se colocará una orden adicional por volumen no rellenado. Este tipo de relleno se utiliza sólo para las órdenes pendientes (TRADE_ACTION_PENDING).

 
Hola, ¿algún comentario antes de abandonar MT5 y volver a MT4? Muchas gracias! La verdad es que soy nuevo en ambas pero primero le daría una oportunidad a MT5 aunque sé que es muy nueva.
 
lingwuchung:
Hola, ¿algún comentario antes de abandonar MT5 y volver a MT4? Muchas gracias! La verdad es que soy nuevo en ambos pero primero le daría una oportunidad a MT5 aunque sé que es muy nuevo.

Añade esto antes del mrequest:

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 

He tenido exactamente el mismo problema que tú y me lo ha solucionado.

 

Ahora tengo el mismo problema.

Mis asesores expertos funcionaban muy bien. Pero ahora todos ellos no pueden pasar el probador.

Cuando compilo los archivos, se muestra el siguiente mensaje:

'ORDER_FILLING_AON' - identificador no declarado

¿Cómo se puede solucionar este problema?

¿Es el resultado de una actualización del terminal? (Versión 5.00 Build 642)

(24 abril 2012)

Espero que alguien pueda ayudarme

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
 
lamme.vandriel:

Cuando compilo los archivos, aparece el siguiente mensaje

'ORDER_FILLING_AON' - identificador no declarado

¿Cómo se puede solucionar este problema?

Sustituir ORDER_FILLING_AON por ORDER_FILLING_FOK (ver propiedades de la orden)

 
JohnnyDoe:

Añade esto antes del mrequest:

He tenido exactamente el mismo problema que tú y me lo ha solucionado.

Hola, he añadido estas 2 líneas en el código, pero el error 4756 sigue aquí (el envío de la solicitud de comercio falla).

¿Podría precisar dónde debo añadir las dos líneas? La que se refiere a mrequest ya está presente. Añadir las dos no cambia nada para mí. Gracias por la ayuda, se lo agradezco.

Estoy usando rel.5 build 842.

 ZeroMemory(mrequest);
   ZeroMemory(mresult); 
 
Vivaldi:

Hola, he añadido estas 2 líneas en el código, pero el error 4756 sigue aquí (fallo en el envío de la solicitud de comercio).

¿Podría precisar dónde debo añadir las dos líneas? La que se refiere a mrequest ya está presente. Añadir las dos no cambia nada para mí. Gracias por la ayuda, se lo agradezco.

Estoy usando rel.5 build 842.

Muestra tu código, para que podamos decirte donde añadir esta línea.