¿Por qué los indicadores (líneas, flechas, histogramas) parpadean en el terminal MT5? - página 7

 
No sé si servirá de algo, pero resolví el problema de esta manera: en el código donde el bucle como for(int i= rates_total-prev_calculate; i>=0;i--) sustituí rates_total-prev_calculate por un valor numérico de 1500 y ¡el parpadeo se detuvo!
 
Dmitry Melnichenko: No sé si ayuda, pero he resuelto el problema de esta manera: he sustituido rates_total-prev_calculate por el valor numérico 1500 en el código donde el bucle es como for (int i=rates_total-prev_calculate; i>=0;i--) y ¡el parpadeo se ha detenido!

Es extraño, al hacer eso acabas de limitar el número de barras a procesar en el bucle en 1500, es decir, notas que si limitas bruscamente el número de barras (en un orden de magnitud, o incluso en 2 órdenes de magnitud) a procesar, el parpadeo desaparece. Tal vez haya algo en él, tendré que comprobarlo.

Entonces la función OnCalculate() del primer ejemplo de este hilo quedaría así:

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

Pero no resuelve el problema en su totalidad, si necesitamos mostrar el indicador en todo el conjunto de barras.

 

Al parecer, el terminal no envía confirmación al corredor de que el historial de cotizaciones ha cambiado. ( quizás el antivirus se resiste).

Pero el broker (el servidor del broker) envía y manda, "necesitamos cambiar el historial de cotizaciones".

O su ordenador es demasiado débil para que MT5 tenga tiempo de cambiar el historial de cotizaciones antes de que el broker envíe las nuevas cotizaciones.

 
Sergey Chalyshev:

Al parecer, el terminal no envía al corredor una confirmación de que el historial de cotizaciones ha cambiado. ( quizás el antivirus se resiste).

Pero el broker (servidor del broker) manda y manda, "tienes que cambiar el historial de cotizaciones".

O su ordenador es demasiado débil para cambiar el historial de cotizaciones antes de que el corredor envíe el nuevo historial de cotizaciones.

ZZ también parpadea los fines de semana.
 
-Aleks-:

ZZ también parpadea los fines de semana.

Depende del corredor y de la configuración de su servidor. El servidor de demostración MQL, por ejemplo, reescribe el historial después de 3 horas.

Tal vez me equivoque, esperemos que los desarrolladores de la plataforma vengan a explicarlo.


 
Sergey Chalyshev:

Depende del corredor y de la configuración de su servidor. El servidor de demostración MQL, por ejemplo, reescribe el historial después de 3 horas.

Tal vez me equivoque, esperemos que los desarrolladores de la plataforma vengan a explicarlo.

Tengo un broker llamado Otkritie - no una cuenta demo.

Los promotores guardan silencio como partidarios.

 
-Aleks-:

Tengo un broker llamado Otkritie - no una cuenta demo.

Los promotores guardan silencio como partidarios.


ChartRedraw

Hace que el gráfico especificado se redibuje forzosamente.

¿Está en el código?

 
Sergey Chalyshev:

ChartRedraw

Hace que el gráfico especificado se redibuje forzosamente.

¿Hay alguno en el código?

No.
 
-Aleks-:

No.

¿Este indicador en particular tiene algún fallo? Lo investigaré con calma.

 
Sergey Chalyshev:

¿Este indicador en particular tiene algún fallo? Lo investigaré con calma.

Me refiero al indicador estándar ZigZag de MT5.