Gestionar la visibilidad de los elementos del gráfico

Un amplio conjunto de propiedades de ENUM_CHART_PROPERTY_INTEGER controla la visibilidad de los elementos del gráfico. Casi todos ellos son de tipo booleano: true corresponde a mostrar el elemento, y false corresponde a ocultarlo. La excepción es CHART_SHOW_VOLUMES, que utiliza la enumeración ENUM_CHART_VOLUME_MODE (véase más abajo).

Identificador

Descripción

Tipo de valor

CHART_SHOW

Visualización general del gráfico de precios. Si se establece en false, se desactiva la representación de cualquier atributo del gráfico de precios y se elimina todo el relleno a lo largo de los bordes del gráfico: escalas de tiempo y precio, barra de navegación rápida, marcadores de eventos del calendario, iconos de operaciones, información sobre herramientas de indicadores y barras, subventanas de indicadores, histogramas de volumen, etc.

bool

CHART_SHOW_TICKER

Mostrar el ticker del símbolo en la esquina superior izquierda. Al desactivar el ticker se desactiva automáticamente OHLC (CHART_SHOW_OHLC)

bool

CHART_SHOW_OHLC

Muestra los valores OHLC en la esquina superior izquierda. Al activar OHLC se activa automáticamente el ticker (CHART_SHOW_TICKER)

bool

CHART_SHOW_BID_LINE

Mostrar el valor de la oferta como una línea horizontal

bool

CHART_SHOW_ASK_LINE

Mostrar el valor Ask como una línea horizontal

bool

CHART_SHOW_LAST_LINE

Mostrar el valor Last como una línea horizontal

bool

CHART_SHOW_PERIOD_SEP

Mostrar separadores verticales entre periodos adyacentes

bool

CHART_SHOW_GRID

Mostrar cuadrícula en el gráfico

bool

CHART_SHOW_VOLUMES

Mostrar volúmenes en un gráfico

ENUM_CHART_VOLUME_MODE

CHART_SHOW_OBJECT_DESCR

Mostrar descripciones de texto de los objetos (las descripciones no se muestran para todos los tipos de objetos)

bool

CHART_SHOW_TRADE_LEVELS

Mostrar niveles de trading en el gráfico (niveles de posiciones abiertas, Stop Loss, Take Profit y órdenes pendientes).

bool

CHART_SHOW_DATE_SCALE

Mostrar la escala de fechas en el gráfico

bool

CHART_SHOW_PRICE_SCALE

Mostrar la escala de precios en el gráfico

bool

CHART_SHOW_ONE_CLICK

Mostrar el panel de trading rápido en el gráfico (opción «trading con un clic»)

bool

Banderas del cuadro de diálogo de configuración para algunas propiedades ENUM_CHART_PROPERTY_INTEGER

Banderas del cuadro de diálogo de configuración para algunas propiedades ENUM_CHART_PROPERTY_INTEGER

Algunas de estas propiedades están disponibles para el usuario desde el menú contextual del gráfico, mientras que otras sólo están disponibles desde el cuadro de diálogo de configuración. También hay ajustes que sólo se pueden cambiar desde MQL5; en concreto, la visualización de las escalas vertical (CHART_SHOW_DATE_SCALE) y horizontal (CHART_SHOW_DATE_SCALE), así como la visibilidad de todo el gráfico (CHART_SHOW). Cabe destacar especialmente el último caso, ya que desactivar la renderización es la solución ideal para crear su propia interfaz de programa utilizando recursos gráficos y objetos gráficos, que siempre se muestran, independientemente del valor de CHART_SHOW.

El libro viene con el script ChartBlackout.mq5, que cambia el modo CHART_SHOW de actual a inverso en cada ejecución.

void OnStart()
{
   ChartSetInteger(0CHART_SHOW, !ChartGetInteger(0CHART_SHOW));
}

Así, puede aplicarlo en un gráfico normal para borrar completamente la ventana y, a continuación, volver a aplicarlo para restaurar el aspecto anterior.

La mencionada enumeración ENUM_CHART_VOLUME_MODE contiene los siguientes miembros:

Identificador

Descripción

Valor

CHART_VOLUME_HIDE

Los volúmenes están ocultos.

0

CHART_VOLUME_TICK

Volúmenes de ticks

1

CHART_VOLUME_REAL

Volúmenes de trading (en su caso)

2

De forma similar al script ChartMode.mq5, implementamos un monitor de visibilidad para los elementos del gráfico en el script ChartElements.mq5. La principal diferencia radica en los distintos conjuntos de banderas controladas.

void OnStart()
{
   int flags[] =
   {
      CHART_SHOW,
      CHART_SHOW_TICKERCHART_SHOW_OHLC,
      CHART_SHOW_BID_LINECHART_SHOW_ASK_LINECHART_SHOW_LAST_LINE,
      CHART_SHOW_PERIOD_SEPCHART_SHOW_GRID,
      CHART_SHOW_VOLUMES,
      CHART_SHOW_OBJECT_DESCR,
      CHART_SHOW_TRADE_LEVELS,
      CHART_SHOW_DATE_SCALECHART_SHOW_PRICE_SCALE,
      CHART_SHOW_ONE_CLICK
   };
   ...

Además, tras crear una copia de seguridad de la configuración, desactivamos intencionadamente las escalas de tiempo y los precios mediante programación (cuando finalice el script, los restaurará a partir de la copia de seguridad).

   ...
   m.backup();
   
   ChartSetInteger(0CHART_SHOW_DATE_SCALEfalse); 
   ChartSetInteger(0CHART_SHOW_PRICE_SCALEfalse);
   ... 
}

A continuación se muestra un fragmento del registro con comentarios sobre las acciones realizadas. Las dos primeras entradas aparecieron exactamente porque las escalas se desactivaron en el código MQL después de crear la copia de seguridad inicial.

CHART_SHOW_DATE_SCALE 1 -> 0 // disabled the time scale in the MQL5 code
CHART_SHOW_PRICE_SCALE 1 -> 0 // disabled the price scale in the MQL5 code
CHART_SHOW_ONE_CLICK 0 -> 1 // disabled "One click trading"
CHART_SHOW_GRID 1 -> 0 // disable "Grid"
CHART_SHOW_VOLUMES 0 -> 2 // showed real "Volumes"
CHART_SHOW_VOLUMES 2 -> 1 // showed "Tick volumes"
CHART_SHOW_TRADE_LEVELS 1 -> 0 // disabled "Trade levels"