Discusión sobre el artículo "Comunicándonos con Meta Trader 5 usando conexiones designadas sin utilizar DLL" - página 2

 
Reshetov:
................

Por un lado nos libramos de dll, pero por otro lado, de nuevo, se necesitan muletillas en otros lenguajes de programación para la aplicación.

La desventaja del método propuesto es que es adecuado sólo para los programadores que desarrollan aplicaciones en lenguajes distintos de MQL. ...................

También se puede dibujar un loro en MQL5. Aquí hay un artículo con los códigos.
 
MetaDriver:
También puede dibujar un loro en MQL5. Aquí está статья, с кодами.

Al menos deberías leer el título de este tema por si te interesa

Ya no. Ver https://www.mql5.com/ru/forum/7806/page3.

Renat:
Sólo ten en cuenta que esto es soporte de cliente, y las conexiones de servidor no se pueden crear en el terminal.
Использование MQL5 для торговли на МТ4
Использование MQL5 для торговли на МТ4
  • www.mql5.com
Подскажите, можно ли каким-нибудь образом извернуться, чтобы с помощью программ на MQL5 торговать у брокера, поддерживающего МТ4?
 
Lo haré en silencio. No se lo digas a nadie. Shhhh.....
 
MetaDriver:
Mantendré un perfil bajo. No se lo digas a nadie. Shhhh.....

Oh, tú. Los desarrolladores trabajaron muy duro, hicieron conexiones con clientes, escribieron el artículo.

¿Y tú qué? En vez de dejarlo todo, aprender C y usar todo esto abierta y honestamente, estás calladito y en la profunda clandestinidad persiguiendo conectores a través de dlls.

Por mucho (no señalemos con el dedo) que le des de comer, sigue queriendo usar dlls en el terminal.


Los héroes normales siempre dan un rodeo © N. Korostylev

 
Reshetov:

Escriba su pasarela en MQL5 basándose en los ejemplos del artículo mencionado. Y puedes escribir scripts de cliente en MQL puro.

Aunque, no entiendo por qué hacer una solución tan unilateral. Los que van a escribir su propio servidor en C, no es un problema para conectar dll, pero el resto de la funcionalidad actual no será suficiente. A no ser que la dll ralentice mucho el trabajo (cosa que dudo).

 
Por favor, preste atención al tema y a la esencia del artículo.

Se trata de poder conectarse desde el terminal a sistemas de terceros sin utilizar DLLs. La tarea está cumplida - ahora hay una manera fácil de conectarse y el intercambio de datos full-duplex.

La queja de que resulta que ahora es necesario escribir una aplicación de terceros está fuera de lugar.
 
Renat:
Por favor, presta atención al tema y a la esencia del artículo.

Se trata de poder conectarse desde el terminal a sistemas de terceros sin usar DLLs. La tarea está cumplida - ahora hay una manera fácil de conectarse y un intercambio de datos full-duplex.

La queja de que hay que escribir una aplicación de terceros está fuera de lugar.
Renat, ¿cuándo piensas hacer tuberías en MT4?
 
Renat:
Por favor, presta atención al tema y a la esencia del artículo.

Se trata de poder conectarse desde el terminal a sistemas de terceros sin usar DLLs. La tarea está cumplida - ahora hay una manera fácil de conectarse y un intercambio de datos full-duplex.

La queja de que hay que escribir una aplicación de terceros está fuera de lugar.

De hecho, es cierto, porque no se declara que por métodos estándar, es decir, sin muletas de terceros, se facilitará la comunicación, por ejemplo, entre aplicaciones MQL.

"Muchos desarrolladores se enfrentan al mismo problema: cómo entrar en la caja de arena del terminal de comercio sin utilizar DLL inseguras".

Aquí no hay reclamaciones y no debería haberlas.

Pero, por otra parte, el más demandado en el plan de aplicación tarea de proporcionar la comunicación entre las aplicaciones escritas en MQL se resuelve muy eficazmente mediante el uso de DLLs inseguras en los ejemplos de este artículo. Ya que en ese artículo, para implementar la comunicación a través de mensajes de cadena, es suficiente sólo tener conocimientos y experiencia de programación en MQL5 (el resto del trabajo, es decir, muletillas de terceros a través de la API de Windows, el autor del artículo ya ha hecho y publicado como una clase lista).

 
Creo que la cuestión de la comunicación entre terminales tiene una pequeña parte de aplicación.

Pero la comunicación con sistemas externos es más importante y aplicable. Para eso se abrió el canal seguro.

Y nótese que toda la implementación se realiza en el marco de las operaciones de archivo estándar. No hubo que introducir nuevas funciones.
 
komposter:

Escriba su propia puerta de enlace en MQL5 basado en los ejemplos del artículo anterior.

Teóricamente se puede, pero en la práctica será una muleta, e incluso simplex.

He encontrado alguna información sobre cómo hacer pasarelas con costes mínimos. Resulta que C++ tiene una clase de streams NamedPipeServerStream(String)

Si la llamamos, creará un canal con nombre. Entonces podemos esperar una conexión llamando al método IsConnected y crear un segundo canal con nombre. Esperamos a que otro cliente se conecte al segundo canal y redirigimos la información del primer stream al segundo usando el método: CopyToAsync(Stream). Después de eso necesitamos iniciar un subproceso y de nuevo usando CopyToAsync(Stream), redirigir la información del segundo stream al primero. De esta forma ambos canales con nombre estarán enlazados por duplex.

Parece fácil, pero no tengo experiencia con C++. Si fuera Java, tardaría media hora con la depuración.

De momento he encontrado un ejemplo adecuado para rediseñar: http://msdn.microsoft.com/en-us/library/bb546085.aspx. Intentaré construir una pasarela full-duplex sobre su base cuando me apetezca. ¿Y si funciona?

NamedPipeServerStream Constructor (String) (System.IO.Pipes)
NamedPipeServerStream Constructor (String) (System.IO.Pipes)
  • msdn.microsoft.com
Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)