Discusión sobre el artículo "Qué comprobaciones debe superar un robot comercial antes de ser publicado en el Mercado" - página 23

 
No entiendo por qué el robot de trabajo no salta Traduje todos los comentarios en Inglés, ya que dio un error y después de todo esto dio este tipo de error

test on EURUSD,H1 (netting) 2022.02.01 09:36:20 failed instant sell 1 EURUSD at 0.00000 sl: 1.12832 tp: 1.12078 [Invalid price] 2022.02.01 09:37:40 failed instant sell 1 EURUSD at 0.00000 sl: 1.12837 tp: 1.12081 [Invalid price] 2022.02.01 09:37:59 failed instant sell 1 EURUSD at 0.00000 sl: 1.12836 tp: 1.12080 [Precio inválido] 2022.02.01 09:38:00 failed instant sell 1 EURUSD at 0.00000 sl: 1.12837 tp: 1.12081 [Precio inválido] 2022.02.01 09:38:20 failed instant sell 1 EURUSD at 0.00000 sl: 1.12836 tp: 1.12080 [Precio inválido] 2022.02.0101 09:41:40 fallido instante vender 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Precio no válido] 2022.02.01 09:41:59 fallido instante vender 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Precio no válido] 2022.02.01 09:42:00 fallido instante vender 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Precio no válido] 2022.02.01 09:44:40 fallido venta instantánea 1 EURUSD a 0.00000 sl: 1.12850 tp: 1.12060 [Precio no válido] 2022.02.01 09:44:59 fallido venta instantánea 1 EURUSD a 0.00000 sl: 1.12847 tp: 1.12057 [Precio no válido] 2022.02.01 09:45:00 fallido venta instantánea 1 EURUSD a 0..00000 sl: 1.12848 tp: 1.12058 [Precio no válido] 2022.02.01 17:43:40 fallido venta instantánea 1 EURUSD a 0.00000 sl: 1.13007 tp: 1.11921 [Precio no válido] 2022.02.01 17:44:40 fallido venta instantánea 1 EURUSD a 0.00000 sl: 1.13014 tp: 1.11928 [Precio no válido] 2022.02.0101 17:44:59 fallido venta instantánea 1 EURUSD a 0.00000 sl: 1.13014 tp: 1.11928 [Precio no válido] 2022.02.01 17:45:00 fallido venta instantánea 1 EURUSD a 0.00000 sl: 1.13016 tp: 1.11930 [Precio no válido] 2022.02.01 17:45:40 fallido venta instantánea 1 EURUSD a 0.00000 sl: 1.13000 tp: 1.11908 [Precio no válido] 2022.02.01 17:45:59 failed instant sell 1 EURUSD at 0.00000 sl: 1.13003 tp: 1.11911 [Invalid price] 2022.02.01 17:46:00 failed instant sell 1 EURUSD at 0.00000 sl: 1.13005 tp: 1.11913 [Invalid price] 2022.02.01 17:46:20 failed instant sell 1 EURUSD at 0.00000 sl: 1.13000 tp: 1.11908 [Invalid price] 2022.13000 tp: 1.11908 [Precio no válido] 2022.02.01 17:59:40 failed instant sell 1 EURUSD at 0.00000 sl: 1.13003 tp: 1.11911 [Precio no válido] 2022.02.01 17:59:59 failed instant sell 1 EURUSD at 0.00000 sl: 1.13020 tp: 1.11928 [Precio no válido] no hay operaciones de trading

¡¡¡¡no puede ser posible que el robot de comercio no puede abrir un comercio como yo personalmente uso este robot y aquí está!!!!
 

Por favor ayúdenme, no entiendo cual es la causa de que mi validación se muestre así, si entiendo el problema, sabré donde arreglar mi código. Gracias

El validador muestra un error

 
Mean Pichponreay #:

Por favor ayúdenme, no entiendo cual es la causa de que mi validación se muestre así, si entiendo el problema, sabré donde arreglar mi código. Gracias


Hola, tienes que comprobar las posiciones para el Margen Stop Out y cerrar las posiciones antes del Stop Out.

ACCOUNT_MARGIN_SO_SO

 
Nauris Zukas #:

Hola, es necesario comprobar las posiciones de Margen Stop Out y cerrar las posiciones antes de Stop Out.

ACCOUNT_MARGIN_SO_SO

Muchas gracias señor, vamos a tratar de arreglar ahora.

 
Tengo el mismo problema. No importa lo que intente, nada parece funcionar. Incluso he implementado un mecanismo de negociación simulada en mi Asesor Experto (EA), pero eso no ha resuelto el problema. Espero que alguien nos pueda ayudar a encontrar la manera de evitar este error sin dejar de mantener nuestra estrategia de negociación EA.
 

Realmente necesito ayuda-estoy atascado aquí con un error de 'no hay operación comercial'. Agradecería cualquier consejo o ayuda sobre cómo arreglar mi código para poder resolver este problema. He intentado varios atajos, pero no importa lo que hago, sigo encontrando este error.





Archivos adjuntos:
Capture.PNG  20 kb
 

Hola, estoy intentando subir un EA, pero siempre me da el mismo error

test on EURUSD,H1 (hedging)
 2022.02.03 15:40:40   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13260, tp: 1.13310 [Paradas no válidas].
 2022.02.03 15:40:59   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13225, tp: 1.13310 [Paradas no válidas].
 2022.02.03 15:41:00   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13225, tp: 1.13310 [Paradas no válidas].
 2022.02.03 15:41:20   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13240, tp: 1.13310 [Paradas no válidas].
 2022.02.03 15:41:40   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13155, tp: 1.13310 [Paradas no válidas].
 2022.02.03 15:41:59   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13210, tp: 1.13310 [Paradas no válidas].
 2022.02.03 15:42:00   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13210, tp: 1.13310 [Paradas no válidas].
 2022.02.03 15:42:20   failed modify #11 comprar 0.55 EURUSD sl: 1.12910, tp: 1.13310 -> sl: 1.13210, tp: 1.13310 [Paradas no válidas].
 2022.02.08 09:13:40   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14035, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:13:59   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14055, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:14:00   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14055, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:14:20   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14065, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:14:40   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14030, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:14:59   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14035, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:15:00   failed modify #21 vender 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14035, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:15:20   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14040, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:15:40   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.13985, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:15:59   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14025, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:16:00   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14025, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:16:20   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14025, tp: 1.13945 [Paradas no válidas]
 2022.02.08 09:16:40   failed modify #21 sell 0.55 EURUSD sl: 1.14345, tp: 1.13945 -> sl: 1.14050, tp: 1.13945 [Paradas no válidas]
strategy tester report 100 total trades

Hago la misma prueba localmente pero no obtengo ningún error ¿Qué puede estar pasando para que se produzcan estos errores?

