Por favor, dé más libertad para gestionar las ventanas del gráfico - página 6

 
barabashkakvn:
¿Y cómo se hace para que el "Crosshair" funcione en un objeto del gráfico - es decir, cuando se hace el crosshair sobre un objeto del gráfico, los datos OHLC se muestran en la barra de estado?
No he intentado hacerlo. Quizás sea posible con estas funciones:ChartXYToTimePrice() y ChartTimePriceToXY().
 
tol64:
No he intentado hacerlo. Quizás sea posible con estas funciones:ChartXYToTimePrice() y ChartTimePriceToXY().
Es posible, parece, sólo que no hay acceso a la línea de estado. Quiero una imitación completa del "Crosshair" en el objeto gráfico, para que funcione como en un gráfico normal - con la visualización en la barra de estado.
 
barabashkakvn:
Eso es posible, creo, excepto que no hay acceso a la barra de estado. Me gustaría una imitación completa de "Crosshair" en el objeto gráfico, para que funcione como un gráfico normal - con visualización en la barra de estado.

A continuación, hay que desarrollar más los objetos gráficos. Soy partidario de tener tantas posibilidades como sea posible tanto con los objetos gráficos como con las ventanas gráficas. No veo ninguna razón para estar en contra, sólo por estar en contra. ;)

Una buena cosa sería recoger todos los casos en los que se necesitan unas u otras características en relación con este tema, y presentarlos en el primer puesto de la encuesta. La encuesta debería ser ilimitada en el tiempo. De lo contrario, a menudo se hunden y poca gente los ve debido a que tal vez no miran el foro a menudo.

 
Te sugiero que pongas aquí todos los casos en los que necesites algún tipo de ventana o función de gráfico ahora mismo. Discutamos. Creo que podemos hacer una encuesta de largo alcance, y luego podemos mover todo este hilo a la encuesta.
 

De todos modos, aquí hay un semi-reemplazo de los controles de la ventana de gráficos:

 

Cuando el cursor se desplaza sobre un gráfico normal, la barra de estado muestra los valores OH LC, pero cuando el cursor se desplaza sobre un objeto del gráfico, los valores OHLC no se traducen en la barra de estado. Dado que MQL no da acceso a la barra de estado, tenemos que idear una barra de estado de reemplazo para el objeto gráfico.

Hasta ahora se me ocurren las etiquetas de texto OBJ_LABEL.

 
barabashkakvn:

Cuando el cursor se desplaza sobre un gráfico normal, la barra de estado muestra los valores OH LC, pero cuando el cursor se desplaza sobre un objeto del gráfico, los valores OHLC no se traducen en la barra de estado. Dado que MQL no da acceso a la barra de estado, tenemos que idear una barra de estado de reemplazo para el objeto gráfico.

Hasta ahora se me ocurren las etiquetas de texto OBJ_LABEL.

Nuestro soporte técnico ha respondido que no será posible transmitir los valores OHLC de las barras de objetos OBJ_CHART a la barra de estado. Por lo tanto, tendremos que implementar nuestra propia barra de estado:

Su propia barra de estado

 

Con la colocación de la barra de estado (en forma de OBJ_BITMAP_LABEL), se ha producido un error: el objeto se renderiza dejando una barra de un píxel debajo.

Configuración de OBJ_BITMAP_LABEL:

x=0,                      // координата по оси X
y=0,                      // координата по оси Y
CORNER_LEFT_UPPER,        // угол графика для привязки
ANCHOR_LEFT_UPPER,        // способ привязки

Es decir, la etiqueta del objeto gráfico se dibuja en la parte inferior del gráfico y el centro de coordenadas está en la esquina inferior izquierda del gráfico.

De hecho, el objeto de etiqueta gráfica no se dibuja por coordenadas (0;0) sino por coordenadas (0;1) con esos ajustes.

Aquí hay una imagen que muestra una barra de 1 píxel:

Representación incorrecta de OBJ_BITMAP_LABEL

Archivos adjuntos:
 

Se aplica una plantilla con una ventana adicional al objeto gráfico y se cambia el tamaño de la ventana adicional. Después de cerrar y abrir el terminal, el objeto gráfico pone a cero la altura de la ventana adicional. ¿Es esto normal?


P.D. He adjuntado un script de prueba.

Archivos adjuntos:
test_script.mq5  13 kb
 
barabashkakvn:

Se aplica una plantilla con una ventana adicional al objeto gráfico y se cambia el tamaño de la ventana adicional. Después de cerrar y abrir el terminal, el objeto gráfico pone a cero la altura de la ventana adicional. ¿Es esto normal?

Cuando se cierra el terminal, el estado de los gráficos se guarda en los archivos chr. No se escriben todas las propiedades de los objetos gráficos destinados al control del programa, esto es normal.