Mira cómo descargar robots gratis
¡Búscanos en Facebook!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

ObjectCreateAndSet - librería para MetaTrader 5

Visualizaciones:
1300
Ranking:
(28)
Publicado:
2015.08.26 14:03
Actualizado:
2016.11.22 07:33
\MQL5\Include\ \MQL5\Scripts\
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

En el archivo adjunto, con extensión *.mqh, se encuentran unas funciones para crear diferentes objetos y/o para cambiar los valores de las propiedades de los objetos. A mí me resulta especialmente cómodo de aplicar cuando hace falta crear rápidamente algún código de prueba, donde sea necesario resgistrar sobre la marcha la creación de algunos objetos en el gráfico y/o cambiar algunas propiedades de los objetos de los que ya se dispone en el gráfico.

El otro archivo es un script con un ejemplo de prueba sobre la aplicación de las funciones del archivo adjunto (crea una etiqueta de texto, gira paulatinamente su texto 90 grados, cambiando sobre la marcha el texto y su color).

I. Funciones para la creación de objetos:

Están formados sobre la base de los que se encuentran en la Guía de MQL5. Diferencias básicas con respecto a las funciones homónimas en la guía:

  • se han añadido líneas para establecer sugerencias emergentes y líneas para elegir la configuración de la visibilidad de los objetos en diferentes marcos temporales;
  • se han quitado las líneas con las funciones de formación de objetos cuando no se establecen las coordenadas, precios, puntos de anclaje (excepto en VLineCreate(...) y EventCreate(...));
  • gracias a las funciones de configuración (cambio) de las propiedades de los objetos de las que ya se dispone en el archivo adjunto, al crear objetos se añaden condiciones adicionales de comprobación del éxito de la configuración de los valores de las propiedades.

Lista de funciones existentes en el archivo que sirven para la creación de objetos:

Nombre
Breve descripción
Tipo de objeto

VLineCreate

Crea una línea vertical

OBJ_VLINE

HLineCreate

Crea una línea horizontal

OBJ_HLINE

TrendCreate

Crea una línea de tendencia según las coordenadas establecidas

OBJ_TREND

ArrowedLineCreate

Crea una línea con flecha según las coordenadas establecidas

OBJ_ARROWED_LINE

ChannelCreate

Crea un canal equidistante según las coordenadas establecidas

OBJ_CHANNEL

RectangleCreate

Crea un rectángulo según las coordenadas establecidas

OBJ_RECTANGLE

TriangleCreate

Crea un triángulo según las coordenadas establecidas

OBJ_TRIANGLE

EllipseCreate

Crea una elipse según las coordenadas establecidas

OBJ_ELLIPSE

ArrowCreate
Crea OBJ_ARROW
OBJ_ARROW
TextCreate Crea el objeto "Texto"
OBJ_TEXT

LabelCreate

Crea una etiqueta de texto

OBJ_LABEL

ButtonCreate

Crea un botón

OBJ_BUTTON

BitmapCreate

Crea un dibujo en la ventana del gráfico

OBJ_BITMAP

BitmapLabelCreate

Crea el objeto "Etiqueta Gráfica"

OBJ_BITMAP_LABEL

EditCreate

Crea el objeto "Campo de Introducción"

OBJ_EDIT

EventCreate

Crea el objeto "Evento" en el gráfico

OBJ_EVENT

RectLabelCreate

Crea una etiqueta rectangular

OBJ_RECTANGLE_LABEL

 

II. Funciones de configuración de los valores de las propiedades:

A través de ObjectSetDouble(...), ObjectSetInteger(...) y ObjectSetString(...) sin indicar el modificador:


Nombre de la función
Enumeración
Propiedad
Breve descripción
Tipo de propiedad
1. ObSetDouble ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_SCALE Escala (propiedad de los objetos de Gann y del objeto "Arco de Fibonacci") double
OBJPROP_ANGLE
Ángulo. Para los objetos con un ángulo aún sin establecer, creados desde el programa, el valor es igual a EMPTY_VALUE
double
OBJPROP_DEVIATION Desviación para el canal de desviación estándar
double
2. ObSetIntegerAlign ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ALIGN Alineación horizontal del texto en el objeto "Campo de Introducción" (OBJ_EDIT)
ENUM_ALIGN_MODE
3. ObSetIntegerAncorPoint ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR
Posición de los puntos de anclaje de los objetos gráficos OBJ_LABEL, OBJ_BITMAP_LABEL y OBJ_TEXT
ENUM_ANCHOR_POINT
4.
ObSetIntegerArrowAncor
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ANCHOR Posición del punto de anclaje del objeto gráfico OBJ_ARROW
ENUM_ARROW_ANCHOR
5. ObSetIntegerArrowCode
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ARROWCODE Código OBJ_ARROW
char
6. ObSetIntegerBool ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_BACK
Objeto en el plano posterior
bool
OBJPROP_FILL Color de relleno del objeto (para OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL,OBJ_REGRESSION) bool
OBJPROP_HIDDEN Prohibición de mostrar el nombre del objeto gráfico en la lista de objetos del menú del terminal "Gráficos" - "Objetos" - "Lista de objetos". El valor true permite ocultar un objeto de la lista, que no sea necesario al usuario. Por defecto se establece true para los objetos que reflejan los eventos del calendario, la historia del comercio, así como para los creados del programa MQL5. Para ver tales objetos gráficos y obtener acceso a sus propiedades, hay que pulsar
el botón "Todo" en la ventana "Lista de objetos".
bool
OBJPROP_SELECTED
Destacar un objeto bool
OBJPROP_READONLY
Posibilidad de editar el texto en el objeto Edit bool
OBJPROP_SELECTABLE
Accesibilidad de un objeto bool
OBJPROP_RAY_LEFT
El rayo continúa hacia la izquierda bool
OBJPROP_RAY_RIGHT El rayo continúa hacia la derecha bool
OBJPROP_RAY La línea vertical continúa a todas las ventanas del gráfico bool
OBJPROP_ELLIPSE Representación de la elipse completa para el objeto "Arco de Fibonacci" (OBJ_FIBOARC) bool
OBJPROP_DRAWLINES Representación de las líneas para la marcación de las ondas de Elliott bool
OBJPROP_STATE Estado del botón (Pulsado/Sin pulsar) bool
OBJPROP_DATE_SCALE Rasgo de representación de la escala de fecha para el objeto "Gráfico" bool
OBJPROP_PRICE_SCALE Rasgo de representación de la escala de precio para el objeto "Gráfico" bool
7. ObSetIntegerBorderType ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_BORDER_TYPE
Tipo de marco para el objeto "Marco rectangular"
ENUM_BORDER_TYPE
8. ObSetIntegerColor ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_COLOR Color (dependiendo del tipo de objeto, será el color de la línea, del texto; etcétera.) color
OBJPROP_BGCOLOR Color del fondo para OBJ_EDIT, OBJ_BUTTON, OBJ_RECTANGLE_LABEL color
OBJPROP_BORDER_COLOR Color del marco para el objeto OBJ_EDIT y OBJ_BUTTON color
9. ObSetIntegerCorner
ENUM_OBJECT_PROPERTY_INTEGER
OBJPROP_CORNER Ángulo del gráfico para el anclaje del objeto gráfico
ENUM_BASE_CORNER
10. ObSetIntegerInt ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_WIDTH Grosor de la línea int
OBJPROP_LEVELS Cantidad de niveles int
OBJPROP_FONTSIZE Tamaño de la fuente int
OBJPROP_TIMEFRAMES Visibilidad del objeto en los marcos temporales (paquete de banderas flags) int
OBJPROP_XDISTANCE Distancia en píxeles según el eje X desde el ángulo de anclaje (ver observaciones en la Guía sobre MQL5) int
OBJPROP_YDISTANCE Distancia en píxeles según el eje Y desde el ángulo de anclaje (ver observaciones en la Guía sobre MQL5)
int
OBJPROP_XSIZE Anchura del objeto según el eje X en píxeles. Se establece para los objetos OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL int
OBJPROP_YSIZE Anchura del objeto según el eje Y en píxeles. Se establece para los objetos OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT, OBJ_RECTANGLE_LABEL int
OBJPROP_XOFFSET Coordenada X del ángulo superior izquierdo de la zona rectangular de visibilidad en los objetos gráficos "Etiqueta gráfica" y "Dibujo" (OBJ_BITMAP_LABEL y OBJ_BITMAP). El valor se establece en píxeles con respecto al ángulo superior izquierdo de la imagen original int
OBJPROP_YOFFSET Coordenada del ángulo superior izquierdo de la zona rectangular de visibilidad en los objetos gráficos "Etiqueta gráfica" y "Dibujo" (OBJ_BITMAP_LABEL y OBJ_BITMAP). El valor se establece en píxeles con respecto al ángulo superior izquierdo de la imagen original int
OBJPROP_CHART_SCALE Escala para el objeto "Gráfico" (valor en el diapasón 0–5) int
11. ObSetIntegerLineStyle ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_STYLE
Estilo
ENUM_LINE_STYLE
12. ObSetIntegerLong ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_ZORDER Prioridad del objeto gráfico para recibir un evento de pulsación del ratón en el gráfico (CHARTEVENT_CLICK). Por defecto, al crear el valor, se establece uno igual a cero, pero en caso de necesidad se puede aumentar la prioridad. En caso de que los objetos se superpongan uno sobre otro, el evento CHARTEVENT_CLICK recibirá solo el objeto cuya prioridad es mayor al resto.
long

ObSetString ENUM_OBJECT_PROPERTY_STRING OBJPROP_NAME Nombre del objeto
string
OBJPROP_TEXT Descripción del objeto (texto contenido en el objeto) string
OBJPROP_TOOLTIP Texto de la sugerencia emergente. Si no se ha establecido la propiedad, entonces se mostrará la sugerencia que haya formado el terminal de manera automática. Es posible desactivar la muestra de sugerencias, estableciendo para ella el valor "\n" (cambio de la línea) string
OBJPROP_FONT Fuente string
OBJPROP_SYMBOL Símbolo para el objeto "Gráfico" string

 

