ChartNavigate pendant l'initialisation - page 3

 
Dina Paches:

Pourquoi ça ? Ai-je écrit ou apporté des absurdités ?

Non pas que ce soit un non-sens... mais c'est juste que nous étudions la navigation ici et que redessiner le graphique n'a aucun effet (car il a été clairement indiqué au début de l'expérience que le défilement du graphique devait être désactivé).

Le code de test s'exécute pendant une minute ou deux au maximum, nos ordinateurs sont puissants - la charge est donc négligeable.

 
Vladimir Karputov:

Non pas que ce soit un non-sens... mais c'est juste que nous étudions ici la navigation et que le redécoupage du graphique n'a aucun effet (car il a été clairement indiqué au début de l'expérience que le défilement du graphique devait être désactivé).

Le code de test est exécuté pendant une minute ou deux au maximum, nos ordinateurs sont puissants - la charge est donc négligeable.

Les codes de test peuvent être fréquents. /* Maintenant une minute ici, puis une minute là, puis une heure ailleurs, etc...

Je faisais référence dans ce post aux mots de Renat. Il a, je crois, des ordinateurs plus puissants que les vôtres.

Vous, Vladimir, avez publié ces codes de test pour montrer le travail (résultats de recherche), pour le téléchargement. Redessiner le graphique à chaque tick n'est pas approprié.

 
P./S. : Dans les paramètres d'entrée, vous avez la possibilité de désactiver/activer uniquement la redirection du graphique viaChartRedraw(). Cependant, dans les codes de test, le graphique est redessiné à chaque tick par le biais de Comment
 
Dina Paches:

Les codes de test peuvent être fréquents. /* Maintenant une minute ici, puis une minute là, puis une heure ailleurs, etc...

Je faisais référence dans ce post à ce que Renat a dit. Je suppose qu'il a des ordinateurs plus puissants que les vôtres.

Vous, Vladimir, avez publié ces codes de test pour montrer le travail (résultats de recherche), pour le téléchargement. Il n'est pas approprié de redessiner les graphiques à chaque fois qu'ils sont cochés.

Vous avez raison pour le redécoupage. Ce n'est pas approprié maintenant.)

 
Ihor Herasko:

Vous avez raison pour le redécoupage. Ce n'est tout simplement pas la bonne chose à faire en ce moment).

Hum... Ce n'est pas l'endroit pour redessiner à chaque tic. Ce n'est pas l'endroit pour essayer de vous convaincre que ça ne vaut pas la peine d'y prêter attention.

Et ne pas en parler.

Mais maintenant, au prix de vos efforts et de ceux de Vladimir pour convaincre qu'il n'est pas à sa place et qu'il ne mérite pas qu'on s'y attarde, l'accent a vraiment été mis sur le sujet).

 

Construire 1865.

J'ai apporté un changement à l'indicateur :

   if(count%12==0/* || count==19*/)

C'est-à-dire que tous les 12 ticks, nous déplaçons énergiquement le graphique. C'est pour quoi faire :

  1. Vous pouvez déplacer manuellement le graphique entre 12 ticks et voir le numéro de la première barre visible.
  2. Suivi visuel du mouvement.


Jusqu'à présent, nous avons une théorie : le déplacement du graphique dépend du GRAPHIQUE LARGE !

Dossiers :
 

Indicateur version 1.002 :

Suppression de tous les commentaires (maintenant sortie via Print)

Par défaut :

//--- input parameters
input bool redraw=false;
input ENUM_CHART_POSITION position=CHART_END;

Dépendance claire de l'échelle du graphique. Et il y a une certaine mémoire si l'on déplace manuellement la carte une fois.

Dossiers :
 
Ihor Herasko:

J'ai rencontré un problème avec la fonction ChartNavigate. Je fais quelque chose de mal ou il y a vraiment un problème avec la fonction. Répondez si vous l'avez utilisé assez souvent.

Donc, l'essence du problème : ChartNavigate ne déplace pas le graphique. Lors du démarrage du terminal Si j'appelle cette fonction dans OnInit(). J'ai volontairement lu la documentation plusieurs fois. Il n'est dit nulle part que la fonction ne peut pas être appelée pendant l'initialisation.

Code indicateur pour la lecture :

Étapes pour jouer :

  1. Désactiver la lecture automatique des graphiques.
  2. Fixez l'indicateur au tableau. ChartNavigate se déclenchera en déplaçant le graphique à la position souhaitée.
  3. Déchargez le terminal.
  4. Chargez le terminal. ChartNavigate ne fonctionnera pas en affichant le graphique sans décalage.
OK, si la fonction donnait une erreur. Mais ce n'est pas le cas. Tous les appels sont réussis, mais c'est lorsque le terminal est rechargé que le décalage du graphique ne se produit pas.

Dites-moi, avant de décharger le terminal, réinitialisez-vous le graphique aux prix les plus récents ?

Pourquoi je demande :

J'utilise votre code pour voir comment il fonctionnerait pour moi dans ces conditions. J'ai d'abord pensé que le problème décrit par vous est reproduit dans mon code. Plus tard, j'ai compris que ce n'était pas le cas. Si le graphique est restauré aux derniers prix avant d'être déchargé, il fonctionne selon le code lorsque le terminal est chargé. Si je ne reviens pas aux derniers prix avant le déchargement, le graphique reste là où il était avant le déchargement.

 
Vladimir Karputov:

Construire 1865.

J'ai apporté un changement à l'indicateur :

C'est-à-dire que tous les 12 ticks, nous déplaçons énergiquement le graphique. C'est pour quoi faire :

  1. Vous pouvez déplacer manuellement le graphique entre 12 ticks et voir le numéro de la première barre visible.
  2. Suivi visuel du mouvement.


Jusqu'à présent, nous avons une théorie : le déplacement du graphique dépend du GRAPHIQUE LARGE !

Vladimir Karputov:

Indicateur version 1.002 :

...

Il existe une dépendance claire à l'égard de l'échelle du graphique. Et il y a une certaine mémoire si vous déplacez manuellement la carte une fois.


L'auteur du fil de discussion a créé ce fil de discussion en raison de la question suivante - ChartNavigate pendant l'initialisation:

Forum sur le trading, les systèmes de trading automatisé et les tests de stratégies de trading

ChartNavigate à l'initialisation

Ihor Herasko, 2018.06.25 12:17

...

Donc, le cœur du problème : ChartNavigate ne déplace pas le graphique. Au début du terminal Si vous appelez la fonction dans OnInit().


Vous, Vladimir, faites vos recherches non pas dans OnInit() mais dans OnCalculate(). Pas sur la question décrite par l'auteur du fil de discussion.

C'est-à-dire que vous envisagez autre chose dans ce fil.

Si vous avez détecté un réel problème, peut-être devriez-vous contacter le Service Desk avec sa description ?


P./S. : D'après le dernier code de test de l'indicateur joint ici, vous n'avez plus de re-rendu forcé du graphique à chaque tick. Mais au lieu de cela, il s'imprime maintenant dans le journal à chaque tic. En raison du fait qu'il n'y a pas de vérification si le numéro de la première barre du graphique a changé.

En outre, votre code contient une suppression active des commentaires. En d'autres termes, si vous placez votre code sur le graphique, où un autre programme créera les commentaires nécessaires, votre code de test les supprimera.

P./S. : Suppression d'une citation en double au début du post, mise à sa place de citations d'un autre, liées entre elles.

 
Dina Paches:


L'auteur du sujet l'a créé sur la question suivante - ChartNavigate during initialisation:


Vous, Vladimir, faites vos recherches non pas dans OnInit() mais dans OnCalculate(). Pas sur la question décrite par l'auteur du fil de discussion.

C'est-à-dire que vous envisagez autre chose dans ce fil.

Si vous avez détecté un réel problème, vous devriez peut-être contacter le Service Desk avec sa description ?


P./S. : D'après le dernier code de test de l'indicateur joint ici, vous n'avez plus de re-rendu forcé du graphique à chaque tick. Mais au lieu de cela, il s'imprime maintenant dans le journal à chaque tic. En raison du fait qu'il n'y a pas de vérification si le numéro de la première barre du graphique a changé.

En outre, votre code contient une suppression active des commentaires. En d'autres termes, si vous placez votre code sur le graphique, où un autre programme créera les commentaires nécessaires, votre code de test les supprimera.

Dina, est-ce que ça marche pour toi ? Cela fait maintenant 2 ou 3 heures (juste aujourd'hui, sans compter les tests d'hier) que je lutte pour obtenir une version non fonctionnelle de OnInit, mais en vain. Tout fonctionne toujours comme il se doit. Si je place l'indicateur sur deux graphiques et que je redémarre le terminal, il ne fonctionne que sur le graphique qui était actif au moment de la fermeture et de l'ouverture du terminal. Sur le second, le graphique non actif ne fonctionne pas. Mais ceci, à mon avis, est compréhensible, il n'y a pas de rendu de graphique et pas de graphique lui-même, malgré le fait que les données soient reçues.