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

 
¿Por qué el valor inicial de FirstVisibleBar( ) es incorrecto?

Las dimensiones geométricas del gráfico no cambian.

FirstVisibleBar( ) = BarsPerWindow( ) - sangría desde el borde derecho;

BarsPerWindow( ) = constante, no depende del periodo ni de los datos.

sangría desde el borde derecho = constante, no depende del periodo ni de los datos.
 
¿Por qué стартовое значение FirstVisibleBar( ) está mal?
FirstVisibleBar( ) = BarsPerWindow( ) - sangría desde el borde derecho;

¿De dónde has sacado esta fórmula?

La primera barra visible en el gráfico y el número de barras que caben en la ventana del gráfico no tienen nada que ver entre sí
 
Cuando no hay sangría FirstVisibleBar( ) = BarsPerWindow( ).

En estas condiciones, FirstVisibleBar( ) sigue teniendo un valor de inicio erróneo al cambiar de periodo.
 
<br / translate="no"> Cuando no hay sangría FirstVisibleBar( ) = BarsPerWindow( ).

¿Y qué? Deslice el gráfico hacia la derecha y hacia la izquierda, al principio (con el botón de inicio) y observe el valor producido por la función FirsVisibleBar. Pero asegúrese de desactivar el desplazamiento automático del gráfico antes de hacerlo.
 
Las preguntas de Belkor han sido muy interesantes.

A qué funciones y bibliotecas del sistema hay que conectarse
- obtener el tamaño vertical y horizontal del gráfico actual en píxeles;
- Obtenga las cotizaciones máximas y mínimas visibles del gráfico actual;
- obtener el número total de gráficos expandidos en la ventana

¿Tal vez tenga sentido complementar el lenguaje MQL4 con funciones adecuadas?
 
Necesitamos una función que devuelva el número de barras en la ventana del gráfico actual, teniendo en cuenta la presencia/ausencia de sangría desde el borde derecho del gráfico.
 
<br / translate="no"> Necesitamos una función que devuelva el número de barras en la ventana del gráfico actual, teniendo en cuenta la presencia / ausencia de sangría desde el borde derecho del gráfico.

¿Por qué?
A pesar de la sangría, la ventana del gráfico puede llenarse completamente.
Y a pesar de la falta de sangría, la ventana del gráfico puede no estar llena.
 
El usuario está utilizando gráficos con sangría desde el borde derecho. ¿Cuántas barras se muestran en un gráfico de este tipo? Pura constante geométrica, independiente de los períodos, la historia, el desplazamiento y todo lo demás.

Personalmente encuentro inaceptables los saltos de 20 veces o más y los retrasos en FirstVisibleBar( ).
 
Señores desarrolladores, por favor aconsejen

Qué funciones y bibliotecas del sistema deben incluirse para

- obtener el tamaño vertical y horizontal del gráfico actual en píxeles;
- obtener las cotizaciones máximas y mínimas visibles del gráfico actual;
- obtener el número total de gráficos expandidos en la ventana

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

Gracias.
 
1. GetClientRect de user32.dll
2. No hay ninguna función especial. Puede calcularlo usted mismo, basándose en FirstVisibleBar() y BarsPerWindow()
3. ¿Qué es el "número total de gráficos en la ventana"? Si se trata de una subventana con indicadores, la función incorporada WindowsTotal() le ayudará. Si se trata de gráficos abiertos en el terminal del cliente, entonces no se puede determinar directamente - sólo a través de las funciones WinAPI correspondientes en su propia dll.

Ahora no vamos a añadir nada a la lengua.