Discusión sobre el artículo "Simulación de mercado (Parte 11): Sockets (V)"

 

Artículo publicado Simulación de mercado (Parte 11): Sockets (V):

Vamos a empezar a implementar la comunicación entre Excel y MetaTrader 5, pero antes es necesario entender algunas cosas importantes. Así no te quedarás rascándote la cabeza tratando de comprender por qué las cosas funcionan o no. Y antes de que frunzas el ceño ante la integración entre Python y Excel, veamos cómo podemos usar xlwings para controlar, en cierta medida, MetaTrader 5 a través de Excel. Lo que voy a mostrar aquí se centrará principalmente en la didáctica. No pienses que solo podemos hacer lo que mostraré.

Ahora recuerda que el servidor del minichat utilizará el puerto 27015 y que el servidor de eco, que se ejecutará en Excel, también hará uso de él. Por tanto, en teoría, tendremos aquí un conflicto de intereses. Podrías pensar que el sistema operativo impediría que un servidor interfiriera o intentara escuchar en el mismo puerto utilizando el mismo protocolo. En este caso, estamos usando el protocolo TCP. Sin embargo, podríamos estar usando TCP en un servidor y UDP en el otro. En ese caso, no habría problema en que ambos usaran el mismo puerto.

Sin embargo, cuando usamos el mismo puerto, con el mismo protocolo y en el mismo host, las cosas comienzan a complicarse un poco.

Quiero hacer hincapié en este punto para que tú, estimado lector y aspirante a convertirte en un usuario avanzado de sockets, comprendas que existen ciertas precauciones que deben tomarse cuando se quiere trabajar con sockets. Pero, sobre todo, quiero que, antes de ver cómo se implementa la comunicación entre Excel y MetaTrader 5, comprendas lo que ocurre cuando dos servidores diferentes utilizan los mismos recursos. En este caso, el mismo protocolo, el mismo puerto y el mismo host. Para entenderlo, abre primero el servidor del minichat y déjalo esperando a que se produzca alguna conexión.

Ahora, abre el servidor de eco en Excel y déjalo también esperando a que ocurra una conexión. Es decir, tendrás algo similar a lo que se muestra en la imagen de abajo.


Autor: Daniel Jose