Por que os indicadores (linhas, setas, histogramas) estão cintilando no terminal MT5? - página 7

 
Não sei se vai ajudar, mas resolvi este problema desta maneira: no código onde o loop como for(int i=rates_total-prev_calculate; i>=0;i--) substituiu rates_total-prev_calculate por um valor numérico de 1500 e a cintilação parou!
 
Dmitry Melnichenko: Não sei se ajuda, mas resolvi este problema desta forma: substituí taxas_total-prev_calculate pelo valor numérico 1500 no código onde o loop é como para (int i=rates_total-prev_calculate; i>=0;i--) e a cintilação parou!

Estranho, ao fazer isso você apenas limita o número de barras a serem processadas no laço em 1500, ou seja, você percebe que se você limitar drasticamente o número de barras (por uma ordem de magnitude, ou mesmo por 2 ordens de magnitude) a serem processadas, a cintilação desaparece. Talvez haja algo nele, terei que verificá-lo.

Então a função OnCalculate() do primeiro exemplo nesta linha seria parecida com esta:

//+------------------------------------------------------------------+
//| 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);
}

Mas isso não resolve o problema como um todo, se precisarmos exibir o indicador em todo o conjunto de barras.

 

Aparentemente, o terminal não envia confirmação ao corretor de que o histórico de cotações mudou. ( talvez o antivírus esteja resistindo).

Mas o corretor (servidor do corretor) envia e envia, "precisamos mudar o histórico de cotações".

Ou seu computador está muito fraco para que o MT5 tenha tempo de alterar o histórico de cotações antes que o corretor envie as novas cotações.

 
Sergey Chalyshev:

Aparentemente, o terminal não envia ao corretor uma confirmação de que o histórico de cotações mudou. ( talvez o antivírus esteja resistindo).

Mas o corretor (servidor do corretor) envia e envia, "você precisa mudar o histórico de cotações".

Ou seu computador está muito fraco para mudar o histórico de cotações antes que o corretor envie o novo histórico de cotações.

ZZ cintilam também nos fins de semana.
 
-Aleks-:

ZZ cintilam também nos fins de semana.

Depende do corretor e das configurações de seu servidor. O servidor de demonstração MQL, por exemplo, reescreve o histórico após 3 horas.

Talvez eu esteja errado, espero que os desenvolvedores da plataforma venham e expliquem.


 
Sergey Chalyshev:

Depende do corretor e das configurações de seu servidor. O servidor de demonstração MQL, por exemplo, reescreve o histórico após 3 horas.

Talvez eu esteja errado, espero que os desenvolvedores da plataforma venham e expliquem.

Eu tenho um corretor chamado "Otkritie" - não uma conta demo.

Os desenvolvedores são silenciosos como partidários.

 
-Aleks-:

Eu tenho um corretor chamado Otkritie - não uma conta demo.

Os desenvolvedores são silenciosos como um partidário.


ChartRedraw

Faz com que a tabela especificada seja forçosamente redesenhada.

Está no código?

 
Sergey Chalyshev:

ChartRedraw

Faz com que a tabela especificada seja redesenhada com força.

Existe um no código?

Não.
 
-Aleks-:

Não.

Este indicador em particular é defeituoso? Vou analisar isso a meu bel-prazer.

 
Sergey Chalyshev:

Este indicador em particular é defeituoso? Vou analisar isso a meu bel-prazer.

Estou falando do indicador padrão ZigZag do MT5.