2025.02.01 11:34:52.756 2022.02.03 15:40:26   Ticket #4# 
2025.02.01 11:34:52.756 2022.02.03 15:40:26   new stopLoss: 1.1313000000000002
2025.02.01 11:34:52.756 2022.02.03 15:40:26   position modified [#4 comprar 0.55 EURUSD 1.13081 sl: 1.13130 tp: 1.13280]
2025.02.01 11:34:52.758 2022.02.03 15:40:26   CTrade::OrderSend: modify position #4 EURUSD (sl: 1,13130, tp: 1,13280) [hecho]
2025.02.01 11:34:52.759 2022.02.03 15:40:27   Ticket #4# 
2025.02.01 11:34:52.759 2022.02.03 15:40:27   new stopLoss: 1.1314000000000002
2025.02.01 11:34:52.759 2022.02.03 15:40:27   position modified [#4 comprar 0.55 EURUSD 1.13081 sl: 1.13140 tp: 1.13280]
2025.02.01 11:34:52.761 2022.02.03 15:40:27   CTrade::OrderSend: modify position #4 EURUSD (sl: 1,13140, tp: 1,13280) [hecho]
2025.02.01 11:34:52.763 2022.02.03 15:40:28   Ticket #4# 
2025.02.01 11:34:52.763 2022.02.03 15:40:28   new stopLoss: 1.13145
2025.02.01 11:34:52.763 2022.02.03 15:40:28   position modified [#4 comprar 0.55 EURUSD 1.13081 sl: 1.13145 tp: 1.13280]
2025.02.01 11:34:52.765 2022.02.03 15:40:28   CTrade::OrderSend: modify position #4 EURUSD (sl: 1,13145, tp: 1,13280) [hecho]
2025.02.01 11:34:52.765 2022.02.03 15:40:28   Ticket #4# 
2025.02.01 11:34:52.765 2022.02.03 15:40:28   new stopLoss: 1.13155
2025.02.01 11:34:52.767 2022.02.03 15:40:28   position modified [#4 comprar 0.55 EURUSD 1.13081 sl: 1.13155 tp: 1.13280]
2025.02.01 11:34:52.769 2022.02.03 15:40:28   CTrade::OrderSend: modify position #4 EURUSD (sl: 1,13155, tp: 1,13280) [hecho]
2025.02.01 11:34:52.770 2022.02.03 15:40:29   Ticket #4# 
2025.02.01 11:34:52.770 2022.02.03 15:40:29   new stopLoss: 1.1316000000000002
2025.02.01 11:34:52.770 2022.02.03 15:40:29   position modified [#4 comprar 0.55 EURUSD 1.13081 sl: 1.13160 tp: 1.13280]
2025.02.01 11:34:52.772 2022.02.03 15:40:29   CTrade::OrderSend: modify position #4 EURUSD (sl: 1,13160, tp: 1,13280) [hecho]
 
Francisco Jesus Alonso Martin #:

Hola, estoy intentando subir un EA, pero siempre me da el mismo error

Hago la misma prueba localmente pero no obtengo ningún error ¿Qué puede estar pasando para que se produzcan estos errores?

Ok, ya lo he solucionado, tenía que comprobar los niveles de stop con el precio.

 

Hola, otra vez yo.

Solo me queda un error pero no encuentro la solución a este.

test on XAUUSD,D1 (hedging)
 2022.07.12 04:30:40   current account state: Balance: 1126.50, Credit: 0.00, Commission: 0.00, Accumulated: 0.00, Assets: 0.00, Liabilities: 0.00, Equity 1126.50, Margin: 0.00, FreeMargin: 1126.50
 2022.07.12 04:30:40   calculated account state: Assets: 0.00, Liabilities: 0.00, Equity 1126.50, Margin: 1132.76, FreeMargin: -6.26
 2022.07.12 04:30:40   not enough money for order [#7 comprar stop 0.65 XAUUSD a 1742.70]
strategy tester report 13 total trades

Siempre estoy comprobando el margen que tengo antes de hacer cualquier compra o venta con este método:

bool checkMoneyForTrade(string symb,double lots,ENUM_ORDER_TYPE type) {
//--- Obtener el precio de apertura
    MqlTick mqltick;
    SymbolInfoTick(symb,mqltick);
    double price = mqltick.ask;
    if(type == ORDER_TYPE_SELL)
        price = mqltick.bid;
//--- valores del margen requerido y libre
    double margin,free_margin = AccountInfoDouble(ACCOUNT_MARGIN_FREE);
    //--- llamada de la función de comprobación
    if(!OrderCalcMargin(type,symb,lots,price,margin)) {
        //--- algo salió mal, informe y devuelva false
        Print("Error in ",__FUNCTION__," code=",GetLastError());
        return(false);
    }
    //--- si no hay fondos suficientes para realizar la operación
    if(margin > free_margin || free_margin < 0) {
        //--- informa del error y devuelve false
        Print("Not enough money for ",EnumToString(type)," ",lots," ",symb," Error code=",GetLastError());
        return(false);
    }
//--- comprobación correcta
    return(true);
}
 

tengo un error en el proceso de validación que no puedo encontrar que cuando volví a probar en mqlf5 en esa fecha no hay error en mi terminal

ningún error