Discusión sobre el artículo "Desarrollando las interfaces gráficas para los Asesores Expertos e indicadores a base de .Net Framework и C#" - página 12

 
Nikolai Karetnikov:

Buenas tardes. )

Peter, ¿a qué te refieres con "eran" y a qué te refieres con "altos"? Hubo una discusión sobre este tema en algún sitio o algo así

¡Buenas tardes! )
Sí, ha habido discusiones y bastantes. Resultó que al transferir datos de mql a las tablas de Sharpe con una frecuencia de temporización de 25ms, se actualizan aproximadamente una vez por segundo por alguna razón desconocida. Si el autor u otra persona consiguió arreglarlo, no lo sé, pero supongo que Vasily no continuó la serie de artículos porque no solucionó el problema.

P.S. (Por cierto, pensaron que después del artículo de Vasiliy, nadie necesitará mi lenguaje de marcado, pero mis tablas funcionan bien, y la conexión es mucho más conveniente y se puede poner en el Mercado, porque sin DLL). :)
 
Реter Konow:
¡Amable! )
Sí, se ha discutido y bastante. Resultó que al transferir datos de mql a tablas sharps a una frecuencia de temporizador de 25ms, por alguna razón desconocida se actualizan aproximadamente una vez por segundo. Si el autor o alguien más consiguió arreglarlo, no lo sé, pero asumo que Vasily no continuó la serie de artículos porque no resolvió el problema.

P.S. (Por cierto, pensaron que después del artículo de Vasily, nadie necesitará mi lenguaje de marcado, pero mis tablas funcionan bien, y la conexión es mucho más conveniente y se puede subir al Mercado, porque sin DLL). :)

Ya veo )))

Parece que tienes razón, o hemos perdido a Vasily, o él ha perdido interés en el tema ).

 

versión ligeramente mejorada del Asesor Experto TradePanel

En la cabecera del formulario el nombre del instrumento [1], en lugar de la inscripción vender y comprar en los botones de cotizaciones actuales [2], y las propias formas 'ya [3] y "pegarse" a los bordes de la pantalla. Sticking - software de terceros https://www.nurgo-software.com/products/aquasnap.

Si alguien podría añadir una función de magnetización a la .sln sí mismo, sería genial en absoluto

Al iniciar el EA, te preguntará dónde se encuentra TradePanel.dll, para que no tengas que especificarlo en el código


Window docking
Window docking
  • www.nurgo-software.com
Split your desktop in one easy gesture Drag and drop your windows to the sides or corners of the screen, and they'll automatically be resized to fit one half or one quarter of the screen. This feature is just like the built-in Aero Snap function of Windows 10 , but with more possibilities! This is especially useful on either a 4K monitor or...
Archivos adjuntos:
TradePanel.zip  74 kb
 
Nikolai Karetnikov:

Rafil, ¿has averiguado cuál era el problema?

lo solucioné igual que tú, añadí una enumeración a mql

 
Hola VASILIY SOKOLOV

En primer lugar, muchas gracias por su muestra y compartir su idea.

Tengo descargar y utilizar bien.

Pero tengo una pregunta es acerca de por qué abrimos el winform en DLL debe ser el uso de la "MtGuiController.dll"?

¿Es posible importar "TradePanel.dll" y usarlo sin "MtGuiController.dll"?

Si alguien sabe como hacerlo, gracias.

 

¡Hola!

Gracias por tu idea.

He construido un formulario y utiliza un TabelLayoutPanel. Pero si ahora hago clic en un botón en este TabelLayoutPanel no pasa nada.

¿Puede alguien ayudarme con eso?

PS: El mismo botón funciona sin TabelLayoutPanel.

 

El controlador es brillante y obtienes muy buenas ideas sobre lo que podrías hacer, pero el MT5 tiene un problema importante:

Cada *.dll que se incluye en el EA mq5 se vuelve inutilizable para otros accesos, y el controlador no puede reenviar datos a otras dlls.

Esto es probablemente debido al hecho de que el código C# se compila directamente y por lo tanto varias cosas no se pueden hacer.

Además, no se pueden gestionar múltiples formularios, ya que tengo que tener cada control que recibe datos en ambos formularios o sólo en el primero.

La única forma de sortear esto es usar un control de pestañas en el que luego construyas las distintas páginas que necesites, comercio, mensajes, historial, etc. O tienes que recurrir a C++.

O tienes que recurrir a C++, puedes importar estas dll's y tienes que importar las funciones individuales.

 
Arturo Minor:

Puede utilizar la representación numérica de cada tipo de evento:

Tipo de evento ID
Excepción 0
ClickOnElement 1
CambioTexto 2
CambioDesplazamiento 3

Aquí hay un ejemplo con la función SendEvent (Este código es de TardePanel EA):

Cambias la representación del evento TextChange por su ID que es 2, y lo haces para toda la función que lo necesite.


Gracias por el workarround. Sin embargo, la respuesta a la pregunta original sigue siendo interesante: ¿por qué no se puede acceder a la enumeración desde el EA? La enumeración está declarada como pública. ¿Por qué funcionaba para los demás? (¿O no?)


Gracias de antemano por la ayuda.

 
sachnyc:

¿alguien ha podido averiguar por qué se produce el error de abajo?

El compilador MQL estados : "Identificador no declarado" para cualquiera de las enumeraciones de abajo.

También estoy recibiendo el mismo error.


Después de algunas pruebas.


Para utilizar las constantes asociadas a las enumeraciones definidas en el fichero MtGuiController.dll es necesario utilizar el espacio de nombres MtGuiController antes de cualquier constante.

Por ejemplo en vez de escribir TextChange hay que escribir MtGuiController.TextChange.

 
Pete:

¡Soy relativamente nuevo en MQL5 y he aprendido mucho de este artículo! ¡Muchas gracias!


Tengo una pregunta. He estado luchando un poco durante los últimos 2 días para averiguar esto a continuación.


He completado con éxito cada paso un par de veces, incluso en otro equipo, pero cada vez que intento compilar el código me sale un mensaje de error.


El compilador MQL estados : "Identificador no declarado" para cualquiera de las enumeraciones de abajo.


Si "comentario" estas enumeraciones de MQL5 entonces funciona en consecuencia, que es interesante ya que esto significa que el código funciona, pero no puede leer las enumeraciones que es mi conjetura?

Si alguien me puede ayudar se lo agradeceria mucho :)


Gracias,


Después de algunas pruebas.


Para utilizar las constantes asociadas a las enumeraciones definidas en el fichero MtGuiController.dll es necesario utilizar el espacio de nombres MtGuiController antes de cualquier constante.

Por ejemplo en vez de escribir TextChange hay que escribir MtGuiController.TextChange.