Des problèmes ont été découverts lors des tests de rétroaction et nous n'arrivons pas à trouver la cause fondamentale ! - page 4

 
GumRai:

permettra d'effectuer des calculs différents lors de la première exécution sur des barres fermées par rapport à ce qu'il fait sur la barre actuelle.

Ce qu'il fera au premier tick d'une nouvelle barre est le suivant

Sur les ticks suivants de la même barre, il calculera

Ce qui est une sorte de composition

Cher GumRai,

La barre actuelle, Bar[0] est nécessaire pour le repeint. Le sujet concerne donc le fait que les barres historiques ont été observées avec un repeint, peut-être Bar[8],..Bar[3],.., ou Bar[1].

Vous pouvez voir qu'il n'y a qu'environ 10 lignes de codes pour le contenu principal de l'indicateur.

Cependant, il est toujours aussi difficile pour nous de trouver la cause profonde de la ré-impression des barres historiques.

C'est tellement étrange et je suis confus comment les barres historiques peuvent être repeintes avec ce code.

 

Comme je l'ai dit, l'indicateur recalcule bar[0] chaque tick en utilisant une valeur qui a été calculée dans le tick précédent de la même barre.

Pendant que le testeur fonctionne, l'indicateur calculera en pseudo temps réel même si l'indicateur n'est pas réellement sur le graphique.

Quand le testeur est terminé, l'indicateur est ajouté au graphique et je crois qu'il ne prend pas en compte tous les ticks car il n'est calculé qu'une fois par barre.

Essayez-le en mettant l'indicateur sur le graphique en mode visuel.

 
jollydragon:

Cher ffoorr, je ne peux pas ouvrir les pages et ne peux pas accéder au site, www.forex-tsd.com. Peut-être que ma configuration internet a un problème.

S'il vous plaît, concentrons-nous sur mon code. Il ne s'agit que de 10 lignes de code pour le contenu principal.

Cependant, il est toujours aussi difficile pour nous de trouver la cause première de la ré-affichage des barres historiques.


diminuez le zoom pour accéder au numéro de page sur TSD,


l'indicateur est meilleur

 
GumRai:

Comme je l'ai dit, l'indicateur recalcule la barre[0] à chaque tick en utilisant une valeur qui a été calculée au tick précédent de la même barre.

Essayez-le en plaçant l'indicateur sur le graphique en mode visuel.

GumRai, veuillez vous référer à mes messages précédents :

. Il n'y a pas de problème pour que la barre [0] soit repeinte si cela est nécessaire.

. Pour ce fil de discussion, le sujet ou la question est exactement pourquoi les barres historiques à gauche de la barre [0] ont été repeintes et ce n'est pas prévu. Je l'ai déjà observé dans les graphiques et j'ai déjà collé des captures d'écran.

Chers tous, s'il vous plaît, concentrons-nous sur mes codes et améliorons-nous ensemble en déterrant la cause profonde. Je n'ai pas besoin d'un meilleur indicateur, mais je veux connaître la cause profonde !

Merci de votre compréhension et de votre soutien.

 

Vous ne semblez pas comprendre ce que je vous dis.

Je ne sais pas si c'est parce que je ne m'explique pas bien ou si vous ne lisez pas correctement mes messages.

Lorsque vous réinitialisez l'indicateur, tout l'indicateur est recalculé sur la base d'un tick par barre alors qu'en temps réel il est basé sur plusieurs ticks dans une barre.

Donc si l'indicateur est dessiné en temps réel et ensuite réinitialisé, il y aura des différences.

 
GumRai:

Vous ne semblez pas comprendre ce que je vous dis.

Je ne sais pas si c'est parce que je ne m'explique pas bien ou si vous ne lisez pas correctement mes messages.

Lorsque vous réinitialisez l'indicateur, tout l'indicateur est recalculé sur la base d'un tick par barre alors qu'en temps réel il est basé sur plusieurs ticks dans une barre.

Donc si l'indicateur est dessiné en temps réel et ensuite réinitialisé, il y aura des différences.

