¡Problemas encontrados durante las pruebas de espalda y no se puede encontrar la causa raíz! - página 4

 
GumRai:

permitirá realizar cálculos diferentes en la primera ejecución en barras cerradas a lo que hace en la barra actual.

Lo que hará en el primer tick de una nueva barra es

En los siguientes ticks de la misma barra calculará

Lo que es una especie de composición

Estimado GumRai,

La barra actual, Bar[0] es necesaria para repintar. Así que el tema es sobre la cuestión de que las barras históricas se observaron con re-pintado, tal vez Bar[8],..Bar[3],.., o Bar[1].

Usted puede ver que es sólo alrededor de 10 líneas de códigos para el contenido principal del indicador.

Sin embargo, sigue siendo tan difícil para nosotros encontrar la causa raíz para el repintado de las barras históricas.

Es tan extraño y estoy confundido como las barras históricas pueden ser repintadas con ese código.

 

Como he dicho, el indicador está recalculando bar[0] cada tick usando un valor que fue calculado en el tick anterior de la misma barra

Mientras se ejecuta el probador, el indicador estará calculando en tiempo pseudo real aunque el indicador no esté realmente en el gráfico

Cuando el probador termina, el indicador se añade al gráfico y creo que no tiene en cuenta todos los ticks ya que sólo se calcula una vez por barra.

Pruébalo poniendo el indicador en el gráfico en modo visual.

 
jollydragon:

Estimado ffoorr, no puedo abrir las páginas y no puedo acceder al sitio, www.forex-tsd.com. Tal vez mi configuración de Internet tiene algún problema.

Por favor, centrémonos en mi código. Son sólo unas 10 líneas de códigos para el contenido principal.

Sin embargo, sigue siendo tan difícil para nosotros encontrar la causa raíz para el repintado de las barras históricas.


disminuir el zoom para acceder al número de página en TSD,


el indicador es mejor

 
GumRai:

Como he dicho, el indicador está recalculando bar[0] cada tick utilizando un valor que se calculó en el tick anterior de la misma barra

Pruébalo poniendo el indicador en el gráfico en modo visual.

GumRai, por favor, consulta mis posts anteriores:

. No hay problema en que la barra[0] se vuelva a pintar, ya que es necesario.

. Para este hilo, el tema o la cuestión es exactamente por qué las barras históricas a la izquierda de la barra [0] fueron repintadas y no se espera. Ya lo he observado en los gráficos y he pegado capturas de pantalla.

Estimados todos, por favor, centrémonos en mis códigos y mejoremos juntos desenterrando la causa raíz. ¡No necesito ningún indicador mejor, pero quiero saber la causa raíz!

Gracias por la comprensión y el apoyo.

 

Parece que no entiendes lo que te digo.

No sé si es porque no me estoy explicando bien o si simplemente no estás leyendo bien mis mensajes.

Cuando reinicializas el indicador, todo el indicador se recalcula en base a un tick por barra mientras que en tiempo real se basa en múltiples ticks en una barra.

Así que si el indicador se dibuja en tiempo real y luego se reinicializa, habrá diferencias.

 
GumRai:

Parece que no entiendes lo que te digo.

No sé si es porque no me estoy explicando bien o si simplemente no estás leyendo bien mis mensajes.

Cuando reinicializas el indicador, todo el indicador se recalcula en base a un tick por barra mientras que en tiempo real se basa en múltiples ticks en una barra.

Así que si el indicador se dibuja en tiempo real y luego se reinicializa, habrá diferencias.

Siento decir que el inglés no es mi lengua materna.

No importa si se dibuja en la reinicialización o en tiempo real, cada barra histórica se calcula en base al último tick.

Por lo tanto, la barra histórica debe ser congelada como la misma. ¿Correcto? ¿Cómo se puede observar la diferencia o el repintado si se observa el indicador en un gráfico en vivo con M1 durante un período?

 
Parece que no es un tema sencillo y que está fuera de la capacidad de muchos expertos en codificación.
 

Pues a mí me parece un tema sencillo, lo que pasa es que no entiendes la respuesta.

Prueba el código adjunto, en el que espero que seas capaz de ver lo que ocurre

Acabo de cambiar el bucle de dibujo del indicador por

   for(i=limit-1; i>=0; i--)
     {
      ExtBuffer1[i]=1.1*Fish1;
      Fish1=ExtBuffer1[i];
      if(Fish1>=EMPTY_VALUE)
         Fish1=1;
     }

y el valor inicial de Fish1

Fish1=0.00001;

Ejecútalo en un gráfico M1 con ticks regulares . Verá que se forman varios picos.

Reinicie el indicador y verá que todos esos picos desaparecen.

Además, si tiene una conexión a Internet no muy buena y se pierde una barra, todo el indicador se recalcula, por lo que los picos desaparecerán

¿Ves por qué?

Archivos adjuntos:
 
GumRai:

Pues a mí me parece un tema sencillo, lo que pasa es que no entiendes la respuesta.

Prueba el código adjunto, en el que espero que seas capaz de ver lo que ocurre

Acabo de cambiar el bucle de dibujo del indicador por

y el valor inicial de Fish1

Ejecútalo en un gráfico M1 con ticks regulares . Verá que se forman varios picos.

Reinicie el indicador y verá que todos esos picos desaparecen.

Además, si tiene una conexión a Internet no muy buena y se pierde una barra, todo el indicador se recalcula, por lo que los picos desaparecerán

¿Ves por qué?

Estimado GumRai,

Parece que entiendes mi punto de vista.

Por favor, consulte las capturas de pantalla a continuación. Después de hacer clic con el botón derecho en su indicador y seleccionar "actualizar", la ubicación de los picos cambió.

Sin embargo, todavía no puedo ver por qué. Es por eso que no puedo encontrar la causa raíz en mi indicador de repintado.

. Según el indicador que has modificado, entiendo que debería dibujar una línea exponencial. ¿Por qué dibuja picos con intervalos? ¿Es porque hay un "valor vacío"?

. ¿Por qué cambia la ubicación de los picos después de refrescar?

. Todavía no puedo ver la desaparición de los picos. ¿Cómo se puede "reiniciar"?

Antes de refrescar:

Después de refrescar:

 
jollydragon: Sin embargo, todavía no puedo ver por qué. Por eso no puedo encontrar la causa raíz en mi indicador de repintado.

   for(i=limit-1; i>=0; i--)
     {
      ExtBuffer1[i]=1.1*Fish1;
      Fish1=ExtBuffer1[i];
      if(Fish1>=EMPTY_VALUE)
         Fish1=1;
     }

Para cada iteración, (excepto la primera,) Fish1 es el valor del elemento anterior del buffer, pero no lo inicializas a ExtBuffer1[límite ].

Así que para la iteración inicial (cuando limit == bars) estableces ExtBuffer1[0] = 1 .1*ExtBuffer1[1] .

Pero para los siguientes ticks (cuando límite == 1) estableces ExtBuffer1 [0] = 1.1*0.00001 .

Razón de la queja: