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

 

Hola a todos

¿Cuál es el error tan incomprensible:

prueba en EURUSD,H1 estrategia probador informe no se encuentra

¿Y cómo combatirlo? ¿Qué otro informe?

 
Denis Bogdanov:

Hola a todos.

¿Qué tipo de error es este extraño:

test on EURUSD,H1 strategy tester report not found

¿Y cómo combatirlo? ¿Qué informe?

Hola, tal vez hay un bucle infinito en algún lugar, por lo que la prueba no llega al momento de la generación de informes.

 

Hoy me pasa algo raro, dice que se ha completado con errores, pero no está claro cuales son. Está vacío.

 
Alexandr Gavrilin:

Hoy me pasa algo raro, dice que se ha completado con errores, pero no está claro cuales son. Está vacío.

Trucos autovalidator, ejecutarlo de nuevo.
 
Alexandr Gavrilin:

Hoy me pasa algo raro, dice que se ha completado con errores, pero no está claro cuales son. Está vacío.

Creo que ya está arreglado.
 
Vladislav Andruschenko:
Creo que está arreglado.

Definitivamente está arreglado, el robot ha sido probado.

 
La compra se realiza al precio de venta La venta tiene lugar al precio de oferta
TakeProfit - Oferta >= SYMBOL_TRADE_STOPS_LEVEL
Oferta - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL
Ask - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL

Eso es lo que dice el artículo. Pero, ¿no es esa la forma de hacerlo?

La compra se produce al precio Ask La venta se produce al precio de Oferta
TakeProfit - Ask >= SYMBOL_TRADE_STOPS_LEVEL
Bid - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL

Bid - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL

Y también en el código de la función -


// ...

switch(type)
     {
      //--- transacción de compra
      case  ORDER_TYPE_BUY:
        {
         //--- comprobar StopLoss
         SL_check=(Bid-SL>stops_level*_Point);
         if(!SL_check)
            PrintFormat("For order %s StopLoss=%.5f must be less than %.5f"+
                        "(Oferta=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d puntos)",
                        EnumToString(type),SL,Bid-stops_level*_Point,Bid,stops_level);
         //--- comprobar TakeProfit
         TP_check=(TP-Ask>stops_level*_Point);
         if(!TP_check)
            PrintFormat("For order %s TakeProfit=%.5f must be greater than %.5f"+
                        " (Oferta=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d puntos)",
                        EnumToString(type),TP,Bid+stops_level*_Point,Bid,stops_level);
         //--- devuelve el resultado de la comprobación
         return(SL_check&&TP_check);
        }
      //--- transacción de venta
      case  ORDER_TYPE_SELL:
        {
         //--- comprobar StopLoss
         SL_check=(SL-Ask>stops_level*_Point);
         if(!SL_check)
            PrintFormat("For order %s StopLoss=%.5f must be greater than %.5f "+
                        " (Ask=%.5f + SYMBOL_TRADE_STOPS_LEVEL=%d puntos)",
                        EnumToString(type),SL,Ask+stops_level*_Point,Ask,stops_level);
         //--- comprobar TakeProfit
         TP_check=(Bid-TP>stops_level*_Point);
         if(!TP_check)
            PrintFormat("For order %s TakeProfit=%.5f must be less than %.5f "+
                        " (Ask=%.5f - SYMBOL_TRADE_STOPS_LEVEL=%d puntos)",
                        EnumToString(type),TP,Ask-stops_level*_Point,Ask,stops_level);
         //--- devuelve el resultado de la comprobación
         return(TP_check&&SL_check);
        }
      break;
     }

// ...

???

¡Si hacemos como en el articulo solo perdemos puntos del spread en ganancia! ¿Tal vez no entiendo algo?

 
Oleg Arsentev #:
La compra se realiza al precio de venta La venta tiene lugar al precio de oferta
TakeProfit - Oferta >= SYMBOL_TRADE_STOPS_LEVEL
Oferta - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL
Ask - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Ask >= SYMBOL_TRADE_STOPS_LEVEL

Eso es lo que dice el artículo. Pero, ¿no es esa la forma de hacerlo?

La compra ocurre al precio Ask La venta se produce al precio Bid
TakeProfit - Ask >= SYMBOL_TRADE_STOPS_LEVEL
Bid - StopLoss >= SYMBOL_TRADE_STOPS_LEVEL

Oferta - TakeProfit >= SYMBOL_TRADE_STOPS_LEVEL
StopLoss - Venta >= SYMBOL_TRADE_STOPS_LEVEL

Y también en el código de la función -


???

¡Si lo hacemos como en el artículo que acaba de perder puntos de la propagación en el beneficio! ¿Quizás no entiendo algo?

Perdemos beneficio, por supuesto. Pero es imposible poner stops más cerca:

Por lo tanto, los niveles TakeProfit y StopLoss deben ser comparados con el precio actual, en el que es posible hacer una operación de la dirección opuesta:

  • La compra se realiza al precio Ask - Los niveles TakeProfit y StopLoss deben compararse con el precio de venta actual Bid.
  • La venta se realiza al precio Bid - los niveles TakeProfit y StopLoss deben compararse con el precio actual Ask.
[Eliminado]  
La mitad de los robots del Market no funcionan.
 
dryun777 #:
La mitad de los robots del mercado no funcionan.

Este es un artículo para los que escriben EAs. Necesita artículos de la serie "Cómo probar".