Désolé de vous dire que l'anglais n'est pas ma langue maternelle.

Peu importe s'il est dessiné à la réinitialisation ou en temps réel, chaque barre historique est calculée sur la base du dernier tick.

Par conséquent, la barre historique devrait être figée de la même manière. Est-ce exact ? Comment peut-on observer la différence ou le re-dessin si vous observez l'indicateur dans un graphique en direct avec M1 pendant une période ?

 
Il semble que ce ne soit pas un problème simple et qu'il dépasse les capacités de nombreux experts en codage.
 

Eh bien, il me semble que c'est un problème simple, c'est juste que vous ne comprenez pas la réponse.

Essayez le code ci-joint, dans lequel j'espère que vous êtes en mesure de voir ce qui se passe

J'ai juste changé la boucle de dessin de l'indicateur en

   for(i=limit-1; i>=0; i--)
     {
      ExtBuffer1[i]=1.1*Fish1;
      Fish1=ExtBuffer1[i];
      if(Fish1>=EMPTY_VALUE)
         Fish1=1;
     }

et la valeur initiale de Fish1

Fish1=0.00001;

Exécutez-le sur un graphique M1 avec des ticks réguliers. Vous verrez plusieurs pics se former.

Réinitialisez l'indicateur et vous verrez tous ces pics disparaître.

De plus, si vous avez une mauvaise connexion internet et qu'il manque une barre, l'indicateur entier est recalculé, donc les pics disparaissent.

Vous comprenez pourquoi ?

Dossiers :
 
GumRai:

Eh bien, il me semble que c'est un problème simple, c'est juste que vous ne comprenez pas la réponse.

Essayez le code ci-joint, dans lequel j'espère que vous êtes en mesure de voir ce qui se passe

J'ai juste changé la boucle de dessin de l'indicateur en

et la valeur initiale de Fish1

Exécutez-le sur un graphique M1 avec des ticks réguliers. Vous verrez plusieurs pics se former.

Réinitialisez l'indicateur et vous verrez tous ces pics disparaître.

De plus, si vous avez une mauvaise connexion internet et qu'il manque une barre, l'indicateur entier est recalculé, donc les pics disparaissent.

Vous comprenez pourquoi ?

Cher GumRai,

Il semble que vous ayez compris mon point de vue.

Veuillez vous référer aux captures d'écran ci-dessous. Après avoir fait un clic droit sur votre indicateur et sélectionné "rafraîchir", l'emplacement des pics a changé.

Cependant, je ne vois toujours pas pourquoi. C'est pourquoi je n'arrive pas à trouver la cause première dans mon indicateur de réactualisation.

. Selon l'indicateur que vous avez modifié, je comprends qu'il devrait dessiner une ligne exponentielle. Pourquoi dessine-t-il des pics avec des intervalles ? Est-ce parce qu'il y a une "valeur vide" ?

. Pourquoi l'emplacement des pics change-t-il après un rafraîchissement ?

. Je n'arrive toujours pas à voir la disparition des pics. Comment le "réinitialiser" ?

Avant le rafraîchissement :

Après le rafraîchissement :

 
jollydragon: Cependant, je ne vois toujours pas pourquoi. C'est pourquoi je n'arrive pas à trouver la cause première dans mon indicateur de repeinture.

   for(i=limit-1; i>=0; i--)
     {
      ExtBuffer1[i]=1.1*Fish1;
      Fish1=ExtBuffer1[i];
      if(Fish1>=EMPTY_VALUE)
         Fish1=1;
     }

Pour chaque itération, (sauf la première,) Fish1 est la valeur de l'élément de tampon précédent, mais vous ne l'initialisez pas à ExtBuffer1[limit].

Donc, pour l'itération initiale (lorsque limite == barres), vous définissez ExtBuffer1[0] = 1.1*ExtBuffer1[1] .

Mais pour les ticks suivants (lorsque limite == 1), vous définissez ExtBuffer1[0] = 1.1*0.00001 .