Lo que devuelven las funciones Lowest y Highest - página 6

 
También estaba pensando que, al parecer, en esta situación no se trata de bombear, sino de que el nuevo bar comience a construirse sin esperar a que se bombee la historia. Y eso es algo correcto. Pero por otro lado, imagina un Asesor Experto en comercio. Se produce un fallo de conexión y luego se restablece la conexión. El experto puede abrir una posición basada en los valores erróneos del indicador hasta que el historial se intercambie completamente. Por lo tanto, la cuestión va más allá del ámbito de este tema y se refiere a la seguridad del autotrading en general. El problema no es sencillo, por supuesto. ¿Tal vez, la solución sería una variable predefinida "duración del último periodo continuo de la historia"? Los indicadores (expertos) podrían leerlo y manejar la situación de alguna manera.
 
Aquí es donde el almacenamiento del valor de las Barras (no sólo del Tiempo[0]) puede ayudar. Eso es:

start() {..... if (PrevBars!=Bars-1) { init(); PrevBars=Bars-1; }
 
Los que se dedican a los EAs en serio son probablemente conscientes de este problema. Y algún tipo de tratamiento para esta situación se incluye en el EA.
 
El almacenamiento de los valores de las barras (no sólo de Time[0]) .... puede ayudar.

Aquí hay un fragmento de ese archivo de registro que muestra que cuando se inicia una nueva barra, las Barras aumentan en 1 y no en el número de barras que se actualizan. Así que no ayuda
2006.10.31 23:58:25 CZZ2 EURUSD,M1: shift=0, Bars=38230, Time[shift]=2006.10.31 22:51, High[shift]=1.2763, Low[shift]=1.2763 2006.10.31 23:58:25 CZZ2 EURUSD,M1: shift=1, Bars=38230, Time[shift]=2006.10.31 22:45, High[shift]=1.2762, Low[shift]=1.2762 2006.10.31 23:58:23 CZZ2 EURUSD,M1: shift=0, Bars=38229, Time[shift]=2006.10.31 22:45, High[shift]=1.2762, Low[shift]=1.2762



Los que se dedican a los EAs en serio son probablemente conscientes de este problema. Y algún tipo de tratamiento para esta situación se incluye en el EA.

Bueno, podemos intentar manejar la situación de alguna manera, pero parece que no podemos prescindir de algunos trucos. Especialmente teniendo en cuenta la posición rígida de MQ en las cartas sin agujeros.
Por otro lado, el terminal sabe si tiene que bombear el historial o no. Si MQL tuviera acceso a estos conocimientos, el problema se resolvería de forma mucho más natural.


 
A continuación, comparamos el Tiempo[0] y el Tiempo[1]. Yo mismo me he enfrentado una sola vez a una situación de este tipo, por lo que no puedo darte un código práctico desde el principio.
 
A continuación, comparamos el Tiempo[0] y el Tiempo[1]. Yo mismo sólo me he enfrentado una vez a una situación así, así que no puedo darte ningún código práctico. <br / translate="no">.

Esto no hará nada a menos que primero habilite el código del tipo "gráfico sin agujeros" porque la existencia de agujeros es una situación normal en MT. Aunque en los plazos grandes captará casi todos los fallos.
 
De hecho, se trata de una especie de "demonización" :)
El código debe estar escrito con la máxima protección, porque el bombeo de datos puede ser causado no sólo por el terminal, sino también por el ISP, el centro de datos, el corredor, el colapso del ordenador, etc.
 
Por cierto, por si acaso. 28. Búsqueda de precios extremos - http://www.alpari-idc.ru/ru/experts/articles/29.html
 
Me temo que ese código con la máxima protección será inadecuado para el uso práctico :). Como el comercio es arriesgado en general, podríamos habernos limitado a una protección razonable. Pero aquí estamos hablando de una situación que se da con bastante frecuencia. Por cierto, mi conclusión sobre la mayor seguridad de los grandes plazos en el post anterior era errónea. La barra anterior puede tener valores incorrectos de Alto, Bajo y Сlose antes del intercambio de historia, mientras que la barra actual tiene valores incorrectos de Alto, Bajo y Apertura.
 
Sí, resulta que los plazos grandes son aún más peligrosos que los pequeños, porque no veo ninguna forma sencilla de determinar la corrección de los datos de las dos últimas barras. Puedes imaginar un indicador colgado en los minutos y llenando la variable global GoodHistoryDepht. Otros indicadores comprueban este valor con su profundidad de cálculo requerida y toman decisiones. Pero debido a la posición del MQ en los agujeros, gran parte del tiempo (y cuanto más largo sea el marco de tiempo, mayor, hasta el rechazo completo de las barras diarias) será simplemente inadecuado para el comercio. Sobre todo teniendo en cuenta que los fallos de comunicación prefieren vivir en cuentas reales.