Problème de globaux de terminal - page 3

 

Salut, Deep Thought

J'ai essayé et à chaque fois que j'ai tenté de le faire, MT4 s'est bloqué. Je n'étais pas assis sur un point d'arrêt lorsque j'ai essayé de charger le modèle, cependant. Je vais essayer de mettre un point d'arrêt au début de OnStart() et voir ce qui se passe. L'IDE devrait être arrêté quel que soit le type d'application lorsque vous êtes assis sur un point d'arrêt. Je viens d'essayer - ça n'a pas marché. Lorsque le débogueur atteint un point d'arrêt, le terminal est gelé. Toute tentative de faire quoi que ce soit le bloque. Je remarque que vous utilisez des graphiques hors ligne. Ce n'est pas mon cas. C'est peut-être la différence, si vous utilisez MT4. Merci pour le conseil - ça valait le coup d'essayer. Maintenant, j'ai un plus gros problème. Mon débogueur a cessé de fonctionner. J'ai dû faire quelque chose, mais je ne sais pas quoi. Ah - la vie et le temps d'un programmeur :-)

 

Aucun problème.

Mais non, les graphiques hors ligne n'ont aucun effet sur la sauvegarde des modèles (du moins avec les dernières constructions, car il y avait un bug il y a quelques semaines aussi).

Oui, le terminal se fige pendant le débogage. Le débogueur s'accroche au thread principal de l'IDE, où tous les indicateurs sont généralement exécutés. Il se débloque pendant un moment après avoir quitté votre méthode d'événement (OnStart, OnInit), et reste en vie jusqu'à ce que vous l'arrêtiez à nouveau à un point d'arrêt.

 
ProfessorMetal:

Salut, Deep Thought

J'ai essayé et chaque fois que j'ai tenté de le faire, MT4 s'est bloqué. Je n'étais pas assis sur un point d'arrêt lorsque j'ai essayé de charger le modèle, cependant. Je vais essayer de mettre un point d'arrêt au début de OnStart() et voir ce qui se passe. L'IDE devrait être arrêté quel que soit le type d'application lorsque vous êtes assis sur un point d'arrêt. Je viens d'essayer - ça n'a pas marché. Lorsque le débogueur atteint un point d'arrêt, le terminal est gelé. Toute tentative de faire quoi que ce soit le bloque. Je remarque que vous utilisez des graphiques hors ligne. Ce n'est pas mon cas. C'est peut-être la différence, si vous utilisez MT4. Merci pour le conseil - ça valait le coup d'essayer. Maintenant, j'ai un plus gros problème. Mon débogueur a cessé de fonctionner. J'ai dû faire quelque chose, mais je ne sais pas quoi. Ah - la vie et le temps d'un programmeur :-)

Désolé, mais je n'ai aucun problème avec le débogueur. Il utilise le debug.tpl que j'ai sauvegardé et ne se bloque pas.

Donc je peux vous suggérer 2 choses, soit poster ici comment reproduire votre problème, afin que nous puissions essayer de vous aider. Soit écrire au ServiceDesk de Metaquotes.

 

Merci encore, DeepThought. Je ne pensais pas vraiment que les graphiques avaient quelque chose à voir avec cela, mais j'ai pensé que cela valait la peine de le mentionner, juste au cas où. Si vous avez regardé mon profil, vous aurez vu que je suis un développeur très expérimenté. J'ai appris à mes dépens que ce que vous pensez ne pas être un problème s'avère souvent en être un. Il vaut toujours la peine de poser une question, même si vous pensez qu'elle est sans intérêt. Cependant, je pense que je ne comprends pas bien votre message précédent. Si le terminal est gelé lorsque le débogueur atteint un point d'arrêt, il n'y a aucune chance que vous puissiez charger un modèle pour le graphique sur lequel vous vous trouvez. De toute évidence, j'ai mal compris ce que vous vouliez me dire.

angevoyageur,

