Cotizaciones máximas y mínimas visibles - página 4

 
El usuario utiliza графики с отступами от правого края. Сколько баров отображается на таком графике ? Una constante geométrica pura, independiente de los períodos, la historia, el desplazamiento y todo lo demás.
¿Y si lo piensas?
Supongamos que el gráfico se desplaza hacia la derecha todo lo posible, entonces la sangría es visible y hay, por ejemplo, 100 barras en el gráfico.
Pero si desplazamos el gráfico hacia la izquierda para sangrar, mostrará 100 + tantas barras como quepan en la sangría.
 
Supongamos que el gráfico se desplaza hacia la derecha todo lo posible, entonces la sangría es visible y hay, por ejemplo, 100 barras en el gráfico. <br/ translate="no"> Pero si desplazamos el gráfico hacia la izquierda para sangrarlo, habrá 100 + tantas barras como permita la sangría.


No es interesante rebobinar el gráfico a mano.


Qué funciones y bibliotecas del sistema deben conectarse a
- obtener el tamaño vertical y horizontal del gráfico actual en píxeles;

1. GetClientRect de user32.dll


No tengo ninguna experiencia en la importación de *.dll.
He encontrado una descripción de GetClientRect

La función GetClientRect recupera las coordenadas del área de trabajo de la ventana. Las coordenadas de trabajo definen las esquinas superior izquierda e inferior derecha del espacio de trabajo. Como las coordenadas de trabajo son relativas a la esquina superior izquierda del espacio de trabajo de la ventana, las coordenadas de la esquina superior izquierda son (0,0).
Sintaxis
BOOL GetClientRect
(
HWND hWnd, // descriptor de ventana
LPRECT lpRect // dirección de la estructura de coordenadas de trabajo
);
Parámetros
hWnd
Identifica la ventana cuyas coordenadas de trabajo se van a devolver.
lpRect
Indica la estructura RECT que acepta las coordenadas de trabajo. Los elementos izquierdo y superior son nulos. Los elementos derecho e inferior contienen la anchura y la altura de la ventana.
Valores de retorno
Si la función se completa con éxito, el valor de retorno es diferente de cero. Si la función falla, el valor de retorno es cero. Para obtener los datos de error ampliados, llame a GetLastError.


En otras fuentes esta función se describe como nula. ¿Qué creer?

¿Es necesario especificar #import "user32.dll" para conectarse?

Según algunas fuentes, la estructura RECT se describe en winuser.h, otras en windef.h. Ninguno de estos archivos existe en mi máquina.

#include <winuser.h> o #include <windef.h> ?

¿Qué debe especificarse como identificador de la ventana hWnd?

¿Cómo obtener los parámetros necesarios de la estructura lpRect? MQL4 no soporta tipos de datos complejos (estructuras).


¿Qué funciones y bibliotecas del sistema deberían conectarse a

- obtener las cotizaciones aparentes máximas y mínimas del gráfico actual;

¿Tal vez tenga sentido complementar el lenguaje MQL4 con funciones adecuadas?




|------------------------------------------------| <- 1.8595
|................................................|
|................................................|
|.............--- Alto ........................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|................................................|
|............................--- Bajo..........|
|................................................|
|................................................|
|----
 
¡Estimados desarrolladores!

Por favor, responda a mis preguntas.
 
Las cuestiones de programación se discuten en el foro especializado MQL4.COMmunity.

Hay muchos artículos y una colección de programas en el sitio. No dude en leerlos. En particular, la cuestión de las cotizaciones mínimas y máximas se ha discutido aquí: "MQL4: Intercepción".

Cito de
===
Si conoce el tamaño de la ventana en píxeles, puede utilizar fácilmente las funciones BarsPerWindow y FirstVisibleBar. No hay problema para calcular el número de la barra.
Es más complicado con la coordenada del precio. Si la escala es automática, podemos calcularla añadiendo el 5% de la diferencia entre los valores de precio máximo y mínimo en la parte superior e inferior. Si la escala es fija, no se puede calcular, ya que no hay información sobre el límite superior e inferior.
===
 
<br / translate="no"> Citaré
===
Si conoce el tamaño de la ventana en píxeles, puede utilizar fácilmente las funciones BarsPerWindow y FirstVisibleBar. No hay problema en averiguar el número de barra.
Es más complicado con la coordenada del precio. Si la escala es automática, podemos calcularla añadiendo el 5% de la diferencia entre los valores de precio máximo y mínimo en la parte superior e inferior. Si la escala es fija, no se puede calcular porque no hay información sobre el límite superior e inferior.
===


Ejemplo real: EURUSD, M1
Alto 1,2613 Valor máximo visible 1,2620 delta 0,0007
Mínimo 1,2602 Mínimo 1,2600 delta 0,0002 valor visible

¿Dónde está el 5%?

La búsqueda GetClientRect en el foro MQL4.COM produce 2 referencias. No hay respuestas ni recomendaciones específicas.
 
<br/ translate="no"> Una búsqueda de GetClientRect en el foro MQL4.COMmunity da 2 referencias. No hay respuestas ni recomendaciones específicas.

Así que haces una pregunta. Te he invitado a un foro especializado para ello.
Además, me he citado a mí mismo: "Es más complicado con la coordinación de precios". Lo que significa que la pregunta no tiene una respuesta inequívoca.

Por cierto, el 5% no es el precio, sino el número de píxeles entre el precio máximo y el mínimo.
 
Sólo los precios máximos y mínimos están aún disponibles para el usuario. Según el ejemplo anterior, los objetos de texto sólo pueden mostrarse en el 50% del área del gráfico. ¿Es esto normal?
 
<br / translate="no"> Así que haces una pregunta. Te he invitado a un foro especializado para ello.
Además, me he citado a mí mismo: "Es más complicado con la coordinación de precios". Lo que significa que la pregunta no tiene una respuesta inequívoca.

Por cierto, el 5% no es el precio, sino el número de píxeles entre el precio máximo y el mínimo.


He seguido tu consejo y he publicado tu pregunta en el foro MQL4.COM. Tengo cero respuesta y ninguna respuesta y ninguna esperanza. Por favor, ayuda.
 
¡Estimados desarrolladores!

Por favor, ayúdenme con la función GetClientRect de user32.dll para obtener el tamaño vertical y horizontal del gráfico actual en píxeles.

La descripción de la función se indica más arriba.

Para conectarlo, especifica #import "user32.dll".

Como identificador de la ventana hWnd indicamos el valor devuelto por la función WindowHandle (...) .

¿Cómo obtener los parámetros requeridos de la estructura lpRect, si MQL4 no soporta tipos de datos complejos (estructuras)?
 
¡Estimados desarrolladores!

Llevo más de un mes pidiendo ayuda para solucionar mi problema sin éxito.

Algunos mensajes reciben una respuesta al cabo de una o dos horas, otros son ignorados descaradamente durante mucho tiempo. ¿Por qué?