Saltar al contenido
Home » Blog » Como conectar con Darwinex desde python

Como conectar con Darwinex desde python

    Portada Darwinex

    Todos los que nos gusta el trading algorítmico hemos mirado siempre con buenos ojos a Darwinex. Saber que te puede puedes llevar un 15% de los beneficios netos del capital gestionado, o que cada mes asignan un máximo de 10 millones de euros nocionales todos los meses entre los 150 DARWINs mejor clasificados anima mucho, ¿verdad?

    Pues ahora voy a explicar como podemos gestionar python junto con metatrader para gestionar nuestro trading algorítmico y empezar a hacer nuestros pinitos como gestor de un robot de trading en serio al conectar con Darwinex.

    ¿Cómo vamos a conectar con Darwinex?

    Pudiera ser que Darwinex tuviera una API potente a la cual nosotros pudiéramos lanzar los comandos directamente para ejecutar nuestras acciones, pero lamentablemente no es así. La conexión con Darwinex se tiene que hacer a través de Metatrader, lo que complica un poco las cosas. Así que para hacer la conexión, lo que vamos a hacer es un poco esto:

    diagrama que vamos a realizar

    Como vemos hay que cargar una librería especializada desde Python, que conectará con Metatrader. En Metatrader tenderemos un “Asesor experto” que será el que haga el puente entre nuestro robot algorítmico y Darwinex. Y finalmente, en Darwinex será donde veamos todas los detalles de la cuenta (en este caso una demo) con los propios indicadores de esta plataforma.

    Librerías de Python

    La librería que nos hemos descargado necesita tener instalados en python dos paquetes básicos para que no de error. Estos dos paquetes son: Pandas y pyzmq. Así que vamos a instalarlos así:

    pip install pandas pyzmq

    Con esto ya tendríamos listo python para realizar la conexión.

    Descarga y configuración de metatrader

    Lógicamente hay dos cosas que ya hay que tener creadas y que en este tutorial no vamos a entrar en ello: Una cuenta creada en Darwinex y una cuenta demo para Metatrader 4 creada. Hay muchos tutoriales por internet sobre como hacerlas así que no me voy a parar en ello. Así que si no tenéis alguno de estos dos detalles antes de seguir con el tutorial ya sabéis lo que tenéis que hacer.

    Para descargar Metatrader 4 lo haremos directamente desde la web de Darwinex, tal y como muestro en la imagen:

    darwinex descarga

    La instalación del software Metatrader no creo que haga falta explicarla ya que es simplemente instalar el ejecutable. Una vez que abramos por primera vez Metatrader nos encontraremos una pantalla para escoger la conexión en la cual tendremos que dar al botón de “Cancelar”:

    conexiones de metatrader

    En ese momento nos aparecerá una nueva ventana para que introduzcamos ya los datos de nuestra cuenta:

    ventana conexión darwinex

    Una vez en este punto deberemos meter nuestros datos de la cuenta demo que tenemos (cuando seamos más experimentados podremos hacerlo con nuestras cuentas reales). En ese momento ya empezaremos a recibir los datos de la cuenta de Darwinex, con lo cual ya tendremos nuestro Metatrader conectado con Darwinex.

    Ahora tenemos que asegurarnos de que vayan a funcionar nuestros scripts de Python en Metatrader y para ello tendremos que cambiar unos detalles en la configuración del programa. Desde el menú vamos a Herramientas->Opciones y veremos una ventana como esta:

    configuracion asesores externos

    Si nos vamos a la pestaña de “Asesores Expertos” tenemos que tener activado las opciones que se ven en la imagen anterior.

    Dependencias necesarias

    Esta es la parte más compleja, no por difícil sino por la cantidad de pasos que hay que ir dando.

    Lo primero que tenemos que hacer es descargarnos la librería que vamos a necesitar para realizar la conexión con Metatrader. Esta librería esta mantenida directamente por Darwinex, con lo cual da cierta seguridad a la hora de saber que tendremos buen soporte para cada problema que nos pueda surgir. La web desde donde nos podemos descargar la librería es esta DWX_ZeroMQ y librería se descarga desde la parte de “Download”:

    download metatrader

    Una vez descargado hay que realizar los siguientes pasos:

    1. Descomprimir el fichero que se encuentra en Dependencies llamado mql-zmq-master.zip en la propia carpeta. Seguidamente:
      1. Copia las carpetas mql-zmq-master/Include/Mql y mql-zmq-master/Include/Zmq en la carpeta MQL4/Include del directorio de instalación.
      2. Copia las dlls: libsodium.dll y libzmq.dll que están en mql-zmq-master/Library/MT4 a la carpeta MQL4/Libraries del directorio de instalación de Metatrader.
    2. Vete a la carpeta v2.0.1/mql4, copia DWX_ZeroMQ_Server_v2.0.1_RC8.mq4 y pégalo en carpeta MQL4/Experts del directorio de instalación de Metatrader.

    Con estos pasos ya tendríamos todo funcionando para que nuestro script en Python funcione correctamente. Ahora vamos a hacer una prueba rápida para comprobar que esto es así.

    Agregando el asesor Experto

    Una vez hecho esto cuando abramos otra vez metatrader podemos ver que en la parte de asesores externos tenemos un nuevo asesor llamado DWX_ZeroMQ_Server_v2.0.1_RC8, y tenemos que arrástralo hasta la pantalla de los gráficos. En ese momento se abre la ventana de configuración del asesor experto:

    configuracion dwx_zeromq

    En principio no hace falta tocar ninguno de estos valores para que el asesor experto empiece a funcionar.

    Probando que todo funciona

    Para poder lanzar nuestro primer script en python y comprobar que todo funciona es esencial la librería que se encuentra en la carpeta v2.0.1/python/api/ llamada DWX_ZeroMQ_Connector_v2_0_1_RC8.py.

    Ahora vamos a ir con un terminal de powershell hasta la ruta en la que se encuentra la librería y ejecutamos python:

    ruta de darwing

    Desde ahí podremos hacer lo siguiente:

    >>> from DWX_ZeroMQ_Connector_v2_0_1_RC8 import DWX_ZeroMQ_Connector
    >>> _zmq = DWX_ZeroMQ_Connector()

    En ese momento ya veremos que se abren los puertos de conexión:

    inicio de conexion

    Nuestra primera orden al mercado

    Ahora que ya parece que lo tenemos todo funcionando vamos a ejecutar una orden rápida y ver como responde todo. No vamos a entrar en como se generan todo tipo de órdenes al mercado ni mucho menos, sino simplemente lanzar una orden de la forma más rápida posible.

    Vamos a lanzar el siguiente comando:

    >>> _zmq._generate_default_order_dict()

    Con ello creamos una orden genérica, es decir una orden donde los valores ya están preestablecidos y no nos tenemos que preocupar de nada más. Veamos como es su salida:

    orden generica

    Vemos que nos muestra que la orden por defecto es contra el Euro/Dolar donde ya marca unos “stop loss” y “take profit” y que vamos a comprar 0.01 lotes. Ahora mandaremos esta orden por defecto al mercado con:

    >>> _zmq._DWX_MTX_NEW_TRADE_()

    Una vez lanzada veremos como crea la nueva orden en el mercado actúal con un número de ticket que nos vendrá muy bien para la gestión posterior del ticket. También podemos ver como ha creado unos valores de “stop loss” y “take profit” como veíamos anteriormente:

    new trade

    Ahora, como parte de toda nuestra conexión si miramos en metatrader podemos ver la orden ejecutada:

    conexión con Metatrader

    Perfecto, ya tenemos una orden lanzada en metatrader en nuestra cuenta de Darwinex, ahora vamos a cerrarla. Esto lo podemos hacer con el número de ticket (en este caso 197271296), y se hace de esta forma:

    >>> _zmq._DWX_MTX_CLOSE_TRADE_BY_TICKET(197271296)

    Y la salida ya nos devolverá como se ha cerrado en el mercado y si todo ha ido bien:

    conexión al mercado

    Ya para finalizar podríamos ver si en Darwinex se ve nuestra operación y así ver que todo ha ido realmente bien y que Darwinex está captando nuestros datos. Si entramos en la consola de Darwinex a ver las transacciones realizadas por esta cuenta podremos ver que ya se está viendo nuestra operación (junto con otra que hice hace unos días):

    conexion con Darwinex

    Con esto ya hemos realizado todas las pruebas para demostrar que todo funciona perfecto.

    Conclusiones

    Hasta aquí hemos visto como realizar la conexión con Darwinex, pero esto es un primer paso de todo lo que se puede llegar a hacer con esta plataforma, aunque todavía queda mucho por delante sobre todo el potencial de Darwinex para mejorar nuestros robots algorítmicos y sacar rendimiento a nuestra plataforma.

    Todo esto y mucho más se dará en mi curso sobre trading algorítmico que saldrá en breve, las plazas serán muy limitadas, así que si quieres ser uno de los que apresúrate y apúntate antes de que cubramos todas las plazas.

    Como siempre, si tenéis cualquier duda o mejora del artículo no dudéis en poneros en contacto conmigo y os contestaré lo antes posible.

    ¡No te pierdas ningún post!

    ¡No enviamos spam! Lee nuestra política de privacidad para más información.

    1 comentario en «Como conectar con Darwinex desde python»

    1. Magnífico Lo tenía instalado después de una dura mañana y no sabía como usarlo Por ahora me queda descubrir como poder bajar las cotizaciones… los datos

      Saludos!
      Grande!

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *