Discusión sobre el artículo "Guía práctica de MQL5: Controles de la subventana del indicador: Botones" - página 4
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Y el hecho de que "las funciones de los botones se colocan en la función OnInit" ¡es muy gracioso!
Sin embargo, ¿quizás no entiendes de lo que estamos hablando? Si pulsas un botón, alguna función de usuario debería dispararse para realizar alguna micro-tarea.
Muy bien, vamos a reírnos. El artículo lo escribiste tú, "nadie te tiró de la lengua".
Así que la explicación en forma de citas de lo inexplicable es, como mínimo, una falta de respeto a tus lectores. Las preguntas deben responderse con ejemplos y enlaces a fuentes primarias.
El código confuso y sobrecargado con funciones innecesarias sólo induce a error a los "principiantes".
Y lo de que "las funciones de los botones se colocan en la función OnInit" ¡es muy gracioso!
Nadie te ha tirado de la lengua. ¿Me vas a dar pruebas? ¿O más bien una refutación de mi afirmación? Para tu información, todavía no está todo descrito en el Manual. Quiero decir que se está trabajando en el manual, se están haciendo adiciones y correcciones. Debería comprobarlo todo usted mismo.
Créeme, el código de tu artículo es mucho más "confuso" para los principiantes y no sólo, lo que se puede ver en la discusión de tu artículo.
Sin embargo, tal vez usted no entiende lo que estamos hablando? Si haces click en un botón, alguna función de usuario debería ser disparada para realizar alguna micro-tarea.
Sí, lo he entendido literalmente. Formule sus preguntas con más precisión. Pero preveo que mi respuesta será ridiculizada por ti, ya que parece que hoy en día tienes una función de este tipo.
En este caso la "microtarea" era cambiar el color del botón. A propósito no añadí ninguna función extra para no tener nada superfluo. Sólo para evitar sobrecargar el código.
En realidad, el tema del artículo no se limita sólo a los botones. La mayor parte trata sobre eventos de gráficos. Hay pocos ejemplos de este tipo, así que decidí escribir uno.
Estimado autor del artículo, no lo ha escrito para mí, sino para los principiantes. De hecho, no estoy interesado en sus soluciones, pero estamos hablando de aquellos que están empezando a conocer el lenguaje. ¿De qué "otros programas" estamos hablando? ¿Y cómo puede afectar la función OnDeinit de un programa a las funciones de otros programas?
Estamos discutiendo un artículo y ¿por qué te indignas tanto?
Intenta responder a las preguntas no por mí, sino por los principiantes, para que entiendan por qué y cómo.
Estimado autor del artículo, no lo ha escrito para mí, sino para los principiantes.
Exactamente.
De hecho, no me interesan sus soluciones, sino que estamos hablando de aquellos que están empezando a conocer el idioma.
Pero haces preguntas.
¿De qué "otros programas" estamos hablando?
De los mismos a los que diste enlaces antes. Y tratas de refutar mi afirmación por alusiones sin dar una prueba.
¿Y cómo puede la función OnDeinit de un programa afectar a las funciones de otros programas?
Afecta. Yo escribí sobre ello. El editor que publicó el artículo lo confirmó. También puedes comprobarlo por ti mismo.
Estamos discutiendo el artículo y ¿qué te molesta tanto?
Nada. Estoy esperando una refutación a mi afirmación. )
Intenta responder a las preguntas no para mí, sino para los recién llegados, para que entiendan por qué y cómo.
Hasta ahora no ha habido preguntas de los recién llegados. Y no puede haber preguntas. Todo está muy claro y cada línea de código está comentada en detalle.
Atascamos esto primero:
es decir, ahora no rastreamos los eventos del ratón, ¿verdad?
Ejecuta tu código en el gráfico:
ahora ejecutamos "otro programa", que sea tu código otra vez:
¿Supongo que algo salió mal? ¿O es lo que se supone que debemos hacer?
ahora borramos uno de los indicadores y según el autor del código hemos perdido el "seguimiento del ratón", pero no ocurre:
Si tú no cumples los requisitos, entonces no sé quién los cumple. ¿Danald Knuth? ¿Bill Gates?
Sólo intentaba conseguir un cumplido. Funcionó).
Ya veo. Pero lo que no queda claro es que los productos líderes del Mercado creados por usted no le pertenecen. ¿No es una pena?
1. Todavía no es de noche)
2. Mi artesanía también está constantemente en el top, aunque no está en ninguna comparación con el panel.
3. El éxito del panel se debe en gran parte a los esfuerzos del autor de la idea, por lo que es incorrecto decir que es mi producto.
4. No he trabajado gratis)
...
ahora borramos uno de los indicadores y según el autor del código hemos perdido el "seguimiento del ratón", pero esto no ocurre:
Ahora comprueba si se dispara el evento OnDeinit() en los indicadores. Este es el punto interesante que mencioné antes. :) Concretamente en OnDeinit(), en el ejemplo del artículo, se desactiva el evento de seguimiento de movimiento. Desde alguna build parece que OnDeinit() ha dejado de funcionar en los indicadores en absoluto. Esto es un bug y deberíamos informar a los desarrolladores.
Además, para asegurarnos de que mi afirmación es correcta, tenemos que hacer un Asesor Experto en blanco (la función OnDeinit() funciona en los Asesores Expertos), en el que basta con añadir esta línea de código (resaltada):
//---
Y ahora, si quitas el Asesor Experto cuando el indicador del artículo está en el gráfico, el seguimiento del evento de movimiento se desactivará también en el indicador.
Sobre esto
¿algo debe haber salido mal? ¿o es así como está diseñado?
Ya se sabe. No está diseñado así, simplemente no se tiene en cuenta en este artículo. El artículo, como siempre, es un simple ejemplo, no una solución preparada para todos los casos. )
En general, este código parece ser muy problemático. No hay ninguna razón real para desactivar el seguimiento del movimiento del ratón al desactivar el Asesor Experto/indicador. Si quiere molestarse tanto, debería restaurar el estado que existía antes de que se iniciara el Asesor Experto:
En general, este código parece ser bastante problemático. No hay ninguna razón real para desactivar el seguimiento del movimiento del ratón al desactivar el Asesor Experto/indicador.
No, usted está equivocado. Hay razones reales para desactivar el seguimiento del ratón. Y voy a demostrarlo ahora. )
Por ejemplo, usted tiene dos programas que se ejecutan en un gráfico. El Asesor Experto, en el que usted necesita para realizar un seguimiento del evento de movimiento del ratón. Y un indicador en el que no es necesario realizar un seguimiento del movimiento del ratón, pero es necesario realizar un seguimiento de algunos otros eventos del gráfico.
Ahora ejecute este código del Asesor Experto:
En él, durante la inicialización, en la función OnInit(), se habilita el seguimiento del evento de movimiento del ratón. Pero la línea en la función OnDeinit(), donde este seguimiento debe ser desactivado, está intencionalmente comentada.
Cargue también el indicador en el gráfico. Aquí está su código:
Tanto el primer programa como el segundo imprimen un mensaje en el registro de recepción del evento. Ahora quite el Asesor Experto del gráfico. Supongamos que ha realizado algunos cálculos con su ayuda y ya no lo necesita. Después de quitarlo, como no se ha desactivado el evento de seguimiento del movimiento del ratón, el indicador sigue recibiendo este evento. Y no lo necesitas.
¿Estás de acuerdo? )