Función alternativa a Sleep () en MT4 que se puede probar?

 

Publi

Resultados 1 al 4 de 4

Tema: Función alternativa a Sleep () en MT4 que se puede probar?

  1. #1
    ¿Existe una alternativa al código Sleep () en MT4 que se puede usar para probar en el Probador de Eegia?

    De acuerdo con la documentación de MT4, la función Sleep () no suspende la ejecución del Asesor Experto en Strategy Tester.

    Me gustaría ver cómo cambia el rendimiento de los resultados de una prueba de EA si suspendo la negociación después de un TP grande durante X cantidad de tiempo.

    ¿Algún consejo sobre la mejor manera de implementar esto para que pueda ser probado?

  2. #2
    Cualquier solución alternativa sería apreciada. Básicamente, tuve algo como esto. . . hasta que entendí que no hace nada en modo evaluación. Me gustaría algo que simule la función de reposo O congelar o pausar y también funcionará en modo de evaluación. Tengo una función que cerrará todas las transacciones abiertas si una posición abierta excede un rango de beneficio máximo extendido. Quiero probar suspendiendo cualquier transacción prospectiva por X cantidad de tiempo y que también necesito que aparezca en modo de prueba. Código insertado void PipMaxCloseOut () int totalorders = OrdersTotal (); for (int I = totalorders-1; igt; = 0; I--) if (! OrderSelect (i, SELECT_BY_POS)) Print (TimeToStr (TimeCurrent (), TIME_SECONDS), función CHECK; gt;, __FUNCTION__, !!!! !, OrderMagicNumber (), código de error, GetLastError ()); else int resultado; if ((OrdersTotal () gt; 0) (OrderMagicNumber () == Trade1L)) RefreshRates (); Imprimir (TimeToStr (TimeCurrent (), TIME_SECONDS), CIERRE Trade1L PipMax CLOSE OUT, Orden PL :, OrderProfit (), Oferta :, MarketInfo (Trade, MODE_BID), Open Trades :, OrdersTotal ()); resultado = OrderClose (OrderTicket (), OrderLots (), MarketInfo (Trade, MODE_BID), MaxSlippage * 2, CLR_NONE); if (resultado lt; = -1) Imprimir (ERROR AL INTENTAR CERRAR Trade1L DURANTE PIPMax CERRAR FUERA ERROR CODE #, GetLastError ()); if ((OrdersTotal () gt; 0) (OrderMagicNumber () == Trade1S)) RefreshRates (); Impresión (TimeToStr (TimeCurrent (), TIME_SECONDS), CIERRE Trade1S PipMax CLOSE OUT, pedido PL :, OrderProfit (), Ask :, MarketInfo (Trade, MODE_ASK), Open Trades :, OrdersTotal ()); result = OrderClose (OrderTicket (), OrderLots (), MarketInfo (Trade, MODE_ASK), MaxSlippage * two, CLR_NONE); if (result lt; = -1) Print (ERROR AL INTENTAR CERRAR Trade1S DURANTE PIPMax CERRAR FUERA ERROR CODE #, GetLastError ()); Sueño (MilliSecs);

  3. #3
    Entonces esto es lo que he hecho hasta ahora, está probando. Desafortunadamente, no demasiado como esperaba, está filtrando más buenos oficios que pobres ... Al menos está probando por el momento. Puede modificarlo más tarde o simplemente eliminarlo. Se agregó Dual TimeMicroSecNow; dual TimeMicroSecAfterEQP; extern int MicroSecAfterEQP = 60000000; Se reemplazó la suspensión por: TimeMicroSecAfterEQP = GetMicrosecondCount (); Y antes de nuevas operaciones: TimeMicroSecNow = GetMicrosecondCount (); RefreshRates (); if (TimeMicroSecNow gt; TimeMicroSecAfterEQP MicroSecAfterEQP) COMERCIO;

  4. #4
    Antes de ingresar a una nueva operación, simplemente verifique la última hora de cierre de la operación y si ha transcurrido el tiempo suficiente (su retraso antes de reanudar la negociación).

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Cookies
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede cambiar la configuración u obtener más información y política de cookies aquí.