Je ne peux rien poster de plus que ce que j'ai déjà fait. Il n'y a pas d'étapes A, B, C qui causent ça. Il agit comme s'il essayait de trouver un modèle de débogage et qu'il n'y parvenait pas, et donc n'ouvrait pas de graphique. Le journal semble le confirmer. Si je supprime debug.tpl, le débogueur ouvre un graphique. Je dois toujours configurer le graphique moi-même mais c'est mieux que de ne pas avoir de débogage du tout. Cela commence à ressembler à un problème pour le service d'assistance. Je ne sais pas pourquoi je vois cela et que vous et DeepThought ne le voyez pas. Je suis même allé jusqu'à réinstaller MT4 et la situation persiste. Il se peut également que quelque chose ne soit pas correct dans mon code, ce qui provoque un plantage lorsqu'il tente de charger le modèle. Je vais étudier cette possibilité avant de m'adresser au Service Desk. Pour l'instant, j'ai besoin de m'écraser et de me reposer. Je suis trop fatigué pour me concentrer. Merci encore pour votre aide.

 
Oh, je vois maintenant le point qui vous manquait. Le mot est que le template debug.tpl se charge automatiquement si le graphique est ouvert depuis le débogueur - il en est de même pour default.tpl avec n'importe quel graphique ordinaire, tester.tpl avec un testeur de stratégie, offline.tpl avec un graphique hors ligne, et en plus du testeur de stratégie, <ea_name>.tpl se charge de préférence.
 

Pour être honnête, je n'ai jamais utilisé de débogueur. J'utilise juste les fonctions d'impression. De cette façon, je peux déboguer plus rapidement. Bien sûr, j'utilise un compte démo, mais il s'agit plutôt d'un test en avant que d'un test en arrière.

Beaucoup de gens aiment le back testing mais moi j'aime le forward testing. Quel est l'intérêt de faire de l'optimisation sur des données historiques ?

Je fais l'optimisation sur des données réelles. Grâce à cela, mon EA est devenu 100% stable et peut gérer la plupart des erreurs sans que je fasse quoi que ce soit.

Bien sûr, cela m'a pris plusieurs mois pour le faire, mais cela en valait la peine.

 
ProfessorMetal:

Merci encore, DeepThought. Je ne pensais pas vraiment que les graphiques avaient quelque chose à voir avec cela, mais j'ai pensé que cela valait la peine de le mentionner, juste au cas où. Si vous avez regardé mon profil, vous aurez vu que je suis un développeur très expérimenté. J'ai appris à mes dépens que ce que vous pensez ne pas être un problème s'avère souvent en être un. Il vaut toujours la peine de poser une question, même si vous pensez qu'elle est sans intérêt. Cependant, je pense que je ne comprends pas bien votre message précédent. Si le terminal est gelé lorsque le débogueur atteint un point d'arrêt, il n'y a aucune chance que vous puissiez charger un modèle pour le graphique sur lequel vous vous trouvez. De toute évidence, j'ai mal compris ce que vous vouliez me dire.

angevoyageur,

Je ne peux rien poster de plus que ce que j'ai déjà fait. Il n'y a pas d'étapes A, B, C qui causent ça. Il agit comme s'il essayait de trouver un modèle de débogage et qu'il n'y parvenait pas, et donc n'ouvrait pas de graphique. Le journal semble le confirmer. Si je supprime debug.tpl, le débogueur ouvre un graphique. Je dois toujours configurer le graphique moi-même mais c'est mieux que de ne pas avoir de débogage du tout. Cela commence à ressembler à un problème pour le service d'assistance. Je ne sais pas pourquoi je vois cela et que vous et DeepThought ne le voyez pas. Je suis même allé jusqu'à réinstaller MT4 et la situation persiste. Il se peut également que quelque chose d'anormal dans mon code provoque un plantage lorsqu'il tente de charger le modèle. Je vais étudier cette possibilité avant de m'adresser au Service Desk. Pour l'instant, j'ai besoin de m'écraser et de me reposer. Je suis trop fatigué pour me concentrer. Merci encore pour votre aide.

