Visual studio en la plataforma MT4. - página 4

 

Puede ver cómo será la información técnica y las instrucciones para crear la interfaz gráfica de usuario del motor gráfico haciendo clic en este enlace:

https://www.youtube.com/watch?v=ciVqJwgIIyg&feature=youtu.be#t=66.940294

 
Реter Konow:

Por lo que sé, actualmente no hay forma de transferir una interfaz creada en MS Visual Studio a un gráfico de la plataforma MT.

¿Por qué crees que es así? Pues sí, y hay varios. Aunque no está claro por qué, las interfaces, deberían trasladarse a las parcelas, si es así, probablemente no existan. Pero es bastante realista hacerlos encima de MT
 
Реter Konow:

...

Esto significa que el usuario estará completamente aislado del código y del compilador en todo lo relativo a la creación de la interfaz gráfica de su programa, y sólo tendrá que ocuparse de las herramientas de control visual que ofrece el estudio. El diseño de la interfaz utilizará la tecnología de "arrastrar y soltar" y diferentes ventanas de configuración, a través de las cuales se pueden definir las propiedades de las plantillas de ventanas y controles ya preparados.

...

... Este motor ...para fusionar con la aplicación del desarrollador y realizar todo el trabajo gráfico.

Pero, ¿cómo se integraría con la aplicación del desarrollador, si no es a través del código? Supongamos que un programa necesita producir una tabla similar a la de Market Watch. Entonces debemos enviarle la instrucción de que "EURUSD" debe aparecer en la celda "A1", el precio "1.238273" debe aparecer en A2, etc. Sin embargo, un conjunto de herramientas será diferente de un terminal a otro y estáticamente los campos y los nombres de las tablas simplemente no pueden ser llenados.

Microsoft Visual Studio lo tiene todo claro: es un práctico complemento para el puroEntorno de software creación de aplicaciones. Es decir, Visual Studio no es realmente un entorno de desarrollo visual, y en el caso de su programa, no está claro cómo funcionará.

 
Vasiliy Sokolov:

Pero, ¿cómo se integrará con la aplicación del desarrollador si no es a través del código? Supongamos que el programa necesita producir una tabla similar a la de Market Watch. Entonces debería recibir la instrucción de que "EURUSD" debe colocarse en la celda "A1", el precio "1.238273" en A2, etc. Sin embargo, un conjunto de herramientas será diferente de un terminal a otro y estáticamente los campos y los nombres de las tablas simplemente no pueden ser llenados.

En Microsoft Visual Studio está claro: es un práctico complemento de los programas puros deentorno de software crear aplicaciones. Es decir, Visual Studio no es realmente un entorno de desarrollo visual, y en el caso de tu programa no está claro cómo funcionaría.

Por el momento, se está desarrollando una solución para combinar el motor gráfico y la funcionalidad de la aplicación de usuario.

Sólo puedo presentarle el concepto general.

Al escribir su propia aplicación, el desarrollador tendrá que guardar los valores de las variables devueltas por sus funciones personalizadas (por ejemplo, el valor del precio actual de la oferta en "EURUSD") no dentro de su aplicación sino fuera de ella.

Esto significa que en lugar de sus propios nombres de variables, tendrán que escribir el índice de una celda de matriz de memoria compartida (situada fuera de su programa) y almacenar allí el valor devuelto por la función.

A esta matriz global la llamo "núcleo de parámetros". Luego, el usuario asignará la dirección de esta celda al control en el estudio. A su vez, el motor gráfico realiza un bucle periódico a través de los objetos y mira las direcciones de los parámetros ligados a ellos en el núcleo de parámetros. Si un valor en esa dirección ha sido modificado por una función del usuario, el motor lo actualizará en la ventana. O viceversa: si el valor ha sido modificado por un control, la función de usuario aceptará su tratamiento.

En esencia, esta solución es una simbiosis de dos programas que se comunican a través de una memoria compartida, llamada "núcleo de parámetros". Ambos programas, el motor de la GUI y el programa del usuario, se colocarán en gráficos diferentes dentro del terminal.

