- Funciones para obtener las propiedades básicas del gráfico actual
- Identificación de gráficos
- Obtener la lista de gráficos
- Obtener el símbolo y el marco temporal de un gráfico arbitrario
- Visión general de funciones para trabajar con el conjunto completo de propiedades
- Propiedades descriptivas de los gráficos
- Comprobar el estado de la ventana principal
- Obtener el número y la visibilidad de las ventanas/subventanas
- Modos de visualización de gráficos
- Gestionar la visibilidad de los elementos del gráfico
- Desplazamientos horizontales
- Escala horizontal (por tiempo)
- Escala vertical (por precio y lecturas del indicador)
- Colores
- Control del ratón y del teclado
- Desacoplar la ventana del gráfico
- Obtener las coordenadas de caída del programa MQL en un gráfico
- Conversión de coordenadas de pantalla a tiempo/precio y viceversa
- Desplazamiento de gráficos por el eje temporal
- Solicitud para volver a dibujar el gráfico
- Cambiar símbolo y marco temporal
- Gestionar indicadores en el gráfico
- Abrir y cerrar gráficos
- Trabajar con plantillas de gráficos tpl
- Guardar la imagen de un gráfico
Escala vertical (por precio y lecturas del indicador)
Las propiedades relacionadas con la escala vertical se establecen y analizan utilizando los elementos de dos enumeraciones: ENUM_CHART_PROPERTY_INTEGER y ENUM_CHART_PROPERTY_DOUBLE. En la siguiente tabla se enumeran las propiedades junto con su tipo de valor.
Algunas propiedades permiten acceder no sólo a la ventana principal sino también a una subventana, para lo cual las funciones ChartSet y ChartGet deben utilizar el parámetro window (0 significa la ventana principal y es el valor por defecto de la forma abreviada de ChartGet).
Identificador |
Descripción |
Tipo de valor |
---|---|---|
CHART_SCALEFIX |
Modo de escala fija |
bool |
CHART_FIXED_MAX |
Máximo fijo de la subventana window o máximo inicial de la ventana principal |
double |
CHART_FIXED_MIN |
Mínimo fijo de la subventana window o mínimo inicial de la ventana principal |
double |
CHART_SCALEFIX_11 |
Modo de escala 1:1 |
bool |
CHART_SCALE_PT_PER_BAR |
Modo de indicación de la escala en puntos por barra |
bool |
CHART_POINTS_PER_BAR |
Valor de la escala en puntos por barra |
double |
CHART_PRICE_MIN |
Valores mínimos en la ventana o subventana window (sólo lectura) |
double |
CHART_PRICE_MAX |
Valores máximos en la ventana o subventana window (sólo lectura) |
double |
CHART_HEIGHT_IN_PIXELS |
Altura fija de la ventana o subventana en píxeles, se requiere el parámetro window |
int |
CHART_WINDOW_YDISTANCE |
Distancia en píxeles a lo largo del eje vertical Y entre el marco superior de la subventana window y el marco superior de la ventana principal del gráfico. (sólo lectura) |
int |
Por defecto, los gráficos admiten la escala adaptativa para que las cotizaciones o las líneas indicadoras se ajusten completamente en vertical a un periodo de tiempo visible. Para algunas aplicaciones es conveniente fijar la escala, para lo cual el terminal ofrece varios modos. En ellos, el gráfico puede desplazarse con el ratón o con las teclas (Mayús + flecha) no sólo a izquierda/derecha, sino también arriba/abajo, y en la escala de la derecha aparece una barra deslizante con la que puede desplazar rápidamente el gráfico con el ratón.
El modo fijo se establece activando la bandera CHART_SCALEFIX y especificando el máximo y el mínimo requeridos en los campos CHART_FIXED_MAX y CHART_FIXED_MIN (en la ventana principal, el usuario podrá mover el gráfico hacia arriba o hacia abajo, debido a lo cual los valores CHART_FIXED_MAX y CHART_FIXED_MIN cambiarán sincrónicamente, pero la escala vertical seguirá siendo la misma). El usuario también podrá cambiar la escala vertical pulsando el botón del ratón sobre la escala de precios y, sin soltarlo, moviéndolo hacia arriba o hacia abajo. Las subventanas no permiten la edición interactiva de la escala vertical. A este respecto, más adelante presentaremos un indicador SubScaler.mq5 (véase la sección de eventos de teclado), que le permitirá al usuario controlar el rango de valores de la subventana mediante el teclado, en lugar de desde el cuadro de diálogo de configuración, utilizando los campos de la pestaña Scale.
El modo CHART_SCALEFIX_11 proporciona una igualdad visual aproximada de los lados del cuadrado en la pantalla: X barras en píxeles (horizontalmente) serán iguales a X puntos en píxeles (verticalmente). La igualdad es aproximada, ya que el tamaño de los píxeles, por regla general, no es el mismo vertical y horizontalmente.
Por último, existe un modo para fijar la relación del número de puntos por barra, que se activa mediante la opción CHART_SCALE_PT_PER_BAR, y la propia relación requerida se fija mediante la propiedad CHART_POINTS_PER_BAR. A diferencia del modo CHART_SCALEFIX, el usuario no podrá cambiar interactivamente la escala con el ratón sobre el gráfico. En este modo, la distancia horizontal de una barra se mostrará en la pantalla en la misma proporción con respecto al número especificado de puntos verticales que la relación de aspecto del gráfico (en píxeles). Si los marcos temporales y tamaños de los dos gráficos son iguales, uno se verá comprimido en precio comparado con el otro según la relación de sus valores CHART_POINTS_PER_BAR. Obviamente, cuanto más pequeño sea el marco temporal, menor será el rango de barras y, por lo tanto, con la misma escala, los marcos temporales pequeños parecen más «aplanados».
Establecer programáticamente la propiedad CHART_HEIGHT_IN_PIXELS hace imposible que el usuario edite el tamaño de la ventana/subventana. Esto suele utilizarse para ventanas que alojan paneles de trading con un conjunto predefinido de controles (botones, campos de entrada, etc.). Para eliminar la fijación del tamaño, establezca el valor de la propiedad en -1.
El valor CHART_WINDOW_YDISTANCE es necesario para convertir las coordenadas absolutas del gráfico principal en coordenadas locales de la subventana para trabajar correctamente con objetos gráficos. La cuestión es que cuando se producen eventos de ratón, las coordenadas del cursor se transfieren en relación con la ventana del gráfico principal, mientras que las coordenadas de los objetos gráficos de la subventana del indicador se establecen en relación con la esquina superior izquierda de la subventana.
Vamos a preparar el script ChartScalePrice.mq5 para analizar los cambios en las escalas y tamaños verticales.
void OnStart()
|
Esto reacciona a la manipulación del gráfico de la siguiente manera:
Initial state:
|