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 5
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
en el articulo hay una forma completamente diferente de interaccion de MT5 con el "mundo exterior", necesitas describir firmas de funciones C++ en codigo MT5 y llamarlas como una dll normal, aqui hay un ejemplo que funciona, lo probe hace un mes.
https://www.mql5.com/es/articles/18
HI: tensorflow c# es perfectamente googleable, aquí hay soluciones listas para C# https://nugetmusthaves.com/Tag/tensorflow
Buen artículo, tomo nota, ¡gracias!
Ya sé que tensorflow c# es perfectamente googleable, sólo que no quiero dedicar tiempo a aprender C#, así que integro tensorflow con C++.
Esa no era mi pregunta.
¿Cuál es la diferencia entre la forma de interacción descrita en el artículo y la habitual? En el texto se dice que basta con que la dllka esté escrita en la plataforma .Net. Pero no es necesario usar C# para escribir en esa plataforma. Pero cuando uso C++/CLR (y Visual Studio me sugiere que obtenga una aplicación con clases .Net), MQL5 sigue requiriendo declarar funciones del dllka resultante como siempre, y no ve clases en absoluto.
¿Es posible enviar una cadena de Visual Studio a MT5? ¿Cómo puedo hacerlo?
Gracias por su ayuda
¿Cuál es la diferencia entre la forma de interacción descrita en el artículo y la forma habitual? El texto dice que basta con que el dllka esté escrito en la plataforma .Net. Pero no es necesario usar C# para escribir en esta plataforma.
Si no me equivoco, el metodo utilizado en el articulo se llama inyeccion C# - googlealo, no soy de ayuda aqui, como se produce la interaccion entre C# y MQL5, como opcion "spin" el ejemplo https://www.mql5.com/ru/forum/303283/page3#comment_10607873.
¿Es realista mostrar un ejemplo de uso de, por ejemplo, esta biblioteca?
La biblioteca es interesante. Creo que es bastante realista integrarla con el motor.
Hola, ¡es un gran artículo!
Hay una serie de preguntas que surgen de lo anterior:
1) Del texto del artículo me dio la impresión de que no sólo las interfaces gráficas, sino también la aplicación de casi cualquier API que "no encaja" en MQL5 se puede organizar de la misma manera.
Sí, es absolutamente cierto. El artículo describe esencialmente un patrón de diseño MVC modificado. Los patrones son universales y no dependen de las herramientas del lenguaje ni de las tareas, lo principal es que el concepto de "modelo-representación-controlador" encaje bien en la tarea.
Mi pregunta es, ¿es posible escribir una librería .Net en C++ (entiendo que usando C++/CLR) para poder implementar MQL5 en su código .Net como en tu motor GuiController? ...?
2) Teoricamente se puede. Net dll es un CIL empaquetado al que se traducen lenguajes de alto nivel como C#, VB Net, C++ Net. Es decir, MQL debe leer net dll no importa en qué idioma fue escrito. Pero sólo cómo va a ser en la práctica debe ser comprobado, porque los desarrolladores, obviamente, establecido en C #.
El ejemplo práctico que me interesa es el siguiente. Hoy en día hay posibilidades de integrar librerías opsensoriales sobre machine learning con VS2017, y por ejemplo TensorFlow proporciona API en C++ con soporte para GPU computing. Su artículo proporciona una gran oportunidad para integrar la implementación de C ++ de TensorFloW (o cualquier otra biblioteca de aprendizaje automático) directamente en MQL5, que parece muy conveniente para mí. El problema es que por alguna razón ni siquiera puedo importar una dll C++ de prueba en MQL5 utilizando el método especificado aquí.
¿Te refieres a Net C++ dll? Si es así, deberías comprobarlo. Es difícil entender cómo va a funcionar en la realidad.
Pero en general, tienes mucha razón: la integración rápida con el código existente es definitivamente el futuro. Y no tendrás tiempo suficiente para escribirlo todo tú mismo. Y aquí puedes descargar lo que necesites y seguir adelante.
...
¿Cuál es la diferencia entre la forma de interacción descrita en el artículo y la forma habitual? El texto dice que basta con tener una dllka escrita en la plataforma .Net. Pero no es necesario usar C# para escribir en esa plataforma. Pero cuando uso C++/CLR (y Visual Studio me sugiere que obtenga una aplicación con clases .Net), MQL5 sigue requiriendo declarar funciones del dllka resultante como siempre, pero no ve clases en absoluto.
Esto es muy extraño, porque todo funciona de manera muy diferente con C#. MQL ve perfectamente clases Net y sus métodos con firmas. Incluso intellisense funciona en MetaEditor.
Por desgracia, soy casi inexperto en C ++. Estaría encantado de ayudarte, pero me temo que no voy a ser capaz.
¿Es posible enviar una cadena de Visual Studio a MT5? ¿Cómo puedo hacerlo?
Gracias por su ayuda
Si, por supuesto. Puedes devolver la cadena desde un método (línea 1). También puede devolver la cadena desde una referencia (línea 3):
Donde SharpClass es la clase estática de C# en tu ensamblado.
Esto es muy extraño, porque todo funciona de manera muy diferente con C#. MQL ve perfectamente las clases Net y sus métodos con firmas. Incluso intellisense en MetaEditor funciona.
Por desgracia, soy casi inexperto en C ++. Estaría encantado de ayudarte, pero me temo que no podré.
Hasta ahora tengo lo siguiente:
La dllka más simple en C++ usando .NET:
Esta librería interactúa con MQL5 de la misma forma que una similar en C# (lo he comprobado) y similar a la descrita en tu artículo.
Cuando insertamos el programa en MQL5:
Todo compila, el compilador ve la clase Class1 y la función Func1. Pero a diferencia del comportamiento de Sharpe, el terminal dice que falla al cargar la dll:
No se puede cargar 'C:\Users\...\MQL5\Libraries\TesterMQL5_4.dll' [0]
Error en la carga de EX5.
Sí, por supuesto. Se puede devolver la cadena desde el método (cadena 1). También se puede devolver la referencia de la cadena (cadena 3):
Donde SharpClass es una clase estática C # en su asamblea.
Gracias por su ayuda, pero tengo que aprender más acerca de C #, realmente puedo hacer esta cosa simple trabajo o incluir el código
Gracias de nuevo por tu tiempo
Hasta ahora tengo lo siguiente:
Una simple dll en C++ usando .NET:
...Por favor, inserte el código correctamente: