Hoy Python se considera un líder en lo que respecta a la data science, machine learning y deep learning. Python es fácil de aprender y dominar. 

Desarrollar estrategias algorítmicas de trading en Python toma mucho menos tiempo en comparación con C ++ / JAVA. 

El desarrollo de bibliotecas machine learning/deep learning en MQL4 / MQL5 no es una tarea fácil.  Lo mejor que podemos hacer es encontrar de algun método para conectar MT4 / MT5 con Python y luego usar el poder de Python en el desarrollo de estrategias de negociación algorítmica.

INTEGRACIÓN

Para crear un puente entre metatrader4 cuyo lenguaje de programación es mql4 y por ejemplo python, existen varias alternativas.

SOCKETS 

Los sockets son canales para intercambiar información entre dos programas escritos en un lenguaje de programación diferente. Estos dos programas pueden ejecutarse en la misma máquina o ejecutarse en máquinas diferentes. Los sockets nos proporcionan los medios para usar protocolos TCP / IP para comunicarnos entre dos o más programas. Los sockets son muy importantes en la programación de redes. Siempre podemos conectar MT4 / MT5 con otros programas usando sockets.

Para usar sockets en MT4 / MT5, tendremos que escribir una DLL en C / C ++ usando la biblioteca de Winsock.(WINdowsSOCKet) es una biblioteca dinámica de funciones DLL para Windows que se hizo con la finalidad de implementar TCP/IP. Esta biblioteca incluye soporte para envío y recepción de paquetes de datos a través de sockets BSD. 

En los últimos 10 años, las plataformas MT4 / MT5 han madurado lo suficiente y existen una gran cantidad de bibliotecas disponibles que pueden implementar sockets con MT4 / MT5. 

 El módulo de socket está disponible en casi todas las bibliotecas de programación importantes como C / C ++, Python, JAVA, PHP, Javascript, C # etc.

ZeroMQ es una biblioteca de mensajería de código abierto que es increíblemente rápida. Tiene soporte para muchos lenguajes de programación. Puede usarse para conectar todo tipo de plataformas. Utiliza protocolos y sockets TCP / IP.

Al conectar MT4 / MT5 con Python usando la biblioteca ZeroMQ, podemos lograr nuestro propósito. Transferiremos los datos del precio de mercado a python donde se ejecutará nuestra estrategia de negociación algorítmica. Si queremos operar en vivo, también podemos hacer eso. Cuando tenemos una señal de compra / venta, podemos decirle a MT4 / MT5 que abra o cierre una operación usando la biblioteca de ZeroMQ.

Enlaces de ∅MQ MQL4 / MQL5

∅MQ usa sockets y tiene enlaces para la mayoría de los lenguajes de programación. Desarrollar el enlace MQL4 / MQL5 para ∅MQ es lo primero que necesita. Este codigo esta disponible en este depósito de código de Github y puede puede descargar los enlaces ∅MQ MQL4 / MQL5  en ese enlace. Los archivos de encabezado son los mismos para MQL4 y MQL5.

NQuotes conecta la plataforma Forex de MetaTrader 4 y Microsoft.NET permitiendo el desarrollo de programas de negociación automatizados («asesores expertos» e indicadores) para MT4 con C #, herramientas de Visual Studio y bibliotecas .NET.

IronPython es una implementación de código abierto del lenguaje de programación Python que está estrechamente integrado con .NET Framework. 

IronPython puede usar las bibliotecas .NET Framework y Python, y otros lenguajes .NET pueden usar el código Python con la misma facilidad.