La MT5 de 64 bits build 858 se bloquea...

 

Hola,

Mi broker lanzó ayer su versión de 64 bits de la MT5 build 858 y después de actualizar desde la build 842 (que ha estado funcionando bien) a esta nueva versión, MT5 se bloquea esporádicamente (es decir, se congela y deja de responder). La única manera de cerrar MT5 después de que esto ha ocurrido es matarlo a través del Administrador de Tareas.

Este problema ha sido evidente tanto en mi máquina de demostración de MT5 (Windows 7) como en mi máquina VPS en vivo de MT5 (Windows Server 2008r2). Ambas máquinas anteriormente corrían MT5 build 842 en ellas sin problemas.

Nada ha cambiado: la configuración de MT5 - los mismos expertos, etc. que se utilizaron en la versión 842 se ejecutan ahora en las dos instalaciones de la versión 858.

Hace varias semanas, también encendí una máquina de 32 bits para probar la compilación 858 (por alguna razón, mi rompió lanzó la versión de 32 bits de la compilación 858 hace un par de semanas y la versión de 64 bits sólo ayer), con la que no tuve ningún problema. Desde entonces he transferido mis operaciones en vivo a la plataforma de 32 bits y no he tenido ningún problema hasta ahora. La versión demo de 64 bits que he estado utilizando se ha vuelto a colgar esta tarde.

Ah, y no hay nada en los registros que indique que MT5 ha tenido problemas.

¿Alguien más está teniendo estos problemas?

 
¿Supongo que ha informado de este problema al Servicio de Atención al Cliente?
 
angevoyageur:
¿Supongo que informó de este problema al Servicio de Atención al Cliente?
Ah, no, tenía prisa y se me olvidó por completo. Gracias por el recordatorio, lo haré ahora...
 

Estado actual de este problema: los problemas de bloqueo se producen tanto con la versión 858 como con la nueva versión disponible actualmente en el sitio web de MetaQuotes, la versión 868. Los problemas de bloqueo se producen tanto en plataformas de 32 como de 64 bits. Los problemas de bloqueo se producen tanto en plataformas de 32 como de 64 bits. Actualmente tengo un informe de problemas que se ejecuta tanto con MetaQuotes como con mi corredor.

¿Hay alguien más que tenga problemas de bloqueo con las versiones más nuevas que la 842? Estoy ejecutando una serie de Expertos por lo que sospecho que MT5 puede necesitar ser razonablemente "cargado" para estos problemas de bloqueo a ocurrir.

También he reinstalado MT5 en varias máquinas diferentes e instancias VPS (básicamente para descartar cualquier problema de la máquina). Y debido a que estas instalaciones eran instalaciones frescas, no puedo ver que he corrompido mi instalación de MT5 de alguna manera. También he recompilado mis Expertos con los nuevos compiladores de construcción y que también ha hecho ninguna diferencia.

Para que conste, estoy ejecutando exactamente los mismos Expertos en las mismas máquinas que he estado durante el último año (en varias builds de MT5) y NUNCA he tenido un caso en el que MT5 se haya bloqueado (en realidad había estado realmente impresionado con la estabilidad de MT5 hasta ahora). Fue sólo cuando actualicé mis instalaciones de MT5 build 842 sin problemas a instalaciones build 858, que estos problemas comenzaron a ocurrir.

 
cowil:

Estado actual de este problema: los problemas de bloqueo se producen tanto con la versión 858 como con la nueva versión disponible actualmente en el sitio web de MetaQuotes, la versión 868. Los problemas de bloqueo se producen tanto en plataformas de 32 como de 64 bits. Los problemas de bloqueo se producen tanto en plataformas de 32 como de 64 bits. Actualmente tengo un informe de problemas que se ejecuta tanto con MetaQuotes como con mi corredor.

¿Hay alguien más que tenga problemas de bloqueo con las versiones más nuevas que la 842? Estoy ejecutando una serie de Expertos por lo que sospecho que MT5 puede necesitar ser razonablemente "cargado" para estos problemas de bloqueo a ocurrir.

También he reinstalado MT5 en varias máquinas diferentes e instancias VPS (básicamente para descartar cualquier problema de la máquina). Y debido a que estas instalaciones eran instalaciones frescas, no puedo ver que he corrompido mi instalación de MT5 de alguna manera. También he recompilado mis Expertos con los nuevos compiladores de construcción y que también ha hecho ninguna diferencia.

Para que conste, estoy ejecutando exactamente los mismos Expertos en las mismas máquinas que he estado durante el último año (en varias construcciones de MT5) y NUNCA he tenido un caso en el que MT5 se haya bloqueado (en realidad había estado realmente impresionado con la estabilidad de MT5 hasta ahora). Fue sólo cuando actualicé mis instalaciones de MT5 build 842 sin problemas a instalaciones build 858, que estos problemas comenzaron a ocurrir.

