Conectar un script de Python al terminal y la cuenta

La función initialize establece una conexión con el terminal de MetaTrader 5 y tiene 2 formas: corta (sin parámetros) y completa (con varios parámetros opcionales, el primero de ellos es path y es posicional, y todos los demás tienen nombre).

bool initialize()

bool initialize(path, account = <ACCOUNT>, password = <"PASSWORD">,
server = <"SERVER">, timeout = 60000, portable = False)

El parámetro path establece la ruta al archivo de terminal (metatrader64.exe) (tenga en cuenta que se trata de un parámetro sin nombre, a diferencia de todos los demás, por lo que si se especifica, debe ser el primero de la lista).

Si no se especifica la ruta, el módulo intentará encontrar el archivo ejecutable por sí mismo (los desarrolladores no revelan el algoritmo exacto). Para eliminar ambigüedades, utilice la segunda forma de la función con parámetros.

En el parámetro account puede especificar el número de la cuenta de trading. Si no se especifica, se utilizará la última cuenta de trading de la instancia seleccionada del terminal.

La contraseña de la cuenta de trading se especifica en el parámetro password y también puede omitirse: en este caso, la contraseña almacenada en la base de datos del terminal para la cuenta de trading especificada se sustituye automáticamente.

El parámetro server se procesa de forma similar con el nombre del servidor de trading (tal y como se especifica en el terminal); si no se especifica, se sustituye automáticamente por el servidor guardado en la base de datos del terminal para la cuenta de trading especificada.

El parámetro timeout indica el tiempo de espera en milisegundos que se da para la conexión (si se supera, se producirá un error). El valor predeterminado es 60000 (60 segundos).

El parámetro portable contiene una bandera para lanzar el terminal en modo portátil (de manera predeterminada es False).

La función devuelve True en caso de conexión exitosa con el terminal de MetaTrader 5, y False en caso contrario.

Si es necesario, al realizar una llamada a initialize, se puede iniciar el terminal de MetaTrader 5.

Por ejemplo, la conexión a una cuenta de trading específica se realiza del siguiente modo:

import MetaTrader5 as mt5 
if not mt5.initialize(login = 562175752, server = "MetaQuotes-Demo", password = "abc"):
   print("initialize() failed, error code =", mt5.last_error()) 
   quit()
...

La función login también se conecta a la cuenta de trading con los parámetros especificados, pero esto implica que ya se ha establecido la conexión con el terminal, es decir, la función se suele utilizar para cambiar la cuenta.

bool login(account, password = <"PASSWORD">, server = <"SERVER">, timeout = 60000)

El número de cuenta de trading se facilita en el parámetro account. Se trata de un parámetro obligatorio sin nombre, lo que significa que debe ser el primero de la lista.

Los parámetros password, server y timeout son idénticos a los parámetros correspondientes de la función initialize.

La función devuelve True en caso de conexión exitosa a la cuenta de trading, y False en caso contrario.

shutdown()

La función shutdown cierra la conexión previamente establecida con el terminal de MetaTrader 5.

El ejemplo para las funciones anteriores se proporcionará en la sección siguiente.

Cuando se establece la conexión, el script puede encontrar la versión del terminal.

tuple version()

La función version devuelve una breve información sobre la versión del terminal de MetaTrader 5 como una tupla de tres valores: número de versión, número de compilación y fecha de compilación.

Tipo de campo

Descripción

número entero

Versión del terminal de MetaTrader 5 (actual, 500)

número entero

Número de compilación (por ejemplo, 3456)

cadena

Fecha de compilación (por ejemplo, «25 feb 2022»)

En caso de error, la función devuelve None, y el código de error puede obtenerse utilizando last_error.

Se puede obtener información más completa sobre el terminal utilizando la función terminal_info.