Propiedades del terminal y de la cadena de programa

Las funciones MQLInfoString y TerminalInfoString se pueden utilizar para averiguar diversas propiedades de cadena del terminal y el programa MQL.

Identificador

Descripción

MQL_PROGRAM_NAME

El nombre del programa MQL en ejecución

MQL_PROGRAM_PATH

Ruta para este programa MQL en ejecución

TERMINAL_LANGUAGE

Idioma del terminal

TERMINAL_COMPANY

Nombre de la empresa (broker)

TERMINAL_NAME

Nombre del terminal

TERMINAL_PATH

La carpeta desde la que se inicia el terminal

TERMINAL_DATA_PATH

La carpeta donde se almacenan los datos del terminal

TERMINAL_COMMONDATA_PATH

La carpeta compartida de todos los terminales cliente instalados en el ordenador

El nombre del programa en ejecución (MQL_PROGRAM_NAME) suele coincidir con el nombre del módulo principal (archivo mq5), pero puede diferir. En concreto, si su código fuente se compila en una biblioteca que se ha importado en otro programa MQL (Asesor Experto, indicador, script o servicio), entonces la propiedad MQL_PROGRAM_NAME devolverá el nombre del programa principal, no de la biblioteca (la biblioteca no es un programa independiente que se pueda ejecutar).

Hablamos de la disposición de las carpetas de terminales de trabajo en Trabajar con archivos. Utilizando las propiedades enumeradas, puede averiguar dónde está instalado el terminal (TERMINAL_PATH), así como encontrar los datos de trabajo de la instancia actual del terminal (TERMINAL_DATA_PATH) y de todas las instancias (TERMINAL_COMMONDATA_PATH).

Un simple script EnvDescription.mq5 registra todas estas propiedades.

void OnStart()
{
   PRTF(MQLInfoString(MQL_PROGRAM_NAME));
   PRTF(MQLInfoString(MQL_PROGRAM_PATH));
   PRTF(TerminalInfoString(TERMINAL_LANGUAGE));
   PRTF(TerminalInfoString(TERMINAL_COMPANY));
   PRTF(TerminalInfoString(TERMINAL_NAME));
   PRTF(TerminalInfoString(TERMINAL_PATH));
   PRTF(TerminalInfoString(TERMINAL_DATA_PATH));
   PRTF(TerminalInfoString(TERMINAL_COMMONDATA_PATH));
}

A continuación se muestra un ejemplo de resultado:

MQLInfoString(MQL_PROGRAM_NAME)=EnvDescription / ok
MQLInfoString(MQL_PROGRAM_PATH)= »
» C:\Program Files\MT5East\MQL5\Scripts\MQL5Book\p4\EnvDescription.ex5 / ok
TerminalInfoString(TERMINAL_LANGUAGE)=Russian / ok
TerminalInfoString(TERMINAL_COMPANY)=MetaQuotes Software Corp. / ok
TerminalInfoString(TERMINAL_NAME)=MetaTrader 5 / ok
TerminalInfoString(TERMINAL_PATH)=C:\Program Files\MT5East / ok
TerminalInfoString(TERMINAL_DATA_PATH)=C:\Program Files\MT5East / ok
TerminalInfoString(TERMINAL_COMMONDATA_PATH)= »
» C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\Common / ok

El idioma de interfaz del terminal puede encontrarse no sólo como una cadena en la propiedad TERMINAL_LANGUAGE, sino también como un número de página de códigos (véase la propiedad TERMINAL_CODEPAGE en la siguiente sección).