Pouvez-vous essayer avec un modèle très simple ? Peut-être le problème est-il lié au modèle lui-même ? Si cela fonctionne avec un modèle simple (par exemple l'affichage des chandeliers), alors allez-y pas à pas en ajoutant une chose à la fois dans votre modèle.

Si cela ne fonctionne pas dès le début, il s'agit définitivement d'un problème pour le ServiceDesk.

 

DeepThought,

"Il semblerait que le modèle debug.tpl se charge automatiquement si le graphique est ouvert à partir du débogueur. L'installation de MT4 n'a pas le répertoire profiles/templates que la documentation indique. C'est pourquoi je l'ai ajouté moi-même et j'y ai enregistré mon modèle de débogage. J'ai essayé de lancer le débogueur à la fois avec MT4 en cours d'exécution et avec MT4 arrêté, en laissant le débogueur tout lancer, avec les mêmes résultats. J'ai observé quelques phénomènes étranges avec les deux approches. Le journal signale parfois une erreur d'initialisation 2, indiquant que mon code est en train de se recompiler lorsque je lance le débogueur. Cela n'a aucun sens. J'ai essayé de lancer le débogueur à la fois avec MT4 en cours d'exécution et en laissant simplement le débogueur lui-même tout lancer, avec les mêmes résultats. Cela ne se produit que si j'ai le dossier profiles/template en place avec debug.tpl dedans. Si je me débarrasse de ce fichier, le débogueur fait apparaître un graphique contenant l'indice que j'essaie de tester et rien d'autre. Si j'ai le débogueur en marche et que j'essaie de charger un modèle, le débogueur se ferme instantanément lorsque je sélectionne le modèle et je regarde le graphique comme si j'avais démarré MT4 avec un profil contenant le graphique avec ma configuration.

deysmacro, je suis d'accord.

Le back testing est inutile. Comme vous, je ne fais que des tests en avant. Cela prend beaucoup de temps mais vous obtenez une image beaucoup plus précise de ce que votre application va faire. Si je dois créer un outil pour mon usage personnel ou pour le vendre dans le commerce, je vais juger de son efficacité en l'appliquant à ce que le marché fait MAINTENANT, pas à ce qu'il faisait il y a cinq ans. Pour moi, c'est la seule chose qui ait un sens.

Bonne suggestion, angevoyageur. J'aurais dû y penser moi-même. Je ne suis pas encore tout à fait certain que l'indépendant sur lequel je travaille est irréprochable à cet égard. Je calcule les points d'entrée et de sortie sur la base des MA et j'obtiens parfois des divisions nulles. Les logs suggèrent que ce n'est pas le problème, mais qui sait ? L'une des raisons pour lesquelles je ne pense pas que ce soit le problème est que, lorsque la structure des répertoires et des fichiers est configurée conformément à la documentation, le journal indique que les indies et l'EA sont chargés avec succès, puis immédiatement désinitialisés sans donner de raison. J'ai des alertes dans les fonctions OnInit() et OnDeinit() et aucune d'entre elles n'est exécutée, ce qui suggère que ce qui explose le fait avant même que quelque chose ait une chance de s'exécuter. Je vais continuer à travailler sur ce sujet et poster ce que je trouve. Il se peut que je doive confier cette affaire au ServiceDesk. Mais comme je l'ai dit plus tôt, j'ai une solution de rechange, aussi douloureuse soit-elle. :-)

 
ProfessorMetal:

DeepThought,

L'installation de MT4 ne possède pas le répertoire profiles/templates indiqué dans la documentation. C'est pourquoi je l'ai ajouté moi-même et j'y ai enregistré mon modèle de débogage.


Aucun des deux miens ne l'a dans le répertoire d'installation. C'est pas grave.
 
DeepThought:

Aucun des deux miens ne l'a dans le répertoire d'installation. Pas grave.

:-)