Encontré un error en la función Bars() con estas build 858/868. Este error ralentiza considerablemente la ejecución del código. Quizás tú también tengas este problema.
Documentation on MQL5: Timeseries and Indicators Access / Bars
Documentation on MQL5: Timeseries and Indicators Access / Bars
  • www.mql5.com
Timeseries and Indicators Access / Bars - Documentation on MQL5
 
angevoyageur:
He encontrado un error en la función Bars() con estas build 858/868. Este error ralentiza considerablemente la ejecución del código. Quizás tú también tengas este problema.

Hola, gracias por tu aportación.

En realidad, no utilizo la función Bars() en mi código, pero me parece un poco preocupante que un error tan grave se haya colado en una función tan utilizada, sobre todo porque antes no estaba ahí... ¿Quizás una función relacionada que sí utilizo llama al mismo código subyacente que llama la función Bars()?

¿Cómo ha conseguido detectar esto y aislarlo? ¿El tiempo que tardaba Bars() en completar su función era extraordinariamente largo? Si es así, ¿de qué tipo de tiempo estás hablando, de cientos de milisegundos?

Estoy intentando que MetaQuotes o mi broker me proporcionen una versión 842 o anterior, pero aún no lo he conseguido...

 
cowil:

Hola, gracias por tu aportación.

En realidad, no utilizo la función Bars() en mi código, pero me parece un poco preocupante que un error tan grave se haya colado en una función tan utilizada, sobre todo porque antes no estaba ahí... ¿Quizás una función relacionada que sí utilizo, llama al mismo código subyacente que la función Bars()?

¿Cómo ha conseguido detectar esto y aislarlo? ¿El tiempo que tardaba Bars() en completar su función era extraordinariamente largo? Si es así, ¿de qué tipo de tiempo estás hablando, de cientos de milisegundos?

Estoy intentando que MetaQuotes o mi broker me proporcionen una versión 842 o anterior, pero aún no lo he conseguido...

En primer lugar observé que un EA no actualiza la información mostrada en el gráfico en cada tick. Así que empecé a depurar el código y encontré que el manejador de eventos OnTick() no se llama en cada tick, lo que significa que OnTick para un tick anterior todavía se está ejecutando.

Entonces uso el perfilador para analizar lo que está ocurriendo en OnTick() y encuentro que es la función Bars() la que tarda muchos segundos en ejecutarse. Después de comprobar la función Bars() con un código muy simple para confirmar que es un error en MT5/mql5. El mismo código funciona sin problemas con la build 842.

Profiler es una herramienta impresionante, tan fácil de usar y potente.

 
angevoyageur:

Primero observé que un EA no actualiza la información mostrada en el gráfico en cada tick. Así que empecé a depurar el código y encontré que el manejador de eventos OnTick() no es llamado en cada tick, lo que significa que OnTick para un tick anterior todavía se está ejecutando.

Luego uso el profiler para analizar lo que ocurre en OnTick() y encuentro que es la función Bars() la que tarda muchos segundos en ejecutarse. Después compruebo la función Bars() con un código muy simple para confirmar que es un error en MT5/mql5. El mismo código funciona sin problemas con la build 842.

Profiler es una herramienta impresionante, tan fácil de usar y potente.

¡En primer lugar, gracias por la información - muy apreciado! :)

Dios, ¿segundos dices...? Eso sí que es un problema serio. Creo que voy a hacer lo mismo y ver lo que mi experto es hasta. Ejecuto el mismo Experto en 8 gráficos diferentes, así que odio pensar lo que podría estar sucediendo si ese tipo de retrasos están ocurriendo dentro de cada Experto.

Y no hay alegría de MetaQuotes re: tratando de obtener la construcción 842 o anterior. Cita: "No, no tenemos un enlace a la versión 842. No almacenamos versiones antiguas en ningún sitio". Increíble... :( Cuando dices que tienes una build 842 ahí, supongo que es una versión ya instalada y no una versión instalable.

 
cowil:

En primer lugar, muchas gracias por la información - ¡muy apreciada! :)

Dios, ¿segundos dices...? Eso sí que es un problema serio. Creo que voy a hacer lo mismo y ver lo que mi experto es hasta. Ejecuto el mismo Experto en 8 gráficos diferentes, así que odio pensar en lo que podría estar sucediendo si ese tipo de retrasos están ocurriendo dentro de cada Experto.

