64 bit MT5 build 858 se bloque...

 

Bonjour,

Mon courtier a publié hier sa version 64 bits de MT5, build 858, et après la mise à niveau de la build 842 (qui fonctionnait bien) vers cette nouvelle version, MT5 se bloque sporadiquement (c'est-à-dire qu'il se fige et ne répond plus). Le seul moyen de fermer MT5 après que cela se soit produit est de le tuer via le Gestionnaire des tâches.

Ce problème est apparu à la fois sur ma machine de démonstration MT5 (Windows 7) et sur ma machine VPS MT5 live (Windows Server 2008r2). Ces deux machines fonctionnaient auparavant sans problème avec la version 842 de MT5.

Rien n'a changé en ce qui concerne la configuration de MT5 - les mêmes experts etc. qui ont été utilisés sur la version 842 sont maintenant exécutés sur les deux installations de la version 858.

Il y a plusieurs semaines, j'ai également démarré une machine 32 bits pour tester la build 858 (pour une raison quelconque, ma société a publié la version 32 bits de la build 858 il y a quelques semaines et la version 64 bits seulement hier), ce qui ne m'a posé aucun problème. J'ai depuis transféré mon trading en direct sur la plateforme 32 bits et je n'ai pas encore eu de problèmes. La version de démonstration 64 bits que j'utilisais a encore planté cet après-midi.

Oh, et il n'y a rien dans les journaux pour indiquer que MT5 a eu des problèmes.

Quelqu'un d'autre a-t-il rencontré ces problèmes ?

 
Je suppose que vous avez signalé ce problème au Service Desk ?
 
angevoyageur:
Je suppose que vous avez signalé ce problème au Service Desk ?
Ah, non - j'étais pressé et cela m'a complètement échappé ! Merci pour le rappel - je vais le faire maintenant...
 

Statut actuel de ce problème - les problèmes de blocage se produisent à la fois avec la version 858 et la nouvelle version actuellement disponible sur le site Web de MetaQuotes - version 868. Les problèmes de blocage se produisent sur les plateformes 32 et 64 bits. J'ai actuellement un rapport de problème qui fonctionne à la fois avec MetaQuotes et mon courtier.

Y a-t-il quelqu'un d'autre qui a des problèmes de blocage avec des versions plus récentes que la version 842 ? J'utilise un certain nombre d'experts et je soupçonne que MT5 doit être raisonnablement "chargé" pour que ces problèmes de blocage se produisent.

J'ai également réinstallé MT5 sur plusieurs machines et instances VPS différentes (essentiellement pour exclure tout problème de machine). Et comme il s'agissait d'installations récentes, je ne vois pas si j'ai corrompu mon installation de MT5 d'une manière ou d'une autre. J'ai également recompilé mes experts avec les nouveaux compilateurs et cela n'a fait aucune différence.

Pour mémoire, j'utilise exactement les mêmes experts sur les mêmes machines que l'année dernière (avec différentes versions de MT5) et je n'ai JAMAIS eu de cas où MT5 s'est bloqué (j'étais en fait très impressionné par la stabilité de MT5 jusqu'à présent). Ce n'est que lorsque j'ai mis à niveau mes installations MT5 build 842 sans problème vers des installations build 858, que ces problèmes ont commencé à se produire.

 
cowil:

Statut actuel de ce problème - les problèmes de blocage se produisent à la fois avec la version 858 et la nouvelle version actuellement disponible sur le site Web de MetaQuotes - version 868. Les problèmes de blocage se produisent sur les plateformes 32 et 64 bits. J'ai actuellement un rapport de problème qui fonctionne à la fois avec MetaQuotes et mon courtier.

Y a-t-il quelqu'un d'autre qui a des problèmes de blocage avec des versions plus récentes que la version 842 ? J'utilise un certain nombre d'experts et je soupçonne que MT5 doit être raisonnablement "chargé" pour que ces problèmes de blocage se produisent.

J'ai également réinstallé MT5 sur plusieurs machines et instances VPS différentes (essentiellement pour exclure tout problème de machine). Et comme il s'agissait d'installations récentes, je ne vois pas si j'ai corrompu mon installation de MT5 d'une manière ou d'une autre. J'ai également recompilé mes experts avec les nouveaux compilateurs et cela n'a fait aucune différence.

Pour mémoire, j'utilise exactement les mêmes experts sur les mêmes machines que l'année dernière (avec différentes versions de MT5) et je n'ai JAMAIS eu de cas où MT5 s'est bloqué (j'étais en fait très impressionné par la stabilité de MT5 jusqu'à présent). Ce n'est que lorsque j'ai mis à niveau mes installations MT5 build 842 sans problème vers des installations build 858, que ces problèmes ont commencé à se produire.

J'ai trouvé un bug dans la fonction Bars() avec ces build 858/868. Ce bug ralentit considérablement l'exécution du code. Peut-être avez-vous aussi ce problème.
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:
J'ai trouvé un bug dans la fonction Bars() avec ces build 858/868. Ce bug ralentit considérablement l'exécution du code. Peut-être avez-vous aussi ce problème.

Bonjour - merci pour votre contribution.

Je n'utilise pas réellement la fonction Bars() dans mon code mais je trouve un peu inquiétant qu'un bug aussi grave se soit glissé dans une fonction aussi couramment utilisée - d'autant plus qu'il n'existait pas auparavant... Peut-être qu'une fonction connexe que j'utilise appelle le même code sous-jacent que la fonction Bars() ?

Comment avez-vous réussi à le détecter et à l'isoler ? Le temps que mettait Bars() pour accomplir sa fonction était-il extraordinairement long ? Si oui, de quel type de temps parlez-vous - des centaines de millisecondes ?

J'essaie de faire en sorte que MetaQuotes ou mon courtier me fournisse une version 842 ou antérieure, mais sans succès pour l'instant...

 
cowil:

Bonjour - merci pour votre contribution.

Je n'utilise pas réellement la fonction Bars() dans mon code mais je trouve un peu inquiétant qu'un bug aussi grave se soit glissé dans une fonction aussi couramment utilisée - d'autant plus qu'il n'existait pas auparavant... Peut-être qu'une fonction connexe que j'utilise appelle le même code sous-jacent que la fonction Bars() ?

Comment avez-vous réussi à le détecter et à l'isoler ? Le temps que mettait Bars() pour accomplir sa fonction était-il extraordinairement long ? Si oui, de quel type de temps parlez-vous - des centaines de millisecondes ?

J'essaie de faire en sorte que MetaQuotes ou mon courtier me fournisse une version 842 ou antérieure, mais sans succès jusqu'à présent...

Tout d'abord, j'ai observé qu'un EA ne met pas à jour les informations affichées sur le graphique à chaque tick. J'ai donc commencé à déboguer le code et j'ai constaté que le gestionnaire d'événement OnTick() n'est pas appelé à chaque tick, ce qui signifie que OnTick pour un tick précédent est toujours en cours d'exécution.

J'utilise alors le profiler pour analyser ce qui se passe dans OnTick() et je trouve que c'est la fonction Bars() qui prend beaucoup de secondes à s'exécuter. Après j'ai vérifié la fonction Bars() avec un code très simple pour confirmer que c'est un bug dans MT5/mql5. Le même code fonctionne sans problème avec le build 842.

Profiler est un outil génial, si facile à utiliser et si puissant.

 
angevoyageur:

Tout d'abord, j'ai observé qu'un EA ne met pas à jour les informations affichées sur le graphique à chaque tick. J'ai donc commencé à déboguer le code et j'ai découvert que le gestionnaire d'événement OnTick() n'est pas appelé à chaque tick, ce qui signifie que le OnTick d'un tick précédent est toujours en cours d'exécution.

Ensuite, j'ai utilisé le profiler pour analyser ce qui se passe dans OnTick() et j'ai trouvé que c'est la fonction Bars() qui prend beaucoup de secondes pour s'exécuter. Après j'ai vérifié la fonction Bars() avec un code très simple pour confirmer que c'est un bug dans MT5/mql5. Le même code fonctionne sans problème avec le build 842.

Profiler est un outil génial, si facile à utiliser et si puissant.

Tout d'abord, merci beaucoup pour l'information - très apprécié ! :)

Bon sang, des SECONDES vous dites... ? C'est vraiment un problème sérieux. Je pense que je vais faire la même chose et voir ce que fait mon Expert. Je fais tourner le même Expert sur 8 graphiques différents et je n'ose pas imaginer ce qui pourrait se passer si ce genre de retard se produit dans chaque Expert.

Et aucune joie de MetaQuotes re : essayer d'obtenir la construction 842 ou plus tôt. Citation"Non, nous n'avons pas de lien vers la build 842. Nous ne stockons les anciennes versions nulle part". Incroyable... :( Quand vous dites que vous avez une build 842, je présume qu'il s'agit d'une version déjà installée et non d'une version installable ?

 
cowil:

Tout d'abord, merci beaucoup pour l'information - très apprécié ! :)

Bon sang, des SECONDES vous dites... ? C'est vraiment un problème sérieux. Je pense que je vais faire la même chose et voir ce que fait mon expert. Je fais tourner le même Expert sur 8 graphiques différents et je n'ose pas imaginer ce qui pourrait se passer si ce genre de retard se produit dans chaque Expert.

Et aucune joie de MetaQuotes re : essayer d'obtenir la construction 842 ou plus tôt. Citation"Non, nous n'avons pas de lien vers la build 842. Nous ne stockons les anciennes versions nulle part". Incroyable... :( Quand vous dites que vous avez une build 842, je présume qu'il s'agit d'une version déjà installée et non d'une version installable ?

Oui, déjà installée depuis un broker (voir votre PM).
 

Eh bien, mon propre courtier ne pouvait pas non plus me fournir une version antérieure. Aussi incroyable que cela puisse paraître, ni mon (grand) courtier, ni la grande société de logiciels qui développe réellement le logiciel (c'est-à-dire MetaQuotes) n'ont pu me fournir une seule version antérieure de MT5. Incroyable !

DONC, POUR TOUS CEUX QUI LISENT CET ARTICLE, LA MISE À NIVEAU EST ESSENTIELLEMENT UNE VOIE À SENS UNIQUE ! AUSSI INCROYABLE QUE CELA PUISSE PARAÎTRE, IL N'Y A PAS DE VERSIONS PRÉCÉDENTES DISPONIBLES POUR REVENIR EN ARRIÈRE EN CAS DE PROBLÈME AVEC LA VERSION MT5 !!!!. Alors, assurez-vous que vous testez tout avant de vous engager dans une nouvelle version, surtout dans un environnement vivant (c'est-à-dire en utilisant de l'argent réel) ! !!

Si vous avez été négligent comme moi cette fois-ci (c'est-à-dire que vous n'avez PAS testé tout à fond avant de vous engager dans une nouvelle version), que vous rencontrez les mêmes problèmes que moi et que vous avez épuisé toutes les autres options, voici le hack que j'ai utilisé et qui a fonctionné pour moi. Cela ne veut pas dire que ça marchera pour vous et je conseille à tout le monde de ne le faire que si vous êtes (a) complètement foutu (comme je l'étais) et (b) connaissez un peu les ordinateurs :

1. Trouvez quelqu'un qui a encore une installation fonctionnelle de la version 842.

2. Demandez-lui de faire une copie de toute la structure des répertoires de l'installation MT5 et de la placer dans un répertoire temporaire sur son ordinateur.

3. Demandez-lui ensuite de parcourir les répertoires ../bases/xxx/history/<SymbolPair> (de l'installation MT5 copiée dans son répertoire temporaire) et de supprimer le contenu complet de chaque répertoire (cette étape supprime essentiellement les données historiques de ce courtier particulier).

4. Une fois que les données historiques ont été supprimées, demandez-lui de compresser toute la structure du répertoire d'installation dans son répertoire temporaire et de vous l'envoyer (j'ai utilisé Dropbox pour cela).

5. Sur votre propre ordinateur, installez le build 858/868 (cela garantit que les paramètres de registre appropriés sont définis).

6. Dézippez toute l'installation MT5 que vous avez reçue, dans un répertoire temporaire sur votre ordinateur et renommez le répertoire d'installation de l'installation MT5 reçue (dans votre répertoire temporaire), au nom du répertoire d'installation que vous avez utilisé dans l'installation 858/868 ci-dessus.

7. Supprimez la structure du répertoire d'installation de MT5 build 858/868 et remplacez-la par celle que vous avez actuellement dans votre répertoire temporaire.

8. Il est probable que les fichiers du répertoire MT5 remplacé soient tous marqués en lecture seule. Marquez-les en lecture/écriture.

8. Lancez MT5. Vous devriez maintenant avoir une version fonctionnelle de 842. Bien entendu, vous devez maintenant configurer le nom du serveur de votre courtier (si l'installation de 842 que vous avez reçue était configurée pour utiliser un autre courtier que le vôtre), le login et le mot de passe dans l'onglet "Outils" -> "Options" -> "Serveur".

Encore une fois, je tiens à souligner qu'il s'agit d'une solution de dernier recours qui n'est pas approuvée par moi-même et qui ne sera certainement pas approuvée par MQ ou votre courtier. Cependant, les temps désespérés appellent parfois des mesures désespérées. Si vous avez besoin d'une installation de la version 842, n'hésitez pas à me le faire savoir.

 
angevoyageur:
Oui, déjà installé à partir d'un broker (voir votre MP).

Bonjour,

J'ai essayé plusieurs courtiers pour une version 842 mais ceux que j'ai trouvés avaient déjà mis à jour. En fin de compte, le hack ci-dessus m'a permis de fonctionner à nouveau - depuis lors (je croise les doigts) mon installation MT5 n'a plus planté.

Une chose que j'ai immédiatement remarquée, c'est que la build 842 semblait fonctionner beaucoup plus efficacement que les deux builds plus récentes (c'est-à-dire qu'elle utilisait moins le processeur). Je soupçonne donc qu'une variante du problème que vous avez rencontré avec la fonction Bars() peut se produire avec une autre fonction que j'utilise dans mes Experts. Il est temps de sortir le Profiler et de commencer à faire mes propres tests, je pense. Et si je découvre le problème, MetaQuotes peut bien me payer les 300 euros que j'ai perdus (à cause de ce build problématique) pour cette connaissance ! :)

Quoi qu'il en soit, merci encore pour toute votre aide - très apprécié !