Permiso para tradear

Automatización del trading

En el lenguaje MQL5 hay un grupo especial de funciones comerciales que permiten crear los sistemas comerciales automatizados. Los programas para el trading automático sin la intervención del hombre se llaman los Asesores Expertos (Expert Advisor) o robots comerciales. Para crear un EA, inicie en el editor MetaEditor el asistente MQL5 Wizard para el desarrollo de los EAs y seleccione una de dos opciones:

MQL5_Wizard

Las funciones comerciales trabajan sólo en los EAs y los scripts, el trading está prohibido para los indicadores.

Comprobación del permiso para el trading automático

Para crear un EA seguro que realmente sea capaz de trabajar en modo automático sin la intervención del hombre, hay que organizar una serie de comprobaciones necesarias. En primer lugar, hay que comprobar de forma programática si existe realmente el permiso para realizar las operaciones comerciales. La comprobación del permiso para tradear es primordial y obligatoria durante el desarrollo de cualquier sistema automatizado.

Comprobación del permiso para el trading automático en el terminal

En los ajustes del terminal se puede prohibir o permitir el trading automático para todos los programas.

TERMINAL_TRADE_ALLOWED

También se puede usar el Panel estándar del terminal para seleccionar la opción del permiso del trading automático:  

  • AutoTrading_enabled— el trading automático está permitido, se puede usar las funciones comerciales en los programas iniciados.
  • AutoTrading_disabled — el trading automático está prohibido, los programas iniciados van a funcionar pero las funciones comerciales no van a ejecutarse.

Ejemplo de comprobación:

if (!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED)) 
   Alert("¡Compruebe el permiso para el trading automático en los ajustes del terminal!");

 

Comprobación del permiso para tradear para este EA/script iniciado

Al iniciar un programa, podemos permitir o prohibir el trading automático concretamente para este programa. Para eso existe un ajuste especial en las propiedades del programa.

MQL_TRADE_ALLOWED

Ejemplo de comprobación:

   if(!TerminalInfoInteger(TERMINAL_TRADE_ALLOWED))
      Alert("¡Compruebe el permiso para el trading automático en los ajustes del terminal!");
   else
     {
      if(!MQLInfoInteger(MQL_TRADE_ALLOWED))
         Alert("El trading automático está prohibido en las propiedades del programa para ",__FILE__);
     }

 

Comprobación del permiso para tradear con cualquier EAs/scripts para esta cuenta

La prohibición para el trading automático puede establecerse en el lado del servidor comercial. Ejemplo de comprobación de esta situación:

   if(!AccountInfoInteger(ACCOUNT_TRADE_EXPERT))
      Alert("El trading automático está prohibido para la cuenta ",AccountInfoInteger(ACCOUNT_LOGIN),
      " en el lado del servidor");

Si el trading automático está prohibido para la cuenta comercial, las operaciones comerciales de los EAs/scripts no van a ejecutarse.

Comprobación del permiso para tradear para esta cuenta

Hay ocasiones cuando para una determinada cuenta está prohibida cualquier operación comercial, es decir, no se puede tradear ni manualmente ni con los EAs. Ejemplo cuando a la cuenta comercial se han conectado usando la contraseña de inversor:

   if(!AccountInfoInteger(ACCOUNT_TRADE_ALLOWED))
      Comment("El trading está prohibido para la cuenta ",AccountInfoInteger(ACCOUNT_LOGIN),
            ".\n Puede que la conexión a la cuenta ha sido realizada por la contraseña del inversor.",
            "\n Compruebe si en el diario del terminal figura esta entrada:",
            "\n\'",AccountInfoInteger(ACCOUNT_LOGIN),"\': trading has been disabled - investor mode.");

AccountInfoInteger(ACCOUNT_TRADE_ALLOWED) puede devolver false en la siguientes situaciones:

  • no hay conexión con el servidor. Se puede comprobar usando TerminalInfoInteger(TERMINAL_CONNECTED);
  • la cuenta ha sido pasada en el modo read-only (enviada al archivo);
  • el trading está prohibido en el lado del servidor comercial;
  • para la conexión a la cuenta se ha utilizado el modo de inversor.

 

Véase también

Estado del terminal de cliente, Información sobre la cuenta, Información sobre el programa MQL5-en ejecución