Propiedades de gráficos

Los identificadores de la familia de enumeraciones ENUM_CHART_PROPERTY se usan como parámetros de las funciones para trabajar con gráfico. Las siglas r/o en la columna "Tipo de la propiedad" significa que dicha propiedad está destinada únicamente para la lectura y no puede ser cambiada. Las siglas w/o en la columna "Tipo de la propiedad" significa que dicha propiedad está destinada únicamente para la escritura y no puede ser obtenida. A la hora de acceder a algunas propiedades, es necesario indicar el parámetro-modificador adicional (modifier) que sirve para especificar el número de subventana del gráfico. 0 significa la ventana principal.

Las funciones que establecen las propiedades de los gráficos sirven principalmente para mandarle los comandos para el cambio. Cuando estas funciones se ejecuten con éxito, el comando se coloca en la cola general de los eventos del gráfico. El cambio del gráfico se realiza durante el procesamiento de la cola de eventos de este gráfico.

Por esta razón no hay que esperar la modificación visual inmediata del gráfico tras la llamada de estas funciones. En general la actualización del gráfico se realiza por el terminal de forma automática según los eventos del cambio, es decir: la llegada de una nueva cotización, cambio del tamaño de la ventana, etc.

Para la actualización forzosa de la apariencia del gráfico, se utiliza el comando de redibujo del gráfico ChartRedraw().

Para las funciones ChartSetInteger() y ChartGetInteger()

ENUM_CHART_PROPERTY_INTEGER

Identificador

Descripción

Tipo de la propiedad

CHART_SHOW

Dibujado del gráfico de precio. Si se establece false, se desactivará el dibujado de cualquier atributo del gráfico de precio y se eliminarán los bordes del gráfico: la escala de tiempo y precio, la barra de navegación rápida, los eventos del Calendario, los signos de las operaciones, las sugerencias de los indicadores y barras, las subventanas de los indicadores, los histogramas de volumen, etcétera.

La desactivación del dibujado es una solución ideal para crear una interfaz de programa personalizada usando los recursos gráficos

Los objetos gráficos se dibujan siempre, independientemente del valor establecido en la propiedad CHART_SHOW.

bool

CHART_IS_OBJECT

Indicio para la identificación del objeto "Gráfico" (OBJ_CHART) — para un objeto gráfico devuelve true. Para el gráfico real devuelve false

bool   r/o

CHART_BRING_TO_TOP

Visualización del gráfico por encima de los demás

bool  

CHART_CONTEXT_MENU

Activar/desactivar el acceso al menú contextual pulsando el botón derecho del ratón.

El valor CHART_CONTEXT_MENU=false solo desactiva  el menú contextual del gráfico, en este caso, además, el menú contextual para los objetos en el gráfico permanece accesible.

bool  (valor por defecto true)

CHART_CROSSHAIR_TOOL

Activar/desactivar el acceso al instrumento "Cursor en cruz" pulsando el botón medio del ratón

bool  (valor por defecto true)

CHART_MOUSE_SCROLL

Desplazamiento del gráfico por la horizontal usando el botón izquierdo del ratón. Desplazamiento por la vertical también estará disponible si el valor de cualquiera de las siguientes tres propiedades está establecido en true: CHART_SCALEFIX, CHART_SCALEFIX_11 o CHART_SCALE_PT_PER_BAR

Con CHART_MOUSE_SCROLL=false, el desplazamiento del gráfico con la rueda del ratón no estará disponible

bool

CHART_EVENT_MOUSE_WHEEL

Envía a todos los programas mql5 en el gráfico mensajes sobre los eventos de la rueda del ratón (CHARTEVENT_MOUSE_WHEEL)

bool  (valor por defecto true)

CHART_EVENT_MOUSE_MOVE

Envía una notificación sobre los eventos de desplazamiento y pulsación de los botones del ratón (CHARTEVENT_MOUSE_MOVE) a todos los programas mql5 presentes en el gráfico

bool

CHART_EVENT_OBJECT_CREATE

Envía una notificación sobre el evento de creación de nuevo objeto gráfico (CHARTEVENT_OBJECT_CREATE) a todos los programas mql5 presentes en el gráfico

bool

CHART_EVENT_OBJECT_DELETE

Envía una notificación sobre el evento de eliminación de un objeto gráfico (CHARTEVENT_OBJECT_DELETE) a todos los programas mql5 presentes en el gráfico

bool

CHART_MODE

Tipo de gráfico (velas, barras o líneas)

enum     ENUM_CHART_MODE

CHART_FOREGROUND

Gráfico de precio en el fondo

bool

CHART_SHIFT

Modo de sangría del gráfico de precio desde el lado derecho

bool

CHART_AUTOSCROLL

Modo automático de traspaso al lado derecho del gráfico

bool

CHART_KEYBOARD_CONTROL

Autorización para controlar el gráfico usando las teclas  ("Home", "End", "PageUp", "+", "-", "Flecha arriba", etcétera). La definición CHART_KEYBOARD_CONTROL=false permite desactivar el desplazamiento y el escalado del gráfico, pero manteniendo intacta la posibilidad de obtener los eventos de pulsación de estas teclas en OnChartEvent().

bool

CHART_QUICK_NAVIGATION

Permite al gráfico interceptar las teclas Space y Enter para activar la barra de navegación rápida. La barra de navegación rápida aparece de forma automática debajo del gráfico al hacer doble click con el ratón o presionar las teclas Space/Enter. De este modo, es posible alternar rápidamente el símbolo, el marco temporal y la fecha de la primera barra visible.

bool

CHART_SCALE

Escala

int         de 0 a 5

CHART_SCALEFIX

Modo de escala fija

bool

CHART_SCALEFIX_11

Modo de escala 1:1

bool

CHART_SCALE_PT_PER_BAR

Modo de especificar la escala en puntos por barra

bool

CHART_SHOW_TICKER

Representa el ticker de un símbolo en la esquina superior izquierda. Si establecemos CHART_SHOW_TICKER en el valor false, CHART_SHOW_OHLC también se establecerá temporalmente en el valor false, además de desactivarse la muestra de OHLC

bool

CHART_SHOW_OHLC

Representa los valores de OHLC en la esquina superior izquierda. Si establecemos CHART_SHOW_OHLC en el valor true, CHART_SHOW_TICKER también se establecerá temporalmente en el valor true, además de activarse la muestra del ticker

bool

CHART_SHOW_BID_LINE

Muestra del valor Bid con una línea horizontal en el gráfico

bool

CHART_SHOW_ASK_LINE

Muestra del valor Ask con una línea horizontal en el gráfico

bool

CHART_SHOW_LAST_LINE

Muestra del valor Last con una línea horizontal en el gráfico

bool

CHART_SHOW_PERIOD_SEP

Muestra de separadores verticales entre períodos adyacentes

bool

CHART_SHOW_GRID

Muestra de rejilla en el gráfico

bool

CHART_SHOW_VOLUMES

Muestra de volúmenes en el gráfico

enum     ENUM_CHART_VOLUME_MODE

CHART_SHOW_OBJECT_DESCR

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

bool

CHART_SHOW_TRADE_HISTORY

Mostrar las transacciones de la historia comercial como flechas de entrada/salida en un gráfico. Consulte las descripciones de la opción "Mostrar historia comercial" en los ajustes de la plataforma.

 

CHART_VISIBLE_BARS

Cantidad de barras en el gráfico disponibles para ser mostrados

int       r/o

CHART_WINDOWS_TOTAL

Número total de las ventanas del gráfico, incluyendo las subventanas de indicadores

int r/o

CHART_WINDOW_IS_VISIBLE

Visibilidad de subventanas

bool r/o   modificador - número de subventana

CHART_WINDOW_HANDLE

Manejador (handle) del gráfico (HWND)

int r/o

CHART_WINDOW_YDISTANCE

Distancia en píxeles por el eje vertical Y entre el marco superior de la subventana del indicador y el marco superior de la ventana principal del gráfico. En caso del evento del ratón, las coordinadas del cursor se pasan en términos de las coordinadas de la ventana principal del gráfico, mientras que las coordinadas de los objetos gráficos en la subventana del indicador se establecen respecto a la esquina superior izquierda de la subventana.

El valor es necesario para convertir las coordinadas absolutas del gráfico principal a las coordinadas locales de la subventana para un trabajo correcto con los objetos gráficos cuyas coordinadas se establecen respecto a la esquina superior izquierda del cuadro de la subventana.

int r/o   modificador - número de subventana

CHART_FIRST_VISIBLE_BAR

Número de la primera barra visible en el gráfico. Indexación de las barras corresponde a la serie temporal.

int r/o

CHART_WIDTH_IN_BARS

El ancho del gráfico en barras

int r/o

CHART_WIDTH_IN_PIXELS

El ancho del gráfico en píxeles

int r/o

CHART_HEIGHT_IN_PIXELS

El alto del gráfico en píxeles

int    modificador - número de subventana

CHART_COLOR_BACKGROUND

Color del fondo del gráfico

color

CHART_COLOR_FOREGROUND

Color de ejes, escala y línea OHLC

color

CHART_COLOR_GRID

Color de rejilla

color

CHART_COLOR_VOLUME

Color de volúmenes y niveles de apertura de posiciones

color

CHART_COLOR_CHART_UP

Color de barra al alza, sombras y bordes del cuerpo de la vela de toro

color

CHART_COLOR_CHART_DOWN

Color de barra a la baja, sombras y bordes del cuerpo de la vela de oso

color

CHART_COLOR_CHART_LINE

Color de la línea del gráfico y de las velas japonesas "Doji"

color

CHART_COLOR_CANDLE_BULL

Color del cuerpo de la vela toro

color

CHART_COLOR_CANDLE_BEAR

Color del cuerpo de la vela oso

color

CHART_COLOR_BID

Color de la línea Bid-precio

color

CHART_COLOR_ASK

Color de la línea Ask-precio

color

CHART_COLOR_LAST

Color de la línea de precio de la última transacción realizada (Last)

color

CHART_COLOR_STOP_LEVEL

Color de los niveles de stop-órdenes (Stop Loss y Take Profit)

color

CHART_SHOW_TRADE_LEVELS

Visualiza en el gráfico los niveles comerciales (niveles de posiciones abiertas, Stop Loss, Take Profit y ordenes pendientes)

bool

CHART_DRAG_TRADE_LEVELS

Permiso para arrastrar los niveles de trading por el gráfico utilizando el ratón. Por defecto, el modo de arrastre está activado (valor true)

bool

CHART_SHOW_DATE_SCALE

Visualiza la escala de tiempo en el gráfico

bool

CHART_SHOW_PRICE_SCALE

Visualiza la escala de precios en el gráfico

bool

CHART_SHOW_ONE_CLICK

Visualización del panel del trading rápido en el gráfico (opción "Trading con un clic")

bool

CHART_IS_MAXIMIZED

La ventana del gráfico está maximizada

bool  r/o

CHART_IS_MINIMIZED

La ventana del gráfico está minimizada

bool  r/o

CHART_IS_DOCKED

La ventana del gráfico está fijada. Si establecemos el valor false, el gráfico se podrá arrastrar fuera de los límites del terminal

bool

CHART_FLOAT_LEFT

Coordenada izquierda del gráfico desprendido con respecto a la pantalla virtual

int

CHART_FLOAT_TOP

Coordenada superior del gráfico desprendido con respecto a la pantalla virtual

int

CHART_FLOAT_RIGHT

Coordenada derecha del gráfico desprendido con respecto a la pantalla virtual

int

CHART_FLOAT_BOTTOM

Coordenada inferior del gráfico desprendido con respecto a la pantalla virtual

int

Para las funciones ChartSetDouble() y ChartGetDouble()

ENUM_CHART_PROPERTY_DOUBLE

Identificador

Descripción

Tipo de la propiedad

CHART_SHIFT_SIZE

Tamaño de sangría de la barra cero desde el lado derecho en por cientos

double  (de 10 a 50 por ciento)

CHART_FIXED_POSITION

Situación de la posición fija del gráfico desde el lado izquierdo en por cientos. La posición fija del gráfico está marcada con un pequeño triángulo gris sobre el eje horizontal de tiempo. Se muestra sólo si está desactivado el desplazamiento automático hacia la derecha con la llegada de un nuevo tick (ver la propiedad CHART_AUTOSCROLL). Cuando aumentamos o disminuimos el zoom, la barra que se encuentra en la posición fija se queda en el mismo sitio.

double

CHART_FIXED_MAX

Máximo fijo del gráfico

double

CHART_FIXED_MIN

Mínimo fijo del gráfico

double

CHART_POINTS_PER_BAR

Valor de la escala en puntos por barra

double

CHART_PRICE_MIN

Mínimo del gráfico

double r/o   modificador - número de subventana

CHART_PRICE_MAX

Máximo del gráfico

double r/o   modificador - número de subventana

Par la función ChartSetString() y ChartGetString()

ENUM_CHART_PROPERTY_STRING

Identificador

Descripción

Tipo de la propiedad

CHART_COMMENT

Texto del comentario en el gráfico

string

CHART_EXPERT_NAME

Nombre del Expert Advisor ejecutado en el gráfico con el chart_id definido

string r/o

CHART_SCRIPT_NAME

Nombre del script ejecutado en el gráfico con el chart_id definido

string r/o

Ejemplo:

   int chartMode=ChartGetInteger(0,CHART_MODE);
   switch(chartMode)
     {
      case(CHART_BARS):    Print("CHART_BARS");   break;
      case(CHART_CANDLES): Print("CHART_CANDLES");break;
      default:Print("CHART_LINE");
     }
   bool shifted=ChartGetInteger(0,CHART_SHIFT);
   if(shifted) Print("CHART_SHIFT = true");
   else Print("CHART_SHIFT = false");
   bool autoscroll=ChartGetInteger(0,CHART_AUTOSCROLL);
   if(autoscroll) Print("CHART_AUTOSCROLL = true");
   else Print("CHART_AUTOSCROLL = false");
   int chartHandle=ChartGetInteger(0,CHART_WINDOW_HANDLE);
   Print("CHART_WINDOW_HANDLE = ",chartHandle);
   int windows=ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   Print("CHART_WINDOWS_TOTAL = ",windows);
   if(windows>1)
     {
      for(int i=0;i<windows;i++)
        {
         int height=ChartGetInteger(0,CHART_HEIGHT_IN_PIXELS,i);
         double priceMin=ChartGetDouble(0,CHART_PRICE_MIN,i);
         double priceMax=ChartGetDouble(0,CHART_PRICE_MAX,i);
         Print(i+": CHART_HEIGHT_IN_PIXELS = ",height,"pixels");
         Print(i+": CHART_PRICE_MIN = ",priceMin);
         Print(i+": CHART_PRICE_MAX = ",priceMax);
        }
     }

Véase también

Ejemplos de trabajo con el gráfico