El único problema es la creación de la memoria compartida. Tratando de resolverlo con MQL, no quiero recurrir a una DLL, pero si no hay salida, se puede crear memoria compartida allí. Ya lo he hecho.

 
Реter Konow:

El único problema es crear la memoria compartida. Tratando de resolverlo con MQL, no quiero recurrir a una DLL, pero si no hay salida, se puede crear memoria compartida allí. Ya lo he hecho.

Una vez que se recurre a la DLL, no queda nada de su concepto. Nada de nada - Pschick. Con una DLL, e incluso sin una DLL, su problema puede ser resuelto sin desarrollar nada en absoluto. Y este es el concepto básico de la programación moderna: no desarrolles nada por ti mismo, si ya está creado.
 
Yuriy Asaulenko:
¿Por qué crees que es así? Lo hay, e incluso algunos. Pero no está claro por qué deberían trasladarse las interfaces a los gráficos; si es así, probablemente no existan. Pero es bastante realista superponerlos sobre la MT.
Por favor, sea más específico.
 
Yuriy Asaulenko:
Una vez que se recurre al DLL, no queda nada de su concepto. Simplemente nada - Pschich. Con una DLL, e incluso sin una DLL, su problema puede ser resuelto sin desarrollar nada en absoluto.
Por favor, explique su opinión.
 
Реter Konow:
Sea específico, por favor.

¿Qué hay que concretar? ¿Crear ventanas en VS sobre MT? Esto es un pajarito - encima de todas las ventanas.

¿Intercambio de datos con VS? De 4 maneras al menos.

 
Реter Konow:
Por favor, explique su opinión.
Vea el post anterior, o sea más específico, por favor. Ventanas de cualquier tipo, sin ningún esfuerzo.
 
Реter Konow:

El único problema es crear la memoria compartida. Intentar solucionarlo con MQL, no quiero recurrir a una DLL, pero si no hay salida, se puede crear memoria compartida ahí. Ya lo he hecho.

Por supuesto, se puede organizar la comunicación a través de DLL, pero nadie lo necesitará, porque el Mercado prohíbe cualquier DLL. La única manera de organizar el intercambio global de datos entre los dos programas, en términos de MQL estándar - es el intercambio a través de variables globales. Por cierto, aquí hay una librería muy chula para intercambiar datos a través de variables globales:https://www.mql5.com/ru/code/12786.

En general, no está muy claro para quién está creando su estudio. Si para los desarrolladores su solución no tiene API. Nadie quiere arrastrar una aplicación separada, con la que el programa intercambiará datos, especialmente para los programas colocados en el Mercado.

La solución con licencia de usuario, también, es una opción muy desafortunada. Aquí es un programador ha desarrollado un programa basado en su estudio, pagado por el primer mes de trabajo, y luego en el segundo mes, su programa no funciona, porque el núcleo gráfico de su estudio ha requerido otra cuota. Mentira. Ningún promotor basaría su proyecto en un paquete que le pidiera constantemente tasas adicionales. Pero incluso si imaginamos que la licencia se comprará como una suma global, y el propio estudio será una parte de la aplicación, entonces de nuevo no está claro cómo funcionará en el Mercado (programa con licencia con otra licencia dentro de ella).

Aun así, responda a la pregunta principal: ¿para qué público objetivo se está creando su proyecto? ¿Por qué el usuario medio necesita su estudio? ¿Quieres crear Microsoft Word en MetaTrader 5? Por supuesto, es genial, pero ¿por qué? La gente paga por soluciones preparadas. Para programas y algoritmos que hacen un trabajo específico. No necesitan crear formularios. Necesitan programas. Y los programadores que escriben estos mismos programas no pueden utilizar su estudio, porque el trabajo está organizado de una manera muy extraña.

Entienda que ahora mismo hay que poner el énfasis en el Mercado. Si quieres crear un proyecto de infraestructura, primero debes responder a la pregunta: "¿Por qué los programadores, que están haciendo negocios en el Mercado, o trabajando en Freelance, comenzarán a utilizar mi estudio. ¿Qué les dará?"

Razón de la queja: