Erreurs, bugs, questions - page 1396

 
Karputov Vladimir:
Votre exemple est tordu et vous ne voulez pas le réparer. Je vérifierai quand vous l'aurez réparé.

Je le réparerais si c'était un code pour une utilisation réelle. Mais ce code a été créé uniquement pour démontrer le problème, ce qu'il a fait avec succès. C'est une perte de temps de le nettoyer, car cela n'affectera pas le résultat.

 
Anatoli Kazharski:

Au fait, j'ai complètement oublié. ))

Essayez comme ça :

Essayé à la fois si indicator_plots=1 et avecINDICATOR_CALCULATIONS

la lecture du deuxième tampon disparaît tout simplement de la fenêtre de données, sans tenir compte de PlotIndexSetInteger(1, PLOT_SHOW_DATA, true) ;

 
Anatoli Kazharski:

Vous pouvez essayer de signaler l'erreur à Servicedesk et attendre une réponse.

Je l'ai fait. S'ils répondent, je vous le ferai savoir). Je doute qu'il s'agisse d'une erreur. C'est ainsi que vous le saurez.
 
Ilya Malev:

J'ai essayé les deux avec indicator_plots=1 etINDICATOR_CALCULATIONS.

les lectures du deuxième tampon disparaissent de la fenêtre de données, même si vous avez spécifié PlotIndexSetInteger(1, PLOT_SHOW_DATA, true) ;

Mais le problème d'échelle est résolu de cette manière. Vous pouvez donc créer une demande à Servicedesk, qui ajoutera simplement la possibilité d'afficher ces tampons dans la fenêtre de données.

Et vous pouvez aussi essayer de le faire comme ça :

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int    id,      // идентификатор события
                  const long   &lparam, // параметр события типа long
                  const double &dparam, // параметр события типа double
                  const string &sparam) // параметр события типа string
  {
   if(id==CHARTEVENT_MOUSE_MOVE)
     {
      int      subwin =WRONG_VALUE; // Номер окна, в котором находится курсор
      datetime time   =NULL;        // Время соответствующее координате X
      double   level  =0.0;         // Уровень (цена) соответствующий координате Y
      //---
      if(ChartXYToTimePrice(0,(int)lparam,int(dparam),subwin,time,level))
        {
         int bars_total=Bars(Symbol(),Period(),time,TimeCurrent());
         //---
         Comment("x: ",lparam,"; y: ",(int)dparam,"; subwin: ",subwin,"; time: ",time,"; level: ",level,"\n",
                 "indicator value: ",buffer2[bars_total]);
        }
     }
  }

//---

Dans OnInit() vous devez ajouter :

void OnInit()
  {
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
  }
 
Anatoli Kazharski:

Vous pouvez donc créer une demande auprès de Servicedesk pour ajouter simplement la possibilité d'afficher de tels tampons dans la fenêtre de données.

Je viens de décrire le problème, la logique des valeurs de la mémoire tampon DRAW_NONE est par définition différente de la logique des valeurs rendues, ce ne sont pas des valeurs graphiques, et donc mettre à l'échelle en les prenant en compte n'est pas logique. La façon dont ils veulent résoudre le problème, ou s'ils veulent le laisser tel quel, ne me regarde pas.

 
Ilya Malev:

Je viens de décrire le problème, la logique des valeurs de la mémoire tampon DRAW_NONE est par définition différente de la logique des valeurs rendues, ce ne sont pas des valeurs graphiques et donc la mise à l'échelle en les prenant en compte n'est pas logique. Et la façon dont ils veulent résoudre ce problème ou le laisser tel quel ne me regarde pas.

L'option proposée dans le message précédent n'est-elle pas appropriée ? Juste au cas où tout est laissé en l'état. )

Dossiers :
Test.mq5  4 kb
 
Anatoli Kazharski:

L'option proposée dans le message précédent n'est-elle pas appropriée ? Juste au cas où tout reste en l'état. )

Bien sûr, merci pour le conseil, si je voulais trouver une sorte de béquille, je trouverais aussi quelque chose, mais tout d'abord, nous sommes à l'aise pour regarder les valeurs dans la fenêtre de données. Deuxièmement, nous devrions utiliser la valeur du tampon de cet indicateur dans d'autres indicateurs et Expert Advisors, et quelque chose me dit que si nous faisons un tampon pour les calculs, il sera impossible d'obtenir ses valeurs par iCustom.

Par conséquent, nous avons résolu le problème en multipliant la deuxième valeur du tampon par Point.

 
Ilya Malev:

Je viens de décrire le problème, la logique des valeurs de la mémoire tampon DRAW_NONE est par définition différente de la logique des valeurs rendues, ce ne sont pas des valeurs graphiques et donc la mise à l'échelle en les prenant en compte n'est pas logique. La façon dont ils veulent résoudre ce problème, ou s'ils veulent le laisser tel quel, ne me regarde pas.

Tout dépend de l'endroit où vous voulez que les valeurs soient affichées. Si vous définissez l'affichage dans une fenêtre séparée, il importe peu que les valeurs tampons calculées ne soient pas visibles. Toutes les valeurs se situent toujours dans cette fenêtre. Par conséquent, la balance peut tomber en panne.

Pas logique - je suis d'accord, mais il est peu probable que cela soit corrigé.

 
Ilya Malev:

Bien sûr, merci pour le conseil, si je voulais faire une béquille, je penserais aussi à quelque chose, mais avant tout, nous sommes à l'aise pour regarder les valeurs dans la fenêtre de données. Et deuxièmement, nous avons besoin d'utiliser la valeur du tampon de cet indicateur dans d'autres indicateurs et Expert Advisors, et quelque chose me dit que si nous faisons un tampon pour les calculs, il sera impossible d'obtenir ses valeurs à travers iCustom.

Essayez-le. Il est possible d'obtenir les valeurs à partir du tampon de couleur. Il est donc possible de le faire sortir du tampon de calcul également. Après tout, il a un indice, c'est-à-dire qu'il est théoriquement possible de s'y référer.
 
Ilya Malev:

Et deuxièmement, nous devons utiliser la valeur tampon de cet indicateur dans d'autres indicateurs et Expert Advisors,

et quelque chose me dit que si vous faites un tampon pour les calculs, il sera impossible d'obtenir sa valeur à travers iCustom.

D'ailleurs, je ne me souviens pas exactement, mais cela semble possible. Essayez-le. )
Raison: