经常访问本网站的用户都很清楚, MQL5 是开发自定义 EA 交易的最佳选择,不幸的是, 并不是所有的经纪商都允许创建 MetaTrader 5 的账户。. 就栓您现在使用的经纪商允许这一点,您也许也会在将来换到只提供 MetaTrader 4 的经纪商那里,您将如何处理在这种情况下开发的所有 MQL5 EA 交易呢?您是否要花费大量时间对它们进行返工以适应MQL4?也许,开发一个既能在MetaTrader 5中工作又能在MetaTrader 4中工作的EA更为合理?
在本文中,我们将尝试开发这样的EA,并检查基于订单网格的交易系统是否可用。
条件编译将允许我们开发一个同时在 MetaTrader 4 和 MetaTrader 5 中工作的EA。应用的语法如下:
#ifdef __MQL5__ // MQL5 代码 #else // MQL4 代码 #endif
条件编译允许我们指定只有在MQL5 EA中完成编译时才应编译某个块。在MQL4和其他语言版本中编译时,只需丢弃此代码块,而是使用#else运算符后的代码块(如果已设置)。
这样,如果在 MQL4 和 MQL5 中实现了不同的功能,那么我们将以两种方式实现它,而条件编译允许选择特定语言所必需的选项。
在其他情况下,我们将使用在MQL4和MQL5中都有效的语法。
在开始EA开发之前,让我们描述一下网格交易策略的基础知识。