Erreurs, bugs, questions - page 2190

 
Artyom Trishkin:
Et alors ? Le nombre de barres visibles change. Il serait préférable de vérifier quand le graphique est déplacé avec la souris. Vous pouvez l'attraper. Si un graphique se déplace sous l'action de la souris, il ne s'agit pas d'une fonction.

Je n'ai pas parlé d'une vérification de l'exécution. Si vous décalez manuellement le graphique vers la droite de 100 barres, puis essayez de le décaler à nouveau de 10 barres vers la droite, le décalage sera de 10 par rapport à la marque indiquée dans l'image. En fait, dans cet exemple, le décalage ne se fera pas vers la droite de 10, mais vers la gauche de 90.

Quant à la vérification... à quoi bon vérifier quelque chose qui ne fonctionne pas comme prévu ? Plus précisément écrit pas comme prévu. Pour déplacer le graphique plus d'une fois, le décalage doit être fait à partir de CHART_CURRENT_POS, et dans l'exemple c'était CHART_END.

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

Erreurs, bugs, questions

Aleksey Vyazmikin, 2018.04.12 15:43

Si j'appelle le script souvent - plusieurs fois après l'exécution, le décalage du graphique cesse de fonctionner, c'est-à-dire que les commandes pour cette action sont sautées.

   long handle=ChartID(); 
   if(handle>0) // если получилось, дополнительно настроим 
     { 
      ChartNavigate(handle,CHART_END,-2000); 
     } 

D'où le problème.

 
Alexey Viktorov:

Je n'ai pas parlé d'une vérification de l'exécution. Si vous décalez manuellement le graphique vers la droite de 100 barres, puis essayez de le décaler à nouveau de 10 barres vers la droite, le décalage sera de 10 par rapport à la marque indiquée dans l'image. En fait, dans cet exemple, le décalage ne se fera pas vers la droite de 10, mais vers la gauche de 90.

Quant à la vérification... à quoi bon vérifier quelque chose qui ne fonctionne pas comme prévu ? Plus précisément écrit pas comme prévu. Pour déplacer le graphique plus d'une fois, nous devons nous décaler de CHART_CURRENT_POS et dans l'exemple, de CHART_END.


D'où le problème.

Je n'ai pas lu le code. Peut-être qu'elle en a besoin de cette façon.

Ce que je veux dire, c'est que la fonction de décalage du graphique est asynchrone, ce qui signifie que lorsqu'elle renvoie le succès de l'exécution, il ne s'agit pas du décalage du graphique, mais du succès de la mise en place d'un tel ordre dans la file d'attente des événements du graphique. Et ce n'est pas la même chose - vous le savez.

Donc, en se basant sur ça, je parle d'attraper l'événement de l'exécution de la commande de changement de carte...

J'aimerais avoir le temps d'expérimenter... Mais hélas...

 

Le profileur ne montre pas les signatures des fonctions, donc vous ne pouvez pas dire immédiatement quelle fonction surchargée est visée...


C'est-à-dire que la liste est remplie de __FUNCTION__, alors que je voudrais __FUNCSIG__.

 

Aide à trouver le poste du développeur où le code source de ArrayResize a été posté. La recherche sur Google de "site:mql5.com/fr/forum ArrayResize+reserve" ne donne rien.

Je me souviens qu'il y avait un code source. Vous pouvez y voir immédiatement la logique de mise en œuvre du paramètre de réserve.

 
fxsaber:

Aide à trouver le poste du développeur où le code source de ArrayResize a été posté. La recherche sur Google de "site:mql5.com/fr/forum ArrayResize+reserve" ne donne rien.

Je me souviens qu'il y avait un code source. Vous pouvez immédiatement voir la logique derrière la mise en œuvre du paramètre de réserve.

Le code source ou le pseudo-code ? Ce sont des choses diamétralement différentes.

 
Artyom Trishkin:

Si vous vous fiez uniquement au fait qu'il y a un décalage, vous pouvez déplacer la carte à la main - c'est un trou dans la logique...

Vous devez vérifier le décalage par rapport à la barre calculée apparemment, pas seulement le décalage. Il faut juste trouver comment l'implémenter correctement...

Alexey Viktorov:

Je n'ai pas parlé de vérifier l'exécution. Si vous décalez manuellement le graphique vers la droite de 100 barres et que vous essayez ensuite de le décaler encore de 10 et également vers la droite avec le script, le décalage sera de 10 par rapport à la marque indiquée sur l'instantané. En fait, dans cet exemple, le décalage ne se fera pas vers la droite de 10, mais vers la gauche de 90.

Quant à la vérification... à quoi bon vérifier quelque chose qui ne fonctionne pas comme prévu ? Plus précisément écrit pas comme prévu. Pour déplacer le graphique plus d'une fois, nous devons nous décaler de CHART_CURRENT_POS et dans l'exemple nous avons CHART_END.


D'où le problème.

J'ai besoin de CHART_END, parce que nous sommes censés faire le décalage dans la boucle par les dates, et il est plus pratique de chercher les dates du début ou de la fin des données, plutôt que du milieu...

 
Sergey Dzyublik:

Code source, ou pseudo-code ? Ce sont des choses radicalement différentes.

Je pense que le code source a été directement posté. Mais même s'il y a un pseudo-code, et il sera utile.

 
Aleksey Vyazmikin:

Vous devez vérifier le décalage par rapport à la barre calculée apparemment, pas seulement le décalage. Je dois juste trouver comment l'implémenter correctement...

J'ai besoin de CHART_END, parce qu'il est supposé faire le décalage dans le cycle par les dates, et il est plus pratique de chercher les dates du début ou de la fin des données, plutôt que du milieu...

Il n'y a donc aucun problème. Le décalage ne sera imperceptible que si vous essayez de décaler du même nombre de mesures 2 fois ou plus avec une période inchangée.

J'espère que je n'ai pas oublié de désactiver le décalage automatique du graphique.

ChartSetInteger(0, CHART_AUTOSCROLL, 0, false);
 
Alexey Viktorov:

Il n'y a donc aucun problème. Le décalage ne sera imperceptible que si vous essayez de décaler du même nombre de mesures 2 fois ou plus avec la même période.

J'espère que je n'ai pas oublié de désactiver l'autoskill ?

Le défilement automatique, bien sûr, est désactivé.

 
Comment supprimer un script en cours d'exécution dans MT5 ? Dans MT4 par le menu contextuel, mais ici je ne vois pas...