Pourquoi les indicateurs (lignes, flèches, histogrammes) clignotent-ils dans le terminal MT5 ? - page 7

 
Je ne sais pas si cela vous aidera, mais j'ai résolu ce problème de la façon suivante : dans le code où la boucle comme for(int i=rates_total-prev_calculate ; i>=0;i--) remplacé rates_total-prev_calculate avec une valeur numérique de 1500 et le scintillement a cessé !
 
Dmitry Melnichenko: Je ne sais pas si cela peut aider, mais j'ai résolu ce problème de la manière suivante : j'ai remplacé rates_total-prev_calculate par la valeur numérique 1500 dans le code où la boucle est du type for (int i=rates_total-prev_calculate ; i>=0;i--) et le scintillement a cessé !

C'est étrange, en faisant cela vous avez juste limité le nombre de barres à traiter dans la boucle de 1500, c'est-à-dire que vous remarquez que si vous limitez fortement le nombre de barres (d'un ordre de grandeur, ou même de 2 ordres de grandeur) à traiter, alors le scintillement disparaît. Il y a peut-être quelque chose dedans, je vais devoir vérifier.

La fonction OnCalculate() du premier exemple de ce fil de discussion ressemblerait alors à ceci :

//+------------------------------------------------------------------+
//| Custom indicator iteration function
//+------------------------------------------------------------------+
int OnCalculate (const int rates_total,      // размер входных таймсерий 
                 const int prev_calculated,  // обработано баров на предыдущем вызове 
                 const datetime& time[],     // Time 
                 const double&   open[],     // Open 
                 const double&   high[],     // High 
                 const double&   low [],     // Low 
                 const double&   close[],    // Close 
                 const long& tick_volume[],  // Tick Volume 
                 const long& real_volume[],  // Real Volume 
                 const int&  spread[])       // Spread 
{
// int N=rates_total-prev_calculated; if (N>MAX_PERIOD) N-=MAX_PERIOD;

   for (int i=1500; i>0 && !IsStopped(); i--) {
      double ma_fast=getMA(ma_fast_handle, i);
      double ma_slow=getMA(ma_slow_handle, i);;
      aom=ma_fast-ma_slow;
      if (aom>last_aom) {aUP[i]=aom; aDN[i]=EMPTY_VALUE;}
      else              {aDN[i]=aom; aUP[i]=EMPTY_VALUE;}
      last_aom=aom;
   }
   aUP[0]=EMPTY_VALUE; aDN[0]=EMPTY_VALUE;
   return(rates_total);
}

Mais cela ne résout pas le problème dans son ensemble, si nous devons afficher l'indicateur sur l'ensemble des barres.

 

Apparemment, le terminal n'envoie pas de confirmation au courtier que l'historique des cotations a changé. ( peut-être que l'antivirus résiste).

Mais le courtier (le serveur du courtier) envoie et envoie, "nous devons changer l'historique des cotations".

Ou votre ordinateur est trop faible pour que MT5 ait le temps de modifier l'historique des cotations avant que le courtier n'envoie les nouvelles cotations.

 
Sergey Chalyshev:

Apparemment, le terminal n'envoie pas de confirmation au courtier que l'historique des cotations a changé. ( peut-être que l'antivirus résiste).

Mais le courtier (le serveur du courtier) envoie et envoie, "vous devez changer l'historique des cotations".

Ou votre ordinateur est trop faible pour modifier l'historique des cotations avant que le courtier n'envoie le nouvel historique des cotations.

ZZ clignote aussi les week-ends.
 
-Aleks-:

ZZ clignote aussi les week-ends.

Cela dépend du courtier et des paramètres de son serveur. Le serveur de démonstration MQL, par exemple, réécrit l'historique après 3 heures.

Je me trompe peut-être, et j'espère que les développeurs de la plateforme viendront m'expliquer.


 
Sergey Chalyshev:

Cela dépend du courtier et des paramètres de son serveur. Le serveur de démonstration MQL, par exemple, réécrit l'historique après 3 heures.

Je me trompe peut-être, et j'espère que les développeurs de la plateforme viendront m'expliquer.

J'ai un courtier appelé Otkritie - pas un compte de démonstration.

Les développeurs sont silencieux comme des partisans.

 
-Aleks-:

J'ai un courtier appelé Otkritie - pas un compte de démonstration.

Les développeurs sont silencieux comme des partisans.


ChartRedraw

Redessine de manière forcée le graphique spécifié.

C'est dans le code ?

 
Sergey Chalyshev:

ChartRedraw

Redessine de manière forcée le graphique spécifié.

Y en a-t-il un dans le code ?

Non.
 
-Aleks-:

Non.

Cet indicateur particulier est-il défectueux ? Je m'y pencherai à loisir.

 
Sergey Chalyshev:

Cet indicateur particulier est-il défectueux ? Je m'y pencherai à loisir.

Je parle de l'indicateur ZigZag standard de MT5.
Raison: