Erreurs, bugs, questions - page 1624

 
Vasiliy Sokolov:

Je suis en train d'écrire un conseiller expert faisant appel à l'indicateur ex5. Le conseiller expert fonctionne correctement dans le testeur de stratégie, mais si j'exécute l'optimisation, les agents se plantent à la fin de l'exécution :

Si j'appuie sur le bouton de fermeture, après un certain temps, l'agent redémarre et effectue une nouvelle exécution, puis se bloque à nouveau.

L'analyse des journaux n'a rien donné :

La signature de l'erreur est la suivante :

J'ai essayé de commenter la création d'une poignée d'indicateur. L'erreur a disparu et le conseiller expert a effectué toutes les exécutions normalement, mais en vain.

C'est pourquoi j'écris ici avant d'envoyer des messages au Service Desk : Peut-être y a-t-il quelque chose de spécial lorsque l'on travaille avec des indicateurs dans le testeur de stratégie ? Peut-être est-il nécessaire d'appeler IndicatorRelease quelque part ? Si quelqu'un sait comment le réparer, écrivez-nous.

Mieux vaut s'occuper de tous les détails, nous trouverons une solution.
 

Quand MT4 aura-t-il la possibilité de copier une ligne du journal et de ne pas obtenir un codage différent lorsqu'elle est collée :

2016.08.03 00:03:36.699 2013.04.26 10:15 Kamikadze_MA_V_04_42_Fibo_05_Regressor_T_K GBPUSD,M15 : Magic=111Îrder 322 SELLSTOP non ìîäèèred. Prix d'achat (1.5448) inférieur au prix d'ouverture (1.5498)

 
-Aleks-:

Quand MT4 aura-t-il la possibilité de copier une ligne du journal et de ne pas obtenir un codage différent lorsqu'elle est collée :

2016.08.03 00:03:36.699 2013.04.26 10:15 Kamikadze_MA_V_04_42_Fibo_05_Regressor_T_K GBPUSD,M15 : Magic=111Îrder 322 SELLSTOP non ìîäèèred. Prix d'achat (1.5448) inférieur au prix d'ouverture (1.5498)

Lorsque vous copiez du journal de bord, assurez-vous que la mise en page en win est russe.
 
Artyom Trishkin:
Lorsque vous copiez du journal de bord, assurez-vous que la mise en page en win est russe.

Merci ! J'ai toujours une mise en page anglaise par défaut.

Mais, pourquoi dois-je utiliser toutes sortes d'astuces...

 
-Aleks-:

Merci ! J'ai toujours une mise en page anglaise par défaut.

Mais, pourquoi dois-je utiliser toutes sortes d'astuces...

Utilisez MT5, où tout est en unicode et il n'y a pas de tels problèmes.
 
Renat Fatkhullin:
Utilisez MT5, où tout est en unicode et il n'y a pas de tels problèmes.

Je n'ai pas d'argent pour MT5 - je négocie des comptes en cents et le DC n'est pas pressé de les ouvrir pour cinq cents.

 
Lorsque je fais du débogage pas à pas dans mt5, lorsque je place un point d'arrêt, le robot s'arrête et c'est tout, le débogage pas à pas supplémentaire ne fonctionne pas. Si je fais un débogage sur l'historique, alors tout est normal. C'est moi, ou j'ai tout ? Il semble qu'il fonctionnait bien il n'y a pas si longtemps.
 

Je voudrais soulever le problème de la lenteur de la compilation de MQL5 une fois de plus. Il y a environ trois mois, j'ai essayé de soulever ce problème, mais il n'a pas été compris, apparemment mes arguments n'étaient pas assez convaincants. Par conséquent, je suis revenu à l'ancienne version (1159), qui a tout compilé presque instantanément (alors qu'avec les nouveaux compilateurs, mon projet a compilé en 20 secondes).

Et donc, il y a une semaine, j'ai essayé de passer à une nouvelle version. Je me suis dit "oubliez les 20 secondes, je vais faire avec pour avoir de nouvelles choses". Bien sûr, j'ai dû modifier un peu le code pour me conformer aux nouvelles conditions, ce qui a révélé plusieurs bugs du nouveau compilateur (décrits ici).Le résultat est que mon projet compile depuis 30 secondes déjà ! Je ne sais pas si cela a à voir avec la complication du projet ou avec une "complication" de plus du compilateur, mais cela ne colle plus.

Le projet contient environ 700 Kb de code source, c'est un Expert Advisor contenant quelques dizaines de mqh. Tout est OOP. Les gens m'ont écrit plus tôt que le ralentissement est probablement causé par de grandes fonctions. J'en avais quelques-uns. Je les ai fragmentés en plus petits morceaux et ils n'ont aucun effet.

Le plus étonnant, c'est que cette super longue compilation ne sert à rien. La vitesse du programme est la même qu'avec l'ancien compilateur, je l'ai mesurée spécifiquement. Cela ne demande qu'une seule phrase : "Pour quoi faire ?".

J'ai le fort sentiment qu'il y a un bug/mal fonctionnement dans le compilateur à cause duquel il court à vide. Comment expliquer autrement le fait qu'un script absolument vide avec seulement la fonction OpenStart() { } compile plus de 400 ms !Il est inimaginable qu'il faille autant de temps pour compiler/optimiser un script vide. Eh bien, en y ajoutant de petites fonctions et classes, vous pouvez voir à quel point le temps de compilation augmente rapidement.

Je tiens à dire tout de suite que mon matériel est bien sûr loin d'être puissant - Core i5U. Mais cela n'empêche pas mon projet de compiler en 1-2 secondes sur un vieux compilateur. Respectivement, le dummy y est compilé en un instant.

Je note aussi. Le compilateur est complètement dépourvu non seulement de la mise en cache des fragments compilés précédemment mais même d'une vérification triviale pour s'assurer que le code source était identique. C'est-à-dire que vous compilez votre projet puis cliquez à nouveau sur le bouton "Compiler" sans faire aucune modification et attendez à nouveau les mêmes 30 secondes. Comment est-ce...

J'aimerais entendre les commentaires des développeurs de MT et des utilisateurs du forum travaillant sur de grands projets (est-ce que je suis le seul à être concerné par ce problème ?), combien de temps cela prend pour compiler et sur quel matériel. Nous tenons à préciser que nous parlons de la compilation d'un exécutable.

 

400 kB code duprojet

dans mt4 il compile en 888 msec

le même projet dans mt5 compile 4103 ms

Bien que parfois certains projets avec 50Kb de code soient un peu lents, mais cela arrive de temps en temps et ne me dérange pas.

 
Vladislav Andruschenko:

mt4 compile en 888 msec.

le même projet compile 4103 ms dans mt5

Eh bien, il semble que les problèmes sont liés à la v5. La différence avec la 4.5 n'est pas mince. Bien que pour compléter le tableau, il serait bien de vérifier avec l'ancien compilateur (1159), si vous l'avez (ou je peux le télécharger). Mais peut-être que vous devrez faire quelques corrections dans votre code.
Raison: