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
Cela semble être une absurdité. Les minuteurs des indicateurs n'ont rien à voir les uns avec les autres.
Il y a 500 ans, l'affirmation selon laquelle la Terre est sphérique semblait également être une absurdité pour la plupart des gens.
OK, je vais refaire cet exemple pour une minuterie maintenant.
Ok, je vais maintenant refaire cet exemple pour le timer.
Lorsqu'il est sans ambiguïté.
Essayez cet exemple primitif. Vous comprendrez le caractère "unique" en changeant de TF.
Dans cet exemple, un objet avec les coordonnées de l'heure et du prix actuels est créé dans OnInit. Dans OnCalculate, cet objet se déplace en même temps que le prix.
Dans OnDeinit, il est simplement (logiquement) supprimé.
En changeant de TF, il s'avère que l'objet apparaît puis disparaît.
Pourquoi cela se produit-il ?
Parce que parfois OnDeinit de l'ancien TF supprime ce qui a déjà été créé dans le OnInit du nouveau TF. Ce n'est pas un bug ! Que doit penser le programmeur qui a créé cet exemple et qui n'a pas lu cette branche ?
Voulez-vous montrer que le EvenKillTimer dans l'ancien état deinit affectera le EventSetTimer dans le nouveau init ?
J'avais tort. Mes excuses. Mon erreur.
En effet, le timer de la nouvelle TF s'est avéré être survivable, l'EventKillTimer de l'ancienne TF étant impossible à tuer. :)
Dans votre exemple, l'objet graphique est présent dans toutes les TF, il suffit de zoomer pour le voir.
Non, ça ne l'est pas. Il est parfois supprimé par le Deunit de l'ancien TF.
En effet, le timer de la nouvelle TF s'est avéré être résilient, impossible à tuer par le EventKillTimer de l'ancienne TF. :)
Non, ça ne l'est pas. Il est parfois supprimé par Deinit de l'ancien TF.
Pour forcer la mise à jour des objets graphiques, utilisez la commande ChartRedraw() pour redessiner le graphique.
Ajoutez ceci à Init et Deinit :
ChartRedraw();
Ajoutez ceci à Init et Deinit :ChartRedraw();
Je l'ai essayé. Cela ne change pas la situation, et ne peut pas changer, si l'objet a déjà été supprimé,ChartRedraw() ne le ressuscitera pas.
Je n'exclus pas, Sergey, que cette "particularité" d'ambiguïté de la séquence d'exécution de OnInit du nouveau TF et OnDeinit de l'ancien TF puisse dépendre du matériel. Puisque différents threads, différents processeurs avec différentes architectures de coprocesseurs - tout cela est compliqué et je ne suis pas doué pour cela. Mais le fait que cette "fonctionnalité" apparaisse sur mon ordinateur et sur les ordinateurs des autres, à en juger par ce fil de discussion, est certain.
Donc, vous voulez dire que vous avez essayé cet exemple sur votre ordinateur et que lorsque vous changez de TF vous voyez toujours l'objet ?
A propos, j'ai remarqué que si l'on augmente les chandeliers à la taille maximale, c'est-à-dire que l'écran a un nombre minimal de barres, il est très difficile de faire disparaître l'objet. J'ai dû changer le TF 30 fois pour supprimer l'objet (c'est-à-dire que DeUnit a été déclenché plus tard que Unit). Apparemment, cette "particularité" est affectée par la performance des fils. Il s'agit d'une hypothèse ou d'une réflexion à voix haute.
Très heureux que mon délire se soit avéré être un délire.
:) Ce n'était pas un délire, juste une hypothèse.
Merci pour l'hypothèse. Grâce à lui et àfxsaber, j'ai eu une nouvelle prise de conscience de ce qu'est une copie d'indicateur. La minuterie appartient simplement à cette copie et meurt avec elle, même lorsque le TF change. Mais les objets vivent par eux-mêmes, même s'ils sont créés par une copie de l'indicateur, ils n'appartiennent qu'à la fenêtre. Je comprends maintenant qu'il est inutile d'écrireEventKillTimer dans le Deunit, de toute façon, le timer mourra si le Deunit a déjà été appelé.
C'est-à-dire que tout le problème consiste à ajouter UNE ligne au début de tout indicateur.
Code de la bibliothèque