Descargar MetaTrader 5

Macro substituciones predefinidas

Para facilitar la depuración y obtener la información sobre el funcionamiento de un programa mql5 están previstas las constantes-macros especiales predefinidas, cuyos valores se establecen en el momento de compilación. La manera más fácil de usarlas consiste en la devolución de sus valores mediante la función Print(), como se muestra en el ejemplo de abajo.

Constante

Descripción

__DATE__

Fecha de compilación del archivo sin hora (horas, minutos y segundos son iguales a 0)

__DATETIME__

Fecha y hora de compilación del archivo

__LINE__

Número de cadena en el código fuente, en la que se ubica esta macro

__FILE__

Nombre del archivo corriente compilado

__PATH__

Ruta absoluta hacia el archivo actual a compilar

__FUNCTION__

Nombre de la función, en cuyo cuerpo está ubicado la macro

__FUNCSIG__

Signatura de la función en cuyo cuerpo se encuentra la macro. El mostrar en el log la descripción completa de la función con tipos de parámetros puede ser útil durante la identificación de las funciones sobrecargadas

__MQLBUILD__, __MQL5BUILD__

Número build del compilador

Ejemplo:

#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- ejemplo de output de información durante la inicialización del Asesor Experto
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
//--- definición de intervalos entre los eventos de temporizador
   EventSetTimer(5);
//---
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- ejemplo de output de información durante la deinicialización del Asesor Experto
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
//---
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
 
//--- output de información durante la llegada de del tick
   Print(" __MQLBUILD__ = ",__MQLBUILD__,"  __FILE__ = ",__FILE__);
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
   test1(__FUNCTION__);
   test2();
//---
  }
//+------------------------------------------------------------------+
//| test1                                                            |
//+------------------------------------------------------------------+
void test1(string par)
  {
//--- output de información dentro de la función
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__," par = ",par);
  }
//+------------------------------------------------------------------+
//| test2                                                            |
//+------------------------------------------------------------------+
void test2()
  {
//--- output de información dentro de la función
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
  }
//+------------------------------------------------------------------+
//| OnTimer event handler                                            |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
   test1(__FUNCTION__);
  }


Actualizado: 2017.01.28