Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Ce problème est résolu comme deux doigts... Tu sais quoi...
Dans OnDeinit, il est nécessaire de conditionner la raison de la désinitialisation avant de supprimer l'objet... S'il ne s'agit PAS d'un changement de période, l'objet est supprimé. ET C'EST TOUT...
Oui, je ne peux pas supprimer un objet ou une ressource lors d'un changement de TF, je peux sauvegarder même certains petits tableaux par le biais d'un objet-ressource, et écrire dans la ressource des informations sur le changement de TF, mais le point est le suivantSi mon unité commence à être exécutée après que l'unité ait été exécutée dans une nouvelle période, comment dois-je informer l'unité que la période a changé et que les anciennes données doivent être lues ? N'est-ce pas mal ?
Quel genre de logique est gâchée ?
Lorsque vous changez d'horizon temporel, une nouvelle copie de l'indicateur est créée qui ne sait rien de la copie précédente. Pendant une certaine période de temps (très courte), les deux copies de l'indicateur existent en parallèle. Ensuite, la copie précédente est déchargée.
Lire la documentation https://www.mql5.com/ru/docs/runtime/running
J'ai lu la description du lien, mais je n'ai pas trouvé de telles informations, comme celles que vous avez données. Et si c'est vraiment le cas, c'est un grand problème pour les développeurs d'indicateurs. Il est très étrange et très mauvais qu'une telle logique soit adoptée pour recharger les indicateurs lorsque vous changez de période. Pourquoi avons-nous besoin de l'existence de deux copies du même indicateur en mémoire ? Qui en profite ? Que donne-t-il ? Il serait plus logique de terminer l'exécution d'une copie de l'indicateur, de la décharger et seulement ensuite de charger la copie suivante.
Et c'est tout ?
J'ai expérimenté et utilisé ce code de raison (REASON_CHARTCHANGE) autant que possible. Et quelle est l'utilité si toutes les variables sont remises à leur état d'origine et que OnDeinit peut être exécuté après OnInit d'une nouvelle TF ?
Slava a répondu à cette question, nouvel indicateur, nouveaux calculs. Et c'est juste.
Et apparemment, ce problème ne sera jamais résolu.
Et j'ai confiance dans l'équipe de développement, ce sont des gars formidables qui ont fait un travail incroyable et qui en feront encore plus. Je n'ai pas encore eu le temps de le faire. Il est vrai que vous devez toujours obtenir un retour d'information de leur part avec des cloches et des sifflets. :))
Ma tâche est de les convaincre que cela doit être fait. Bien que je n'exclue pas qu'ils me convainquent qu'il vaut mieux ne pas le faire, peut-être que je ne comprends pas quelque chose.
Et j'ai confiance dans l'équipe de développement, ce sont des gars formidables qui ont fait un travail incroyable et qui en feront encore plus. Je n'ai pas encore eu le temps de le faire. Mais je dois toujours obtenir un retour de leur part avec les tambourins aussi. :))
Ma tâche est de les convaincre que cela doit être fait. Bien que je n'exclue pas qu'ils me convainquent qu'il vaut mieux ne pas le faire, peut-être que je ne comprends pas quelque chose.
Slawa, que signifie la phrase de la documentation"Lesbibliothèquesne gèrent aucun événement" ?
Très vague
- Lorsque Inite définit la couleur du graphique principal comme transparente.
je dessine mon propre graphique (selon mes paramètres)
Je veux qu'il rétablisse la couleur du graphique principal après la suppression de mon indicateur.
- Dans DeInit je restaure la couleur du graphique principal
Quand je change le TF, je veux dire d'abord DeInit (rétablir la couleur), et ensuite Init (redevenir transparent).
L'exécution des commandes n'est pas séquentielle ; périodiquement, lors du changement de la TF
périodiquement le graphique principal (avec la couleur restaurée) est superposé à mon indicateur.
Voici par exemple un "découpage logique".
Peut-être pour essayer d'attribuer aux objets graphiques la période TF comme composant du préfixe de leur nom,
et ensuite appliquer quelque chose comme ça :
- Lorsque Inite définit la couleur du graphique principal comme transparente.
je dessine mon propre graphique (selon mes paramètres)
Je veux qu'il rétablisse la couleur du graphique principal après la suppression de mon indicateur.
- Dans DeInit je restaure la couleur du graphique principal
Quand je change le TF, je veux dire d'abord DeInit (rétablir la couleur), et ensuite Init (redevenir transparent).
L'exécution des commandes n'est pas séquentielle ; périodiquement, lors du changement de la TF
périodiquement le graphique principal (avec la couleur restaurée) est superposé à mon indicateur.
Voici, par exemple, un "découpage logique".
Et c'est tout ?
J'ai expérimenté et utilisé ce code de raison (REASON_CHARTCHANGE) autant que possible. Et quelle est l'utilité si toutes les variables sont remises à l'état original, et que OnDeinit peut être exécuté après OnInit de la nouvelle TF.
Essayez de mettre à jour le terminal à la version 1065. Dans les versions précédentes il y avait une erreur de réinitialisation juste pendant le changement d'horaire. Cela peut aider :)
https://www.mql5.com/ru/forum/187690
Essayez de mettre à jour le terminal à la version 1065. Les versions précédentes avaient une erreur de réinitialisation juste en changeant le délai. Cela pourrait aider :)
https://www.mql5.com/ru/forum/187690