- Tipos de objetos y características de la especificación de sus coordenadas
- Objetos vinculados a tiempo y precio
- Objetos vinculados a coordenadas de pantalla
- Crear objetos
- Borrar objetos
- Encontrar objetos
- Visión general de las funciones de acceso a las propiedades de los objetos
- Propiedades principales de los objetos
- Coordenadas de tiempo y precio
- Anclar la esquina de la ventana y las coordenadas de la pantalla
- Definir el punto de anclaje en el objeto
- Gestión del estado de los objetos
- Prioridad de los objetos (orden Z)
- Ajustes de visualización de objetos: color, estilo y marco
- Ajustes de fuente
- Rotar un texto en un ángulo arbitrario
- Determinar ancho y alto del objeto
- Visibilidad de los objetos en el contexto de marcos temporales
- Asignar un código de carácter a una etiqueta
- Propiedades de los rayos para objetos con líneas rectas
- Gestionar el estado pulsado de los objetos
- Ajustar imágenes en objetos bitmap
- Recortar (dar salida a parte) de una imagen
- Propiedades de los campos de entrada: alineación y sólo lectura
- Anchura del canal de desviación estándar
- Establecer niveles en objetos de nivel
- Propiedades adicionales de los objetos de Gann, Fibonacci y Elliot
- Objeto gráfico
- Mover objetos
- Obtener hora o precio en puntos de línea especificados
Mover objetos
Para mover objetos en coordenadas de tiempo/precio, puede utilizar no sólo las funciones ObjectSet de cambio de propiedades, sino también la función especial ObjectMove, que cambia las coordenadas del punto de anclaje especificado del objeto.
bool ObjectMove(long chartId, const string name, int index, datetime time, double price)
El parámetro chartId establece el ID del gráfico (0 es para el gráfico actual). El nombre del objeto se pasa en el parámetro name. Las coordenadas y el índice del punto de anclaje se especifican en los parámetros index, time y price, respectivamente.
La función utiliza una llamada asíncrona, es decir, envía una orden a la cola de eventos del gráfico y no espera al movimiento en sí.
La función devuelve una indicación de si la orden se ha puesto en cola correctamente (en este caso, el resultado es true). La posición real del objeto debe conocerse mediante llamadas a las funciones de ObjectGet.
En el indicador ObjectHighLowFibo.mq5modificamos la función DrawFibo de manera que permita ObjectMove. En lugar de dos llamadas a las funciones ObjectSet en el bucle a través de los puntos de anclaje, ahora tenemos una llamada a ObjectMove:
bool DrawFibo(const string name, const datetime &t[], const double &p[],
|
Tiene sentido aplicar la función ObjectMove cuando cambian las dos coordenadas del punto de anclaje. En algunos casos, sólo una coordenada tiene efecto (por ejemplo, en los canales de desviación estándar y regresión lineal en los puntos de anclaje, sólo son importantes las fechas/horas de inicio y fin, y los canales calculan automáticamente el valor del precio en estos puntos). En estos casos, una única llamada a la función ObjectSet es más adecuada que ObjectMove.