Nuevo terminal de cliente de MetaTrader 4 387 y centro de datos de MetaTrader 4 build 387 - página 8

 
No es un informe de error, así que no hay reacción.
 

¿Así que crees que está bien?

Si es así, ¿quién lo necesita, la construcción 387-388?

Mucha gente sigue trabajando en la 225. La gente necesita estabilidad.

 

Al iniciar la optimización de este EA, MT4 da un mensaje de que no hay suficiente memoria RAM en este ordenador (6GB oo) e inicia la optimización. El botón "Start" permanece activo en lugar de "Stop". En general, es claramente un fallo. La construcción anterior no sufría de semejante disparate.

 
Renat:
No es un informe de error, así que no hay reacción.

:)))

(c) "¿Ves un topo? ¡No! Yo tampoco. Pero tú sí".

Archivos adjuntos:
 

En las compilaciones 387-388, la reinicialización de los búferes de indicadores personalizados ocurre en momentos imprevisibles. Esto no es bueno.

Si la reinicialización es tan necesaria, la solución puede ser la siguiente.

Introducimos una función adicional en mql4 que puede prohibir dicha reinicialización o permitirla.

Introducimos una función booleana, que devuelve TRUE si el terminal lo reinicia, en caso contrario devuelve FALSE. La segunda función es válida si la primera permite la reinicialización.

De esta manera se resuelven todos los problemas. Quien lo necesita permite la reinicialización automática mediante la primera función. Al mismo tiempo puede controlar los tiempos de reinicialización mediante la segunda función.

Es posible combinar todo esto en una sola función. Queda a discreción del promotor.

Y todo el mundo está satisfecho. Los errores se eliminan. Y los programadores de terceros -programadores a medida- están asegurados contra las sorpresas.

Es una hermosa solución.

 
Akkarin:

Al iniciar la optimización de este EA, MT4 da un mensaje de que no hay suficiente memoria RAM en este ordenador (6GB oo) e inicia la optimización. El botón "Start" permanece activo en lugar de "Stop". En general, es claramente un fallo. La compilación anterior no sufría de este error.

Lamentablemente, no has especificado ningún dato inicial, parámetros de prueba o registros.

Además, te refieres a las librerías (DLL), que no sólo requieren muchas instalaciones, sino que no funcionan porque faltan librerías adicionales (se trata del autor de las librerías, que se olvidó de los archivos DLL adicionales).

Pida información al autor de estas bibliotecas.

 
nen:

En las compilaciones 387-388, la reinicialización de los búferes de indicadores personalizados ocurre en momentos imprevisibles. Esto no es bueno.

Por lo visto, usted no quiere comprobar su código hinchado, sino que intenta trasladarnos el problema a nosotros. Su retórica es absolutamente transparente: "no es mi problema".

No me importa. No tengo ningún problema. Puedo rediseñarlo para que funcione correctamente. Pero no puedo rehacer todos los indicadores que usan otras personas.

También estás sustituyendo el significado de "los fuertes cambios en la historia provocan la necesidad de un recálculo completo" por "momentos imprevisibles". Son predecibles: el historial ha cambiado, lo que ha hecho necesario reiniciar por completo el sistema. Si su código no quiere ser consciente de esta situación y no quiere recalcularse a sí mismo, entonces está incurriendo en un autoengaño.

Demostrar con un desglose completo el problema. No en palabras, sino en configuraciones claras, código, registros, capturas de pantalla claras, etc.

Como programador, es prudente tener discusiones respaldadas técnicamente y claramente descritas paso a paso. Los enlaces fragmentarios y los mensajes dispersos y sin montar no constituyen un informe de error.

La calidad de un informe viene determinada por la reproducibilidad de su problema por parte de usuarios externos. Por lo que tengo entendido, hasta ahora nadie en este hilo (incluidos los desarrolladores) ha podido reproducir tu problema.

 

Renat.

Me preguntaba si se puede esperar que los indicadores personalizados vuelvan a renderizarse después de una prueba en el probador. He desactivado LiveUpdate en algunos terminales por el momento. Verá, para nosotros - los creadores de las "películas" de comercio de divisas - no es suficiente leer o escribir guiones y ver la película sin imágenes, sino sólo con sonido. Tenemos que ver qué hemos hecho allí, y qué tan bien.

Incluso se ha llegado a pensar que los desarrolladores desactivaron el renderizado en MT4 por despecho de que MT5 no está progresando bien. Si es así, tal vez resulte que los comerciantes y los corredores necesitan una cosa y usted está tratando de imponer otra. Tal vez entonces sea mejor que cambie su posición en ese sentido.

Y si se debe a decisiones técnicas precipitadas, que tanto daño han causado a los desarrolladores de expertos, entonces ustedes, como programadores, deberían tener la bandera en sus manos para hacer que todo sea bueno.

Entonces, ¿podemos esperar una pronta solución a este asunto?

 

Bien.

Ponerlo a prueba visualmente. Asesor experto en medias móviles.

Ajuste de la ZUP.

Euro. Horario.

Tenga en cuenta que mi código rastrea el intercambio de la historia. Por lo tanto, se reinicializa cuando la historia se está intercambiando.

Anteriormente en este hilo he publicado un trozo de código. Toda la optimización está ahí.

Estoy pegando fotos aquí. Mi código "hinchado" sirve para hacer dibujos, eso es todo. No se ocupa de la negociación automática. Si una imagen se dibuja incorrectamente, se trata de un error.

Primera foto. Una pequeña historia. Se dibuja un rayo. Todo es normal.

Casi inmediatamente después de comenzar las pruebas, se dibujaron varios rayos en zigzag y una mariposa. Volando normal.

Volar más. Se ha producido su reinicialización. El software no puede rastrear esto. NO HAY UNA FORMA RUTINARIA DE RASTREAR LA REINICIALIZACIÓN.

Como la optimización de los cálculos está activada, y no hay señal de recálculo completo, vemos el resultado:

Se ha acumulado un poco de historia nueva. Se ha dibujado un rayo en zigzag:

Si ahora reiniciamos el indicador, habrá una inicialización y todo se verá así:

Y así sucesivamente. No hay capacidad interna para rastrear la reinicialización de su búfer indicador.

Y no se puede recalcular el indicador en cada tick. Hazte un lío así. Tienes muchas cosas hechas con este espíritu desde hace mucho tiempo. Y por mucho que te hayamos hablado de muchos bichos, no los has entendido. Y ahora, cuando muchos programadores se han cansado de pelear contigo y han hecho sus propias soluciones a tus errores, empiezas a arreglar las cosas a escondidas.

Su código ha crecido igual de grande. Y tiene poca idea de las consecuencias de sus innovaciones.

Vamos a probarlo más a fondo.


Una vez más su reinicialización ha pasado varias veces. Debería ser así:

¿Es difícil de reproducir? ¿O tal vez no quieres hacerlo?

Y más adelante en las pruebas todo sigue en la misma línea.

No le eches la culpa a los demás. El código ha crecido.

-------

En conclusión, lo diré de nuevo. No soy yo quien me preocupa. Puedo saltarme programáticamente cualquiera de sus fallos por mí mismo. Pero no podré hacerlo con un gran número de usuarios.

Voy a añadir. Nunca he vendido ninguno de mis indicadores y no he desarrollado ninguno de mis indicadores por una tarifa. Creo que cuando las metacotizaciones puedan cambiar todo fundamentalmente como en las construcciones 387-388, nadie de fuera podrá construir un buen negocio en el desarrollo con lenguajes MQL(*). Todavía no puede ofrecer a los desarrolladores de terceros un marco de desarrollo estable.

Y todos los desarrollos de pago que utilizan sus idiomas en este momento los considero una especie de estafa.

 
nen:

Bien.

Ponerlo a prueba visualmente. Asesor experto en medias móviles.

Ajuste de la ZUP.

Euro. Horario.

Tenga en cuenta que mi código rastrea el intercambio de la historia. Así que se reinicializa cuando la historia se intercambia.

Anteriormente en este hilo he publicado un trozo de código. Toda la optimización está ahí.

Estoy pegando fotos aquí. Mi código "hinchado" sirve para hacer dibujos, eso es todo. No se ocupa de la negociación automática. Si una imagen se dibuja incorrectamente, se trata de un error.

Primera foto. Una pequeña historia. Se dibuja un rayo. Todo es normal.

Casi inmediatamente después de comenzar las pruebas, se dibujaron varios rayos en zigzag y una mariposa. Volando normal.

Volar más. Se ha producido su reinicialización. El software no puede rastrear esto. NO HAY UNA FORMA RUTINARIA DE RASTREAR LA REINICIALIZACIÓN.

Como la optimización de los cálculos está activada, y no hay señal de recálculo completo, vemos el resultado:

Se ha acumulado un poco de historia nueva. Se ha dibujado un rayo en zigzag:

Si ahora reiniciamos el indicador, habrá una inicialización y todo se verá así:

Y así sucesivamente. No hay capacidad interna para rastrear la reinicialización de su búfer indicador.

Y no se puede recalcular el indicador en cada tick. Hazte un lío así. Tienes muchas cosas hechas con este espíritu desde hace mucho tiempo. Y por mucho que te hayamos hablado de muchos bichos, no los has entendido. Y ahora, cuando muchos programadores se han cansado de pelear contigo y han hecho sus propias soluciones a tus errores, empiezas a arreglar las cosas a escondidas.

Su código ha crecido igual de grande. Y tiene poca idea de las consecuencias de sus innovaciones.

Vamos a probarlo más a fondo.


Una vez más su reinicialización ha pasado varias veces. Debería ser así:

¿Es difícil de reproducir? ¿O tal vez no quieres hacerlo?

Y más adelante en las pruebas todo sigue en la misma línea.

No le eches la culpa a los demás. El código ha crecido.

-------

En conclusión, lo diré de nuevo. No soy yo quien me preocupa. Puedo saltarme programáticamente cualquiera de sus fallos por mí mismo. Pero no podré hacerlo con un gran número de usuarios.

Voy a añadir. Nunca he vendido ninguno de mis indicadores y no he desarrollado ninguno de mis indicadores por una tarifa. Creo que cuando las metacotizaciones puedan cambiar todo fundamentalmente como en las construcciones 387-388, nadie de fuera podrá construir un buen negocio en el desarrollo con lenguajes MQL(*). Todavía no puede ofrecer a los desarrolladores de terceros un marco de desarrollo estable.

Y todos los desarrollos de pago que utilizan sus idiomas por el momento creo que es algún tipo de estafa.

DE ACUERDO. Bien, una vez más dejemos de lado las emociones y tratemos la situación con calma.

Lo que se da - prueba visual. Hagamos una prueba visual y apliquemos el mismo indicador para el registro. Después de todas estas pruebas obtenemos un triste panorama.

Name;Time;GetTickCount;Bars;LastBarsCount;IndicatorCounted
IndicatorCounted() == 0;2011.02.28 09:39:12;156609840;107;107;0
Новый бар;2011.02.28 09:39:12;156610324;108;107;106
Новый бар;2011.02.28 09:39:13;156610838;109;108;107
... (вырезал)
Новый бар;2011.02.28 09:39:23;156621602;128;127;126
Новый бар;2011.02.28 09:39:24;156621758;129;128;127
IndicatorCounted() == 0;2011.02.28 09:39:24;156622180;2648;2648;0
Новый бар;2011.02.28 09:39:24;156622289;130;129;128
Новый бар;2011.02.28 09:39:25;156622819;131;130;129
Новый бар;2011.02.28 09:39:25;156623147;132;131;130
... (вырезал)
Новый бар;2011.02.28 09:39:31;156629699;144;143;142
Новый бар;2011.02.28 09:39:32;156630027;145;144;143
Новый бар;2011.02.28 09:39:32;156630385;2649;2648;2647
Новый бар;2011.02.28 09:39:33;156631009;146;145;144
Новый бар;2011.02.28 09:39:33;156631399;147;146;145
... (вырезал)
Новый бар;2011.02.28 09:40:15;156673364;275;274;273
Новый бар;2011.02.28 09:40:16;156673785;276;275;274
Новый бар;2011.02.28 09:40:16;156673878;277;276;275
IndicatorCounted() == 0;2011.02.28 09:40:16;156673956;2649;2649;0
IndicatorCounted() == 0;2011.02.28 09:40:16;156674081;2649;2649;0
Новый бар;2011.02.28 09:40:16;156674159;278;277;276
Новый бар;2011.02.28 09:40:16;156674612;279;278;277
... (вырезал)

Новый бар;2011.02.28 09:40:27;156684986;314;313;312

Algo ha ido mal exactamente en el modo de prueba visual - hay registros con Bares iguales a 2648 en lugar de los 130 esperados, pero 130 de nuevo en el siguiente tick/barras.

Esa es toda la razón, y la reinicialización completa no tiene absolutamente nada que ver, especialmente en cada tic.

Asustado de los ojos y las manos hacen el trabajo. Exactamente 10 minutos para encontrar y describir el error.