¿Qué dicen los profesionales: cómo obtener los valores de desplazamiento del ratón en MQL? [reenvío desde el quinto foro]. - página 8

 

Gracias, un poco tarde, pero aún así.

 
Ihor Herasko:

En primer lugar, conviene decidir cómo obtener información sobre un evento: ¿directa o indirectamente?

Suponiendo que escribir tu propia DLL no es una opción, ¿por qué no eliminar también la API? Si el método indirecto es adecuado:

Deberíamos hacer un bucle con un script que compruebe el índice de la primera barra visible en una ventana - WindowFirstVisibleBar (puede hacerlo junto con el número de barras en la ventana - WindowBarsPerChart). Si difieren del valor anterior, el gráfico ha sido revisado. Es cierto, en este caso no sólo la rueda del ratón podría ser la causa (zoom en el tiempo - "+", "-", haciendo clic en Inicio o Fin, salto directo a la fecha deseada).

En cualquier caso, aún no hay suficiente información para saber qué se requiere exactamente de la detección de un evento de giro de la rueda del ratón. Entonces puedes sugerir métodos.

P.D. Y si necesitas acceder a la función de manejo de ventanas, es SetWindowLongPtr (ver msdn). Pero no se puede prescindir de la DLL, porque no se puede asignar un nuevo procedimiento de procesamiento de mensajes, situado en el código MQL.


Nota, este post contiene prácticamente la solución. Por alguna razón, estaba un poco poco cocido. El autor captó primero una idea sencilla y correcta y luego la perdió, al ir en busca de una solución global junto con el resto. Qué pena...


P.D. Me ha gustado ayudar).

 
Реter Konow:

Nota, este post contiene prácticamente la solución. Por alguna razón, es un poco decepcionante. El autor captó primero una idea sencilla y correcta y luego la perdió, yéndose en busca de una solución global con el resto de nosotros. Qué pena...


P.D. Me ha gustado ayudar).


Qué tiempos aquellos, lenguaje antiguo, posibilidades limitadas... ... así que tuve que hacer algunos malabares... El autor, es decir, yo, resolvió con éxito este problema, y luego perdió el interés )))

 
Реter Konow:

La mejor opción sería darle la solución en términos generales, pero no con el objetivo de demostrar nada, sino en base a la amistad.

Por supuesto, la realización es un intento de encontrar una salida a una situación desesperada. Con la ausencia total de desplazamiento con la rueda, esta es la solución más sencilla y "nativa". Para una solución completa, ya he contactado con servicedesk. Que lo sea o no depende de los desarrolladores.

Tenía entendido que la aplicación sería con un horario de rebote. Estoy de acuerdo en que la mejor solución es ponerse a los pies de los desarrolladores y pedirles que añadan un evento de desplazamiento y clic de la rueda, así como la posibilidad de desactivar temporalmente el desplazamiento del gráfico con la rueda del ratón. Al fin y al cabo, no es tan difícil para ellos: sólo unas pocas líneas de código. No entiendo por qué han decidido de repente que nadie va a necesitar una rueda de ratón... Pero si realmente lo necesitamos, la solución del gráfico de rebote, como opción, podría ser desactivar el propio gráfico ( ChartSetInteger(0,CHART_SHOW,false); ) y crear su doble a través de CCanvas, pero desde luego es todo panderetas, caminando hacia un vecino del otro lado del Polo Norte.

Pero aún así - el crédito y tú, Peter - un tipo genial y un buen programador. Siempre lo he dicho, pero también he dicho que desperdicias tu creatividad en "cultivar tomates en Turquía", donde nadie los necesita por cojones.

 
Nikolai Semko:

...pero también dijo que estás desperdiciando tu creatividad en "cultivar tomates en Turquía", donde nadie los quiere.

Voy a hacer mi punto de vista.

Ahora mismo la plataforma MT5 tiene mucho potencial. Muchas posibilidades y bibliotecas. Pero al mismo tiempo el desarrollo de los programas MQL ha llegado a un punto muerto.

Elobstáculo para un mayor desarrollo es la falta de oportunidades para hacer crecer los programas dentro de la plataforma.

Los usuarios no pueden ampliar la funcionalidad de su software sin la posibilidad de llevar los módulos de control a una interfaz gráfica.

