Actualizar la ventana del gráfico - página 3

 
Hola chicos, está funcionando bien. Gracias de nuevo,,,
 
phy:

¿Qué es la GV?

Lo que he estado haciendo recientemente, es algo como esto

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){

Redibuja la parte visible del indicador en cada tick, pero no las barras que están fuera de la vista.

Hola, phy.....

Incluso tengo el mismo problema que el anterior, tengo que cambiar el marco de tiempo manualmente y luego me da un estado de actualización del indicador.....

Como soy nuevo en la codificación no sé dónde añadir la línea mágica................

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){

Plesae sugiere....

Gracias... un .....lot.

Harry.

 
brspMA:
Hola chicos está funcionando bien. gracias de nuevo,,,

Hola, brspMA,

Incluso tengo el mismo problema .........

Puede u guiarme donde añadir esa cal...

Gracias......

 
  1. ¿Por qué estás posteando en un hilo de hace cinco años? ¿Realmente esperas que alguien que no ha publicado en años responda?
  2. for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
    Ya has dibujado todas las barras, así que sólo la barra cero está cambiando. ¿Qué sentido tiene volver a dibujar las barras visibles?
  3. Un cambio de marco de tiempo, actualización del gráfico, etc ya es manejado por IndicatorCounted, no se necesita código adicional, excepto el -1 que falta - la barra más a la izquierda es Bars-1
  4. hp69: Incluso yo tengo el mismo problema.........
    Si tu indicador no se actualiza sin refrescarse, el problema es que tu indicador está roto. Cambiar ese bucle NO ayudará. Debes arreglar el indicador. Sólo la primera vez (y el refresco) dibujará todas las barras. La mayoría de los otros ticks Bars-1-IndicatorCounted() serán cero. El bucle se ejecuta una vez. Está utilizando variables no inicializadas en lugar de valores guardados en buffers, desde la barra anterior. Si no puedes resolverlo, abre un post NUEVO con tu código.
  5. Hp69 No hagas doble post
 


Fecha de inicio del hilo - 2007.11.29
 

WHRoeder- ¿Por qué estás publicando en un hilo de hace cinco años?

RaptorUK - Fecha de inicio del hilo - 2007.11.29

============================

¿Qué hay de malo en responder a hilos antiguos?

Google no discrimina el contenido con respecto a la cronología (a no ser que se usen filtros), así que no hay nada malo en ayudar a otros que se encuentran con hilos a través de los motores de búsqueda.

¿Acaso los mods van a una escuela donde les enseñan a vilipendiar y condenar a los noobs?

 
FlatFap:

WHRoeder - ¿Por qué estás publicando en un hilo de hace cinco años?

RaptorUK - Fecha de inicio del hilo - 2007.11.29

============================

¿Qué hay de malo en responder a hilos antiguos?

Google no discrimina el contenido con respecto a la cronología (a no ser que se utilicen filtros), así que no hay nada malo en ayudar a otros que se encuentran con hilos a través de los motores de búsqueda.

¿Acaso los mods van a una escuela donde les enseñan a vilipendiar y condenar a los noobs?

En principio, no hay nada malo en responder a un hilo antiguo.

Son las respuestas como la tuya, que no tienen nada que ver con el tema, las que molestan a los demás.

Además, las respuestas a una pregunta de hace 5 años no suelen ser útiles ya que mql4 evoluciona con el tiempo. Traer un hilo antiguo a la parte superior de la lista a menudo significa que los noobs están leyendo información que ya no es relevante.

 
FlatFap, no tienes que desanimarte. No pasa nada por responder a un hilo antiguo. El mismo hecho de que Google puso este hilo en la parte superior de su lista de búsqueda significa que este es el más cercano posible a lo que usted está buscando. MQL4 está evolucionando al igual que cualquier otra aplicación, pero la mayoría de las funciones de comando no cambian todos los días, y con un poco de ensayo y error y la investigación adicional, usted puede obtener su solución deseada. Buena suerte.
 

Es posible que tengamos que redibujar un indicador, pero no sabemos cuántas barras tenemos que redibujar. Si creamos un indicador fractal, tenemos que recalcular las tres últimas barras, porque la tercera barra puede convertirse en un fractal si las 2 barras siguientes de la izquierda cumplen las reglas. He creado un indicador que marcará un nivel de soporte o resistencia cuando se rompa. Sin embargo, esto podría añadirse después de 10 barras o después de 1000 barras. Así que no sabemos realmente cuántas barras tenemos que recalcular. Y si recalculamos todas las barras en cada tick, normalmente tendremos que limitar nuestro indicador a las últimas 500 o 1000 barras.

También es posible refrescar el gráfico para que recalcule todas las barras de nuestro indicador. Pero, ¿cómo lo hacemos de forma programada? WindowsRedraw() y ChartRedraw() no activan la actualización del indicador. Si cambiamos de marco temporal y volvemos, el indicador se recalculará, como se describe en el primer post. Podemos poner un Expert con un manejador CHARTEVENT_CLICK en nuestro gráfico y luego llamar al método ChartSetSymbolPeriod(0, NULL, 0). Esto establecerá el gráfico en el período real del símbolo y realmente permitirá que el indicador se recalcule automáticamente cada vez que hagamos clic en el gráfico. el uso de un evento de clic es sólo un ejemplo y usted puede utilizarlo de la manera que desee.

 

Al final del código del indicador poner "ChartNavigate(0,CHART_CURRENT_POS,0);"

{

...

ChartNavigate(0,CHART_CURRENT_POS,0);

return(rates_total);

}

Razón de la queja: