ObjectCreate

Crea un objeto con el nombre especificado, tipo y coordinadas iniciales en la subventana del gráfico especificada. Durante la creación se puede indicar hasta 30 coordinadas.

bool  ObjectCreate(
   long         chart_id,      // identificador del gráfico
   string       name,          // nombre del objeto
   ENUM_OBJECT  type,          // tipo de objeto
   int          sub_window,    // índice de ventana
   datetime     time1,         // hora del primer punto de anclaje
   double       price1,        // precio del primer punto de anclaje
   ...
   datetime     timeN=0,       // hora de punto de anclaje N
   double       priceN=0,      // precio de punto de anclaje N
   ...
   datetime     time30=0,      // hora del punto de anclaje 30
   double       price30=0      // precio del punto de anclaje 30
   );

Parámetros

chart_id

[in]  Identificador del gráfico. 0 significa el gráfico actual.

name

[in]  Nombre del objeto. El nombre tiene que ser único dentro de los límites de un gráfico, incluyendo sus subventanas.

type

[in]  Tipo de objeto. Su valor puede ser uno de los valores de la enumeración ENUM_OBJECT.

sub_window

[in]  Número de subventana del gráfico. 0 significa la ventana principal del gráfico. La subventana especificada debe existir, de lo contrario la función devuelve false.

time1

[in]  Coordinada de hora del primer enlace.

price1

[in]  Coordinada  de precio del primer punto de anclaje.

timeN=0

[in]  Coordinada de hora del punto de anclaje N.

priceN=0

[in]  Coordinada de precio del punto de anclaje N.

time30=0

[in]  Coordinada de hora del punto de anclaje 30.

price30=0

[in]  Coordinada de precio del punto de anclaje 30.

Valor devuelto

Retorna true en el caso de que se haya añadido con éxito el comando a la cola del gráfico indicado, de lo contrario, false. Si el objeto ya ha sido creado con anterioridad, entonces se realizará un intento de cambiar sus coordenadas.

Nota

Al llamar ObjectCreate() siempre se usa una llamada asincrónica, por eso la función retorna solo el resultado de la colocación del comando en la cola del gráfico. En este caso, true solo significa que el comando se ha puesto en la cola con éxito, el propio resultado de su ejecución aún se desconoce.

Para comprobar el resultado de la ejecución se puede usar la función ObjectFind() o cualquier función que retorne las propiedades del objeto, por ejemplo, del tipo ObjectGetXXX. Pero, en esta caso, además, se deberá tener en cuenta que estas funciones se colocan al final de la cola de comandos del gráfico y esperan el resultado de la ejecución (puesto que que son llamadas sincrónicas), es decir, pueden consumir bastante tiempo.  Hay que tener esta circunstancia en cuenta al trabajar con multitud de objetos en el gráfico.

El nombre del objeto gráfico no debe superar 63 caracteres.

La numeración de las subventanas del gráfico (si en el gráfico hay subventanas con indicadores) se empieza desde 1. Siempre existe la venta principal y tiene el índice 0.

La gran cantidad de puntos de anclaje (hasta 30) está prevista para usarlas en el futuro. Al mismo tiempo el límite de 30 posibles puntos de anclaje para los objetos gráficos se debe al hecho que durante la llamada a la función el número de parámetros no debe superar 64.

Al renombrar un objeto gráfico, se generan al mismo tiempo dos eventos que pueden ser procesados en el Asesor Experto o el indicador usando la función OnChartEvent():

  • evento de eliminación del objeto con el nombre anterior;
  • evento de creación del objeto gráfico con el nombre nuevo.

Para crear cada uno de los siguientes tipos de objetos, es necesario fijar una cierta cantidad de los puntos de anclaje:

Identificador

Descripción

Puntos de anclaje

OBJ_VLINE

Línea vertical

Un punto de anclaje. Prácticamente se utiliza sólo la coordinada del eje de tiempo.

OBJ_HLINE

Línea horizontal

Un punto de anclaje. Prácticamente se utiliza sólo la coordinada del eje de precio.

OBJ_TREND

Línea de tendencia

Dos puntos de anclaje.

OBJ_TRENDBYANGLE

Línea de tendencia por ángulo

Dos puntos de anclaje.

OBJ_CYCLES

Líneas cíclicas

Dos puntos de anclaje.

OBJ_ARROWED_LINE

Objeto "Línea con flecha"

Dos puntos de anclaje.

OBJ_CHANNEL

Canal equidistante

Tres puntos de anclaje.

OBJ_STDDEVCHANNEL

Canal de desviación estándar

Dos puntos de anclaje.

OBJ_REGRESSION

Canal de regresión lineal

Dos puntos de anclaje.

OBJ_PITCHFORK

Tridente de Andrews

Tres puntos de anclaje.

OBJ_GANNLINE

Línea de Gann

Dos puntos de anclaje.

OBJ_GANNFAN

Abanico de Gann

Dos puntos de anclaje.

OBJ_GANNGRID

Cuadrícula de Gann

Dos puntos de anclaje.

OBJ_FIBO

Niveles de Fibonacci

Dos puntos de anclaje.

OBJ_FIBOTIMES

Zonas temporales de Fibonacci

Dos puntos de anclaje.

OBJ_FIBOFAN

Abanico de Fibonacci

Dos puntos de anclaje.

OBJ_FIBOARC

Arcos de Fibonacci

Dos puntos de anclaje.

OBJ_FIBOCHANNEL

Canal de Fibonacci

Tres puntos de anclaje.

OBJ_EXPANSION

Expansión de Fibonacci

Tres puntos de anclaje.

OBJ_ELLIOTWAVE5

5 ondas de Elliott

Cinco puntos de anclaje.

OBJ_ELLIOTWAVE3

3 ondas de Elliott

Tres puntos de anclaje.

OBJ_RECTANGLE

Rectángulo

Dos puntos de anclaje.

OBJ_TRIANGLE

Triángulo

Tres puntos de anclaje.

OBJ_ELLIPSE

Elipse

Tres puntos de anclaje.

OBJ_ARROW_THUMB_UP

Signo "Bien" (pulgar arriba)

Un punto de anclaje.

OBJ_ARROW_THUMB_DOWN

Signo "Mal" (pulgar abajo)

Un punto de anclaje.

OBJ_ARROW_UP

Signo "Flecha arriba"

Un punto de anclaje.

OBJ_ARROW_DOWN

Signo "Flecha abajo"

Un punto de anclaje.

OBJ_ARROW_STOP

Signo "Stop"

Un punto de anclaje.

OBJ_ARROW_CHECK

Signo "Visto" (marca de comprobación)

Un punto de anclaje.

OBJ_ARROW_LEFT_PRICE

Etiqueta izquierda de precio

Un punto de anclaje.

OBJ_ARROW_RIGHT_PRICE

Etiqueta derecha de precio

Un punto de anclaje.

OBJ_ARROW_BUY

Signo "Buy"

Un punto de anclaje.

OBJ_ARROW_SELL

Signo "Sell"

Un punto de anclaje.

OBJ_ARROW

Objeto "Flecha"

Un punto de anclaje.

OBJ_TEXT

Objeto "Texto"

Un punto de anclaje.

OBJ_LABEL

Objeto "Etiqueta de texto"

La posición se fija utilizando las propiedades OBJPROP_XDISTANCE y OBJPROP_YDISTANCE.

OBJ_BUTTON

Objeto "Botón"

La posición se fija utilizando las propiedades OBJPROP_XDISTANCE y OBJPROP_YDISTANCE.

OBJ_CHART

Objeto "Gráfico"

La posición se fija utilizando las propiedades OBJPROP_XDISTANCE y OBJPROP_YDISTANCE.

OBJ_BITMAP

Objeto "Imagen"

Un punto de anclaje.

OBJ_BITMAP_LABEL

Objeto "Etiqueta gráfica"

La posición se fija utilizando las propiedades OBJPROP_XDISTANCE y OBJPROP_YDISTANCE.

OBJ_EDIT

Objeto "Campo de edición"

La posición se fija utilizando las propiedades OBJPROP_XDISTANCE y OBJPROP_YDISTANCE.

OBJ_EVENT

Objeto "Evento" que corresponde a un evento en el calendario económico

Un punto de anclaje. Prácticamente se utiliza sólo la coordinada del eje de tiempo.

OBJ_RECTANGLE_LABEL

Objeto "Etiqueta rectangular" para crear y personalizar la interfaz gráfica de usuario.

La posición se fija utilizando las propiedades OBJPROP_XDISTANCE y OBJPROP_YDISTANCE.