Y no hay alegría de MetaQuotes re: tratando de obtener la construcción 842 o anterior. Cita"No, no tenemos un enlace a la versión 842. No almacenamos versiones antiguas en ningún sitio". Increíble... :( Cuando dices que tienes una build 842 ahí, supongo que es una versión ya instalada y no una versión instalable.

Sí, ya está instalada desde un broker (ver su PM).
 

Pues bien, mi propio bróker tampoco pudo suministrarme una versión anterior. Así que, por increíble que parezca, ni mi (gran) broker, ni la gran empresa de software que realmente desarrolla el software (es decir, MetaQuotes) pudieron proporcionarme una sola build anterior de MT5. ¡¡¡Increíble!!!

ASÍ QUE PARA CUALQUIERA QUE LEA ESTE POST, ¡LA ACTUALIZACIÓN ES BÁSICAMENTE UNA CALLE DE UN SOLO SENTIDO! ¡¡¡¡POR INCREIBLE QUE PAREZCA, NO HAY BUILDS ANTERIORES DISPONIBLES PARA VOLVER A ELLOS EN CASO DE QUE LA VERSIÓN DE MT5 SEA PROBLEMÁTICA!!!! ¡¡¡Así que ASEGÚRESE DE PROBAR TODO ANTES DE COMPROMETERSE CON UNA NUEVA LIBERACIÓN, ESPECIALMENTE EN UN ENTORNO EN VIVO (es decir, usando dinero real)!!!

Si usted ha sido descuidado como yo esta vez (es decir, no probar todo a fondo antes de comprometerse a una nueva versión), están teniendo los mismos o similares problemas como yo y han agotado todas las demás opciones, aquí está el truco que he utilizado que ha trabajado para mí. Esto no significa que te funcione a ti y te aconsejo que sólo lo hagas cuando (a) estés completamente jodido (como yo) y (b) sepas un poco de informática:

1. Encuentra a alguien que todavía tenga una instalación en funcionamiento de la compilación 842.

2. Pídele que haga una copia de toda la estructura de directorios de la instalación de MT5 y la coloque en un directorio temporal de su ordenador.

3. 3. Pídale que vaya a través de los directorios ../bases/xxx/history/<SymbolPair> (de la instalación de MT5 copiada en su directorio temporal) y borre todo el contenido de cada directorio (Este paso básicamente elimina los datos del historial de ese corredor en particular)

4. Una vez eliminados los datos del historial, pídeles que compriman toda la estructura de directorios de la instalación en su directorio temporal y te la envíen (yo usé dropbox para esto).

5. En tu propio ordenador, instala la compilación 858/868 (esto asegura que la configuración del registro sea la adecuada).

6. Descomprime toda la instalación de MT5 que recibiste, en un directorio temporal de tu ordenador y renombra el directorio de instalación de la instalación de MT5 recibida (en tu directorio temporal), con el nombre del directorio de instalación que utilizaste en la instalación 858/868 anterior.

7. 7. Elimine la estructura del directorio de instalación de MT5 build 858/868 y sustitúyala por la que tiene actualmente en su directorio temporal.

8. Lo más probable es que los archivos del directorio de MT5 reemplazado estén marcados como de sólo lectura. Márquelos a Lectura/Escritura.

8. Inicie MT5. Ahora debería tener una versión de 842 que funcione. Por supuesto, ahora necesitará configurar el nombre del servidor de su broker (si su instalación recibida de 842 fue configurada para usar otro broker que no sea el suyo), el nombre de usuario y la contraseña en la pestaña "Herramientas" -> "Opciones" -> "Servidor".

Una vez más, quiero recalcar que este es un último recurso que no está respaldado por mí y que, con toda seguridad, no será respaldado ni por MQ ni por tu broker. Sin embargo, los tiempos desesperados a veces requieren medidas desesperadas. Si necesitas que te envíen una instalación de la versión 842, por favor, házmelo saber.

 
angevoyageur:
Sí, ya instalado de un corredor (ver su PM).

Hola,

Intenté varios brokers para una build 842 pero los que encontré ya habían actualizado. Al final, el hack de arriba me puso en marcha de nuevo - desde entonces (dedos cruzados) mi instalación MT5 no se ha estrellado más.

Una cosa que noté inmediatamente fue que la versión 842 parecía funcionar mucho más eficientemente que las dos versiones más nuevas (es decir, menos uso del procesador), así que sospecho que una variación del problema que estaba experimentando con la función Bars() puede estar ocurriendo con otra función que casualmente uso dentro de mis Expertos. Creo que es hora de sacar el Profiler y empezar a hacer mis propias pruebas. Y si descubro cuál es el problema, MetaQuotes puede pagarme los 300 euros que perdí (debido a esta construcción problemática) por ese conocimiento. :)

De todos modos, gracias de nuevo por toda su ayuda - ¡muy apreciada!