La falta de GUI en los programas MQL es una barrera global para su desarrollo. Renat dijo que el periodo de programas "infantiles" de una sola página debe llegar a su fin. Estoy completamente de acuerdo con él. Pero, ¿cómo puede acabarse si los comerciantes no tienen la posibilidad física de salir de los "pantalones cortos"?

Enumeremos las consecuencias de la falta de GUI en los programas MQL:

  • Imposibilidad de combinar más bloques de programa que potencien al usuario.
  • Exprimió al máximo el alcance de la interacción del usuario con su programa.
  • Falta de comercio semiautomático serio como tal. Muchos preferirían el comercio semiautomático al totalmente automático.
  • El inconveniente de la investigación de mercado, que no permite a los profesionales funcionar a toda velocidad.
  • No hay mantenimiento propio de las estadísticas.
  • Necesidad de trabajar con aplicaciones de terceros a través de muletas, cuya premisa es la falta de una GUI. Al fin y al cabo, si estuviera disponible, la investigación puede llevarse a cabo en programas MQL.

Toda la información útil de MT5 está como "encerrada" dentro y no es realmente accesible.

En cuanto aparezca la GUI, desaparecerán las muletas y se abrirán las posibilidades en MT5. También habrá muchas novedades.

//-----------------------------------------------------------------------------------------------------------

Mi axioma: LOS PROGRAMAS OPERATIVOS NO PUEDEN SER COMPLETOS SI NO TIENEN UNA INTERFAZ GRÁFICA COMO SOFTWARE DE INTERACCIÓN CON EL USUARIO. Se desprenderá y se bloqueará dentro de la máquina. Siempre es incómodo trabajar con ella. Si es primitivo y simple para empezar, entonces la GUI es innecesaria, pero en un campo como el del comercio, el programa debe estar en constante evolución e interacción con el usuario. Sin esto, toda la rama del algotrading tocará techo y no se desarrollará.

 
Реter Konow:

Voy a exponer mi punto de vista.

Ahora la plataforma MT5 tiene un enorme potencial. Muchas posibilidades y bibliotecas. Pero al mismo tiempo, el desarrollo de los programas MQL ha llegado a un punto muerto.

La falta de oportunidades para hacer crecer los programas dentro de la plataforma es un obstáculo para un mayor desarrollo.

Los usuarios no pueden ampliar la funcionalidad de su software sin poder poner módulos para controlarlo en una interfaz gráfica de usuario.

La falta de GUI en los programas MQL es una barrera global para su desarrollo. Renat dijo que el periodo de los programas "infantiles" de una sola página debe terminar. Estoy completamente de acuerdo con él. Pero, ¿cómo puede acabarse si los comerciantes no tienen la posibilidad física de salir de los "pantalones cortos"?

Enumeremos las consecuencias de la falta de GUI en los programas MQL:

  • La imposibilidad de integrar más bloques de programas que mejorarían la experiencia del usuario.
  • El alcance reducido de la interacción del usuario con su programa.
  • Ausencia de comercio semiautomático serio como tal. Muchos preferirían el comercio semiautomático al totalmente automático.
  • El inconveniente de la investigación de mercado, que no permite a los profesionales funcionar a toda velocidad.
  • No hay mantenimiento propio de las estadísticas.
  • Necesidad de trabajar con aplicaciones de terceros a través de muletas, cuya premisa es la falta de una GUI. Al fin y al cabo, si lo hubiera, la investigación puede llevarse a cabo en programas MQL.

Todo el material útil de MT5 está como "encerrado" dentro y no está disponible.

En cuanto aparezca la GUI, desaparecerán las muletas y se abrirán las posibilidades en MT5. También aparecerán muchas novedades.

//-----------------------------------------------------------------------------------------------------------

Mi axioma: un PROGRAMA COMPLEJO NO PUEDE SER COMPLETO SI NO TIENE UNA INTERFAZ GRÁFICA COMO INTERACCIÓN BÁSICA CON EL USUARIO. Se desprenderá y se bloqueará dentro de la máquina. Siempre es incómodo trabajar con ella. Si es primitivo y sencillo para empezar, entonces la interfaz gráfica de usuario es innecesaria, pero en un campo como el del comercio, el programa debe evolucionar constantemente e interactuar con el usuario. Sin esto, toda la rama del algotrading tocará techo y no se desarrollará.


