下载MetaTrader 5

预定义大量代替值

为简化故障排除并获得MQL5程序运行的信息,有一种特殊的宏,是当时建立编辑的值。使用这些常量的最原始的方法是通过 Print() 函数输出值,如示例中所示。

常量

描述

__DATE__

文件编译日期,无时间(小时,分钟,秒等于0)

__DATETIME__

文件编译日期和时间

__LINE__

源代码中的字符串数量,宏放置的位置

__FILE__

当前编辑文件的名称

__PATH__

当前正在编译的文件的绝对路径

__FUNCTION__

函数名称,宏主体位置

__FUNCSIG__

宏所在的函数的签名。函数的完整描述记录可用于识别重载函数

__MQLBUILD__, __MQL5BUILD__

编译器构造数量

示例:

#property copyright "Copyright © 2009, MetaQuotes Software Corp."
#property link      "https://www.metaquotes.net"
//+------------------------------------------------------------------+
//| 专家初始化函数                                                     |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- EA交易初始化输出信息示例
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
//--- 设置定时器事件间的间隔
   EventSetTimer(5);
//---
  }
//+------------------------------------------------------------------+
//| 专家无法初始化函数                                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//--- EA交易无法初始化输出信息示例
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
//---
  }
//+------------------------------------------------------------------+
//| 专家订单号函数                                                     |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- 订单收据输出信息
   Print(" __MQLBUILD__ = ",__MQLBUILD__,"  __FILE__ = ",__FILE__);
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
   test1(__FUNCTION__);
   test2();
//---
  }
//+------------------------------------------------------------------+
//| test1                                                            |
//+------------------------------------------------------------------+
void test1(string par)
  {
//--- 函数内部信息输出
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__," par = ",par);
  }
//+------------------------------------------------------------------+
//| test2                                                            |
//+------------------------------------------------------------------+
void test2()
  {
//--- 函数内部信息输出
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
  }
//+------------------------------------------------------------------+
//| OnTimer event handler                                            |
//+------------------------------------------------------------------+
void OnTimer()
  {
//---
   Print(" __FUNCTION__ = ",__FUNCTION__,"  __LINE__ = ",__LINE__);
   test1(__FUNCTION__);
  }


更新: 2017.01.28