Metatrader usa el 40% de la CPU todo el tiempo cuando usa EA
Metatrader usa el 40% de la CPU todo el tiempo cuando usa EA

 

Publi

Resultados 1 al 6 de 6

Tema: Metatrader usa el 40% de la CPU todo el tiempo cuando usa EA

  1. #1
    El EA solo ejecuta código real cada 15 minutos, entre ellos solo ejecuta este código (que está en la función start()):

    si (iTime(NULL, PERIOD_M15, 1) == last_start_time)
    retorno(0);

    lo que hace que el EA se detenga hasta el siguiente tic.

    Puse el EA en 15 pares y terminal.exe usa constantemente entre el 35 y el 40% de la CPU (mi procesador es Quad core Q6600 a 2,40 GHz). ¿Es normal?

  2.                         
    Publicidad
  3. #2

    Cita Iniciado por ;
    Gracias por las respuestas, pero hoy noté que eso sucede durante 7-8 minutos y luego el uso de la CPU va al 5-10% hasta la siguiente barra M15, que es el momento de ejecutar todo el código (muchos bucles). Supongo que no hay forma de reducir el uso de la CPU, ¿verdad? Editar: Acabo de notar que el EA solo ejecuta todo el código en esos 15 minutos en el primer par en el que puse el EA, en los demás no ejecuta todo el código hasta que aparece la siguiente barra. No sé qué hacer ahora... ¿Ejecutar un terminal.exe para cada par?
    Su código suena muy roto. suena como si se estuviera activando, quedando atrapado en bucles innecesarios y colgando su terminal en un grado u otro, y luego no está actualizando sus valores para que se active en el siguiente período. Creo que necesitas hacer una revisión y atacar lo que sea que estés tratando de hacer desde un ángulo diferente y más eficiente. Realmente no se puede decir mucho más con sólo esas pocas líneas de código.

  4. #3
    Gracias por las respuestas, pero hoy noté que eso sucede durante 7-8 minutos y luego el uso de la CPU va al 5-10% hasta la siguiente barra M15, que es el momento de ejecutar todo el código (muchos bucles). Supongo que no hay forma de reducir el uso de la CPU, ¿verdad? Editar: Acabo de notar que el EA solo ejecuta todo el código en esos 15 minutos en el primer par en el que puse el EA, en los demás no ejecuta todo el código hasta que aparece la siguiente barra. No sé qué hacer ahora... ¿Ejecutar un terminal.exe para cada par?

  5. #4

    Cita Iniciado por ;
    El EA solo ejecuta código real cada 15 minutos, entre ellos solo ejecuta este código (que está en la función start()): if (iTime(NULL, PERIOD_M15, 1) == last_start_time ) return(0); lo que hace que el EA se detenga hasta el siguiente tic. Puse el EA en 15 pares y terminal.exe usa constantemente entre el 35 y el 40% de la CPU (mi procesador es Quad core Q6600 a 2,40 GHz). ¿Es normal?
    No, posiblemente suene como una pérdida de memoria. Cuando inicie el EA, tome una foto de su administrador de tareas de Windows en la pestaña de rendimiento... con el mercado abierto, espere unas horas y luego tome otra foto del administrador de tareas de Windows. Compara las dos fotos. ¿Estás usando más memoria en la última foto que en la primera? Si estás usando más memoria en la segunda foto que en la primera, entonces ese es tu problema. (Por ahora solo estoy adivinando)

  6. #5

    Cita Iniciado por ;
    El EA solo ejecuta código real cada 15 minutos, entre ellos solo ejecuta este código (que está en la función start()): if (iTime(NULL, PERIOD_M15, 1) == last_start_time ) return(0); lo que hace que el EA se detenga hasta el siguiente tic. Puse el EA en 15 pares y terminal.exe usa constantemente entre el 35 y el 40% de la CPU (mi procesador es Quad core Q6600 a 2,40 GHz). ¿Es normal?
    No estaría probando contra iTime cada tic. No debería hacer una gran diferencia, pero aun así yo no haría eso. es mejor que dentro de su bloque de código calcule el próximo tiempo específico para realizar pruebas siempre... entonces puede simplemente if (time[0] gt;= whattime) {hacer algo de mierda y calcular el siguiente en cualquier momento} Código insertado// ------------------------------------------------ ------------------ /| probandootroscodeindi.mq4 |/| |/| |/ -------------------------------------------------------------- ------------------- #propiedad copyright #enlace de propiedad #indicador_chart_window de propiedad #definir ciclos 1000000 int deinit() { Comment(); retorno(0); } int inicio() { retorno(0); } int inicio() { int c; int tc, inicio1, inicio2, final1, final2, tonto; fecha y hora ficticia; inicio1 = GetTickCount(); for (c = 0; c lt; ciclos; c ) if (Tiempo#91;1#93; != Tiempo#91;0#93 dummytick = GetTickCount(); end1 = GetTickCount() - tc; Comentario (tonto); inicio2 = GetTickCount(); for (c = 0; c lt; ciclos; c ) if (iTime(NULL, PERIOD_M15, 1) != Time#91;0#93 dummytick = GetTickCount(); end2 = GetTickCount() - tc; Comentario (tonto); Comentario(Hora#91;#93;:\n, inicio1, , fin1, (, fin1-inicio1, ms)\niHora#91;#93;:\n, inicio2, , fin2, (, fin2-inicio2, ms )); retorno(0); } este fragmento de código basura muestra en mi plataforma que iTime cuesta más ciclos que una simple prueba de Time[]. en mi sistema el costo es insignificante, pero quizás en su plataforma esté sucediendo algo raro. tal vez tenga algún otro fragmento de código ejecutándose con llamadas iSomeFunc similares que son el problema. Si estuvo lo suficientemente feliz como para usar el código que ha mostrado aquí, probablemente esté felizmente haciendo algo en otro lugar de manera realmente ineficiente y ralentizando su terminal sin darse cuenta. algo no está bien y se requiere más presión y presión en su configuración para aislar el problema...

  7. #6
    1 Adjunto(s) Estoy de acuerdo con Nubcake... algo no está bien. Aquí hay una foto de mi administrador de tareas ejecutando 2 instancias de meta trader con 1 ea en 1 par en una y en la otra ejecutándose en más de 10 pares con un fragmento de código que ejecuta cada tick y más de 2000 líneas de código. Para su información, la razón por la que sospecho que hay una pérdida de memoria es que he visto ese problema antes en mi propio equipo y no es instantáneo, sino que se acumula con el tiempo. Una pérdida de memoria en sí misma provocará sobrecargas de la CPU, así como un uso cada vez mayor de la memoria a medida que pasa el tiempo. Si reinicias la computadora/EA, todo comienza de nuevo... por eso lo llaman fuga. Solo llegarás al fondo empujando y empujando como sugirió Nubcake.

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.