Solicitud para volver a dibujar el gráfico

En la mayoría de los casos, los gráficos responden automáticamente a los cambios en los datos y en la configuración del terminal, actualizando la imagen de la ventana en consecuencia (gráficos de precios, de indicadores, etc.). No obstante, los programas MQL son demasiado versátiles y pueden realizar acciones arbitrarias, para las que no es tan fácil determinar si es necesario redibujar o no. Además, analizar cualquier acción de cada programa MQL en esta cuenta puede consumir muchos recursos y causar una caída en el rendimiento general del terminal. Por lo tanto, la API de MQL5 proporciona la función ChartRedraw, con la ayuda de la cual el propio programa MQL puede, si es necesario, solicitar que se vuelva a dibujar el gráfico.

void ChartRedraw(long chartId = 0)

La función provoca un redibujado forzado del gráfico con el identificador especificado (el valor por defecto 0 significa el gráfico actual). Normalmente, se aplica después de que el programa cambie las propiedades del gráfico u objetos colocados en él.

Hemos visto un ejemplo de utilización de ChartRedraw en el indicador IndSubChart.mq5 en la sección Modos de visualización de gráficos. Se ofrecerá otro ejemplo en la sección Abrir y cerrar gráficos.

Esta función afecta exactamente al redibujado del gráfico, sin provocar el recálculo de las series temporales con cotizaciones e indicadores. La última opción para actualizar (de hecho, reconstruir) el gráfico es más «dura» y la realiza la función ChartSetSymbolPeriod (véase la sección siguiente).