Yo sí entiendo lo que quería decir Renat, creé más de cien indicadores y decenas de robots y al final me di cuenta de que no era nada, pero cogí experiencia y comprensión. Ahora llevo varios años trabajando en un robot en el que la interfaz es lo último y la inteligencia artificial lo es todo. Renat no se refería a que se necesite una interfaz de varias páginas. Me refería al número de páginas de código, o más bien a la cantidad de esfuerzo y pensamiento creativo que se pone en él, mientras que en Market, la gran mayoría de los productos son baratijas infantiles e inútiles. ¿Qué tiene esto que ver con las interfaces gráficas de usuario? Las interfaces gráficas de usuario sólo pueden confundir al comprador potencial, o echarle polvo en los ojos, o asustarle con su complejidad. Todo lo que estáis trabajando ahora -y Anatoly también, por cierto, perdón- es todo a la Windows 95. La gente de hoy está acostumbrada y mimada por un paradigma de interfaz completamente diferente. Mira la interfaz de tu teléfono Android o iPhone. Simplicidad, minimalismo, intuición. Eso es lo que hay que procurar.

Peter, toma como ejemplo Google.com. ¿Qué tipo de interfaz ves allí? Y esta empresa tiene una capitalización de medio billón de dólares. Por el contrario, tienden a minimizar la interfaz, porque su interfaz hace 15 años era más sofisticada y, creo, dentro de unos años su interfaz será aún más modesta. Y son los principales creadores de tendencias en la moda de las interfaces gráficas de usuario. Todas tus enumeraciones sobre la necesidad de la GUI son declarativas y exageradas, o más bien la GUI no tiene nada que ver (bueno, sólo puedes dejarla para el comercio semiautomático). Mira la última tecnología de Google: TensorFlow. Se trata de una tecnología de aprendizaje automático, tecnología de IA y reconocimiento de patrones, que sería muy útil para los programadores de trading automatizado para dominar, pero esta tecnología no necesita GUI. Realmente, de qué estoy hablando, si para ti la tecnología OOP es una herramienta inútil.

 
Nikolai Semko:

Entiendo perfectamente lo que quería decir Renat, porque yo mismo he creado más de un centenar de indicadores y decenas de robots, pero con el tiempo me di cuenta de que todo era nada, pero gané algo de experiencia y comprensión. Ahora llevo varios años trabajando en un robot en el que la interfaz es lo último y la inteligencia artificial lo es todo. Renat no se refería a que se necesite una interfaz de varias páginas. Me refería al número de páginas de código, o más bien a la cantidad de esfuerzo y pensamiento creativo que se pone, mientras que en Market, la gran mayoría de los productos son juegos de niños. ¿Qué tiene esto que ver con las interfaces gráficas de usuario? Las interfaces gráficas de usuario sólo pueden confundir al comprador potencial, o echarle polvo en los ojos, o asustarle con su complejidad. Todo lo que estáis trabajando ahora -y Anatoly también, por cierto, perdón- es todo ala Windows 95. La gente de hoy está acostumbrada y mimada por un paradigma de interfaz completamente diferente. Mira la interfaz de tu teléfono Android o iPhone. Simplicidad, minimalismo, intuición. Eso es lo que hay que procurar.

Peter, toma como ejemplo Google.com. ¿Qué tipo de interfaz ves allí? Y esta empresa tiene una capitalización de medio billón de dólares. Por el contrario, tienden a minimizar la interfaz, porque su interfaz hace 15 años era más sofisticada y, creo, dentro de unos años su interfaz será aún más modesta. Y son los principales creadores de tendencias en la moda de las interfaces gráficas de usuario. Todas tus enumeraciones sobre la necesidad de la GUI son declarativas y exageradas, o más bien la GUI no tiene nada que ver (bueno, sólo puedes dejarla para el comercio semiautomático). Mira la última tecnología de Google: TensorFlow. Se trata de una tecnología de aprendizaje automático, tecnología de IA y reconocimiento de patrones, que sería muy útil para los programadores de trading automatizado para dominar, pero esta tecnología no necesita GUI. Realmente, de qué estoy hablando, si para ti la tecnología OOP es una herramienta inútil.

Nikolay, no nos entendemos).

La OOP es realmente inútil para mí personalmente, pero no niego su utilidad para otros. Que lo usen a su salud.

La interfaz gráfica de usuario es una necesidad práctica. La interfaz gráfica de usuario abrirá espacio para hacer programas más complejos. Enriquecerá el actualmente escaso entorno para la puesta en práctica de ideas creativas. Dará a los programas un rostro propio.

El MO (machine learning), por el contrario, llevará al algotrading a un callejón sin salida. Un juego de adivinanzas automatizado que carece de toda comprensión de los procesos del mercado. Una caja negra que recicla papilla estadística. Amputa el deseo de los operadores de entender el mercado y crear sus propias estrategias. La formación en análisis técnico y los artículos sobre el mismo serán irrelevantes. Llegará el momento de la muerte del pensamiento del comerciante. La caja negra la borrará.

Nikolai, nuestro ecosistema tiene que ser un entorno diverso y rico. Tenemos que expandirnos. Los algotraders necesitan nuevas oportunidades de software. Sólo quiero abrirles otro).


Por cierto, tú también deberías emprender de una vez un proyecto a gran escala y empezar a hacer realidad tus capacidades. Siento que tú mismo lo quieres, pero no hay manera. Es una pena porque tienes un enorme potencial creativo. Por lo tanto, estoy esperando la demostración de sus diseños. Espero verlos con seguridad).

 

Реter Konow:

...Enriquecerá el actualmente escaso entorno para la puesta en práctica de ideas creativas. Dará a los programas un rostro propio.

Debería aclarar lo que quiero decir con "entorno escaso para la expresión creativa". Tengo miedo de que me malinterpreten. MT5 es potencialmente un entorno muy rico para las ideas creativas en el trading algorítmico. Pero su potencial es utilizado actualmente por los comerciantes, creo que entre un 20% y un 30%.

Es el espacio actual del ámbito de uso práctico lo que llamo "entorno exiguo", no el potencial. Tal vez no lo expresé con precisión.

Hay una expresión: "La existencia determina la conciencia".

Nuestra Génesis actual son programas sin GUI, creados ante las altas barreras intelectuales. Este Génesis, ha definido nuestra conciencia y no queremos GUIs y comercio semiautomatizado. Creemos en el sentido de ajustar los parámetros a la historia como medio para optimizar las estrategias. Es decir, no tratamos de mejorar la estrategia profundizando en el conocimiento del mercado, sino ajustándonos a la historia. En otras palabras: autoengaño. Así es como se ha definido nuestra conciencia durante años. Y por alguna razón nadie considera que la optimización sea un polvo descarado en el ojo. Pero sólo gracias a ella se obtienen griales de prueba.

Cualquier barrera es útil para la gimnasia mental, pero para la creatividad libre ya hay demasiadas barreras. Algunas entidades nos ayudan en la realización de una idea, otras nos obstaculizan. Nota: sólo me llevó una fracción de las capacidades de un lenguaje de programación para construir mi propia "máquina" gráfica, con un lenguaje de marcado. Y no se trata en absoluto de talento de programación, sino de la capacidad de distinguir las cosas por su esencia. Si una persona no tiene esta capacidad, se confundirá irremediablemente con varias cosas y no se dará cuenta de su potencial. El prisma con el que se miran las cosas determina la eficacia de nuestro trabajo y la escala de aplicación práctica del talento.

Sólo quiero ayudar a los demás con mi propia realización personal, y llevar a MT5 a un avance global. ¿De qué otra forma podría hacerse? En general, si personas con talento como tú, Nikolay o Anatoly me ayudan, seguro que movemos montañas).

 
Реter Konow:

...si personas con talento como tú, Nikolai, o Anatoly me ayudan, seguro que movemos montañas)

No, lo siento, Pyotr, pero tú mueves tus propias montañas. Y moveré mis propias montañas. ))
 
Nikolai Semko:
No, Peter, lo siento, pero tú mueves tus propias montañas. Y moveré mis montañas. ))

He dicho"como tú", no tú). No iba a poner mi "montaña" sobre ti).