Desacoplar la ventana del gráfico

Las ventanas de gráficos del terminal pueden desacoplarse de la ventana principal, tras lo cual pueden moverse a cualquier lugar del escritorio, incluidos otros monitores. MQL5 permite averiguar y cambiar esta configuración: las propiedades correspondientes se incluyen en la enumeración ENUM_CHART_PROPERTY_INTEGER.

Identificador

Descripción

Tipo de valor

CHART_IS_DOCKED

La ventana del gráfico está acoplada (true por defecto). Si se establece en false, el gráfico puede arrastrarse fuera del terminal

bool

CHART_FLOAT_LEFT

Coordenada izquierda del gráfico desacoplado respecto a la pantalla virtual

int

CHART_FLOAT_TOP

Coordenada superior del gráfico desacoplado respecto a la pantalla virtual

int

CHART_FLOAT_RIGHT

Coordenada derecha del gráfico desacoplado respecto a la pantalla virtual

int

CHART_FLOAT_BOTTOM

Coordenada inferior del gráfico desacoplado respecto a la pantalla virtual

int

Establezcamos el seguimiento de estas propiedades en el script ChartDock.mq5.

void OnStart()
{
   const int flags[] =
   {
      CHART_IS_DOCKED,
      CHART_FLOAT_LEFTCHART_FLOAT_TOPCHART_FLOAT_RIGHTCHART_FLOAT_BOTTOM
   };
   ChartModeMonitor m(flags);
   ...
}

Si ahora ejecuta el script y, a continuación, desacopla el gráfico mediante el menú contextual (desactive el comando switch Docked) y mueve o cambia el tamaño del gráfico, los registros correspondientes se añadirán al diario.

Initial state:
    [key] [value]
[0]    51       1
[1]    52       0
[2]    53       0
[3]    54       0
[4]    55       0
                              // undocked
CHART_IS_DOCKED 1 -> 0
CHART_FLOAT_LEFT 0 -> 299
CHART_FLOAT_TOP 0 -> 75
CHART_FLOAT_RIGHT 0 -> 1263
CHART_FLOAT_BOTTOM 0 -> 472
                              // changed the vertical size
CHART_FLOAT_BOTTOM 472 -> 500
CHART_FLOAT_BOTTOM 500 -> 539
                              // changed the horizontal size
CHART_FLOAT_RIGHT 1263 -> 1024
CHART_FLOAT_RIGHT 1024 -> 1023
                              // docked back
CHART_IS_DOCKED 0 -> 1

Esta sección completa la descripción de las propiedades gestionadas a través de las funciones ChartGet y ChartSet, así que vamos a resumir el material utilizando un script común ChartFullSet.mq5. Realiza un seguimiento del estado de todas las propiedades de todos los tipos. La inicialización del array de banderas se realiza simplemente rellenando los índices sucesivos en un bucle. El valor máximo se toma con un margen en caso de nuevas propiedades, y los números extra no existentes serán descartados automáticamente por la comprobación integrada en la clase ChartModeMonitorBase (recuerde el método detect).

Después de activar el script, intente cambiar cualquier configuración mientras observa los mensajes del programa en el registro.