A través de ObjectSetDouble(...), ObjectSetInteger(...) y ObjectSetString(...) indicando el modificador:


Nombre
Enumeración Propiedad Breve descripción Tipo de propiedad
1. ObSetDoubleMod ENUM_OBJECT_PROPERTY_DOUBLE OBJPROP_PRICE Coordenada de precio - double, modificador=número del punto de anclaje double
OBJPROP_LEVELVALUE Valor del nivel - double, modificador=número de nivel
double
2.
ObSetIntegerLevelColorMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELCOLOR Color de la línea-nivel - color, modificador=número de nivel
color
3.
ObSetIntegerLevelStyleMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELSTYLE
Estilo de la línea-nivel ENUM_LINE_STYLE, modificador=número de nivel
ENUM_LINE_STYLE
4.
ObSetIntegerLevelWidthMod
ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_LEVELWIDTH
Grosor de la línea-nivel - int, modificador=número de nivel
int
5. ObSetIntegerTimeMod ENUM_OBJECT_PROPERTY_INTEGER OBJPROP_TIME
Coordenada de fecha - datetime, modificador=número del punto de anclaje
datetime
6. ObSetStringMod ENUM_OBJECT_PROPERTY_STRING OBJPROP_LEVELTEXT Descripción del nivel - string, modificador=número de nivel string
OBJPROP_BMPFILE
Nombre del archivo BMP para el objeto "Etiqueta gráfica" - string. Mire también en la Guía: Recursos. Modificador: 0-estado ON, 1-estado OFF string

 

Funciones adicionales en el archivo:



bool ObDelete (long chart_ID,string name)
Eliminar un objeto único con un nombre conocido

 

III. Métodos de aplicación de un archivo:

Es posible usarlo como archivo incluido o simplemente copiar las funciones desde él al código creado por usted.

Con la segunda variante es cómodo, desde mi punto de vista, usarlo al crear algún código desde el inicio como un archivo incluido. Y solo después de que se hayan registrado en el código todas las llamadas a las funciones de él, a continuación se elimina del código creado la línea del enlace al archivo(#include...).

Después de esto, el compilador sugerirá rápida y concretamente qué funciones hay que copiar al código creado por usted desde archivo adjunto.

Uso como archivo incluido:

  1. Guarde el archivo adjunto de más arriba ObjectCreateAndSet.mqh en la carpeta "Include". Para pegar el archivo en esta carpeta, se la puede abrir a través del Navegador en el MetaEditor, pulsando en el Navegador en la carpeta con el nombre "Include" con el botón derecho del ratón y después pulsando en el menú que se haya abierto sobre la línea "Abrir carpeta".

  2. Al crear el código donde se usarán las funciones de este archivo, copie en la parte de más arriba del archivo la línea de #include... y péguela después en la parte superior del código creado por usted:
    #include <ObjectCreateAndSet.mqh>
    En caso de que sea necesario, en el archivo adjunto más arriba de código de prueba se puede ver dónde es posible poner aproximadamente esta línea.

  3. Después de esto, compile el código creado por usted. Esto hará posible ver la sugerencia de los nombres de las funciones existentes en al archivo unido al introducir las primeras letras de sus nombres.

Sugerencia del nombre completo de la función tras introducir las primeras letras de su nombre

Fig.1. Sugerencia emergente tras introducir las primeras letras del nombre de la función

Fig.2. Sugerencia emergente con los parámetros para la función elegida

De todas formas, les recuerdo que también es cómodo ver las funciones contenidas en algún archivo concreto a través de la Lista de funciones, en el panel de instrumentos de MetaEditor:

Fig.3. Botón para la llamada de la lista de funciones contenidas en un archivo

Consecuentemente, al pulsar el botón de llamada de la lista de funciones del archivo adjunto, aparecerá una ventana con la lista de las funciones existentes en este archivo. Para pasar rápidamente al código de alguna función, simplemente pulse sobre su nombre en la lista que aparecerá.

Fig.4. Después de pulsar el botón de llamada de la lista de funciones, se abrela lista de funciones en el archivo (resulta cómodo para pasar rápidamente al código de alguna función y/o simplemente para ver las existentes)

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/13374

ColorLinearRegSlope_V2_HTF ColorLinearRegSlope_V2_HTF

Indicador ColorLinearRegSlope_V2 con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

ColorLeManTrend_HTF ColorLeManTrend_HTF

Indicador ColorLeManTrend con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

ColorMomentum_AMA_HTF ColorMomentum_AMA_HTF

Indicador ColorMomentum_AMA con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.

ColorMaRsi-Trigger_HTF ColorMaRsi-Trigger_HTF

Indicador ColorMaRsi-Trigger con posibilidad de cambiar el marco temporal del indicador en los parámetros de entrada.