外汇EA编写教程:使用 EA Tree 在几分钟内创建 MQL5 EA 交易:第一部分

简介

EA Tree 是第一款拖放 MetaTrader MQL5 EA 交易生成器。它是一款在您的本地计算机上运行的 Windows 应用程序。您可以使用非常易用的图形用户界面创建复杂的 MQL5 代码。

在 EA Tree 中,通过将盒子连接在一起创建 EA 交易。盒子可以包含 MQL5 函数、技术指标、自定义指标或值。一个盒子的输出可连接到另一个盒子的输入,从而构成“盒子树”。EA Tree 从“盒子树”生成 MQL5 代码,然后使用安装在您的计算机上的 MetaTrader 5 平台将 MQL5 代码转换为可执行的 EA 交易。

图 1. EA Tree 图形用户界面

图 1. EA Tree 图形用户界面


在接下来的几节中,我们将介绍 EA Tree 的基本概念。

1. 基本概念

“盒子”和“按钮”概念。

盒子是 EA Tree 中信息的表示。它们可以包含技术指标、数学函数等。每个盒子含有输入按钮和输出按钮。在这个例子中,Add(添加)按钮具有三个分别标记为 A、B、C 的输入按钮以及一个标有 OUT 的输出按钮。

每个盒子的名称跟着一个索引,从而拥有独特标签。在这个例子中,标签 Add_1 表示盒子的名称为 Add,及索引为 1,这意味着它是在盒子布局中创建的第一个盒子。

图 2. Add 盒子

图 2. Add 盒子

连接按钮:

一个盒子的输出按钮可连接到另一个盒子的输入按钮,如果它们具有相同的数据类型的话,例如它们都是 double数据类型。

在这个例子中,我们将 Add_2 盒子的 OUT 按钮连接到 If_Else_1 盒子的 A 按钮。

图 3. "Add" 盒子 + "if else" 盒子

图 3. “Add” 盒子 + “If-Else” 盒子

2. “Trade”(交易)盒子

Trade 盒子是 EA Tree 的主盒子。它有很多输入按钮。最重要的按钮是 openLong、openShort、closeLong 和 closeShort 按钮。也有很多交易参数。

 图 4. "Trade" 盒子

图 4. “Trade” 盒子

3. “MM” (MoneyManagement) 盒子

MM 盒子处理 EA Tree 中的 MoneyManagement(资金管理)。它有几个输入按钮。您需要将其输出按钮连接到 Trade 盒子的 MM 按钮。

图 5. "Trade" 盒子 + MM 盒子

图 5. “Trade” 盒子 + MM 盒子

4. Logic(逻辑)盒子

Logic 盒子对交易盒子条件按钮(openLong、openShort、closeLong 和 closeShort)和布局中余下的盒子之间的连接非常重要。

If-Else 逻辑盒子

If-Else 盒子具有以下逻辑:

如果 A 运算符 B 则 T(输出按钮)为 true,否则 F(输出按钮)为 true。

其中,运算符为“等于”、“不等于”、“小于”、“大于”等。

图 6. "If-Else" 逻辑盒子

图 6. “If-Else” 逻辑盒子

Crossover(穿越)逻辑盒子

Crossover 盒子具有以下逻辑:

如果 A 运算符1 B 与 C 运算符2 D 则 T(输出按钮)为 true,否则 F(输出按钮)为 true。

其中,运算符1 和运算符2 为“等于”、“不等于”、“小于”、“大于”等。移位设置要连接到的指标索引。

在这个例子中,我们具有以下逻辑:

如果当前随机动量主值 > 当前随机动量信号且

如果前一随机动量主值 > 前一随机动量信号

则 T 为 true,F 为 false

图 7. 穿越 + 随机动量逻辑盒子

图 7. “穿越” + “随机动量”逻辑盒子

AND(与)逻辑盒子

AND 盒子具有以下逻辑:

如果(A 与 B 与 C 与 D),则 OUT(输出按钮)为 true

图 8 “And” 盒子

OR(或)逻辑盒子

OR 盒子具有以下逻辑:

如果(A 或 B 或 C 或 D),则 OUT(输出按钮)为 true

图 9. "Or" 盒子

图 9. “Or” 盒子

5. 技术指标盒子

在 Technical Indicators(技术指标)菜单中列出了很多技术指标,例如 MACDMoving Average (MA) 技术指标盒子

MACD 技术指标盒子

图 10. MACD 技术指标盒子

图 10. MACD 技术指标盒子

MA(移动平均线)技术指标盒子

图 11. MA(移动平均线)技术指标盒子

图 11. MA(移动平均线)技术指标盒子

6. 自定义指标

可以在 Custom Indicators(自定义指标)菜单和工具栏中使用自定义指标工具。EA Tree 仅使用 MQL5 自定义指标。

7. MQL5 函数

EA Tree 拥有很多用于 MQL5 函数的盒子,包括:

  • 时间序列盒子,例如 iOpen、iClose、HighestHigh、LowestLow 等;
  • 转换函数;
  • 数学函数;
  • 字符串函数。

8. 教程:创建一个简单的 EA 交易

在这一节中,让我们使用本文介绍的几个工具创建一个简单的 EA。

首先,让我们列出 EA 交易原则。

进入原则

建立买入持仓:

  1. 当前 MACD 主值 > 当前 MACD 信号,且
  2. MACD 主值 < 前一 MACD 信号,且
  3. 当前 EMA(20) > 前一 EMA(20)

建立卖出持仓:

  1. MACD 主值 < 当前 MACD 信号,且
  2. MACD 主值 > 前一 MACD 信号,且
  3. EMA(20) < 前一 EMA(20)

退出原则:

平掉买入持仓:与建立卖出持仓的原则相同
平掉卖出持仓:与建立买入持仓的原则相同

我们将使用默认交易盒子,并且不使用资金管理设置。

让我们开始吧:

1. 创建一个 Trade(交易)盒子,然后创建一个 AND(与)盒子,并将其输出连接到 Trade(交易)盒子的 openLong 按钮:


图 12. Trade(交易)盒子 + And(与)盒子

图 12. Trade(交易)盒子 + And(与)盒子

2. 创建一个 Crossover(穿越)盒子,并将其 T(true) 输出按钮连接到 And(与)盒子的 A 按钮。

图 13. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子

图 13. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子

3. 创建一个 MACD 盒子,并将其 Main(主值)输出按钮连接到 Crossover(穿越)盒子的 A 按钮和 C 按钮,将其 Signal(信号)输出按钮连接到 Crossover(穿越)盒子的 B 按钮和 D 按钮。

逻辑如下所示:

如果当前 MACD 主值 > 当前 MACD 信号,且
      
前一 MACD 主值 < 前一 MACD 信号

图 14. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子 + MACD 盒子

图 14. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子 + MACD 盒子


4. 创建 MA 和 If-Else 盒子。将 MA 盒子的 Main(主值)输出按钮连接到 If-Else 盒子的 A 按钮和 B 按钮。将 IF-Else 盒子的 OUTPUT(输出)连接到 AND(与)盒子的 B 按钮。

现在,openLong 条件的子树含有以下三个条件:

  1. 当前 MACD 主值 > 当前 MACD 信号,且
  2. MACD 主值 < 前一 MACD 信号,且
  3. EMA(20) > 前一 EMA(20)

图 15. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子 + MACD 盒子 + MA 盒子 + If-else 盒子

图 15. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子 + MACD 盒子 + MA 盒子 + If-else 盒子

5.创建另一个 And (与)盒子,并将其输出按钮连接到交易盒子的 openShort 按钮。

6.因为 openShort 逻辑与 openLong 的逻辑相反,所以将 Crossover(穿越)盒子的 F 输出按钮连接到新建的 And(与)盒子的 A 按钮。同样的,将 If-Else 盒子的 F 输出按钮连接到新建的 And(与)盒子的 B 按钮:


图 16. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子 + MACD 盒子 + MA 盒子 + If-else 盒子 + And(与)盒子

图 16. Trade(交易)盒子 + And(与)盒子 + Crossover(穿越)盒子 + MACD 盒子 + MA 盒子 + If-else 盒子 + And(与)盒子

7. 为了获得退出信号,将第一个 AND(与)盒子的 OUT(输出)变量连接到 Trade(交易)盒子的 closeLong 按钮,将第二个 AND(与)盒子的 OUT(输出)变量连接到 Trade(交易)盒子的 closeShort 按钮:

图 17. 将 CloseShort 添加到 Trade(交易)盒子
 图 17. 将 CloseShort 添加到 Trade(交易)盒子

8. 双击 MACD 和 MA 盒子,选择若干个在我们将生成的 MQL5 EA 中要作为输入变量的变量。

图 18. 输入参数

图 18. 输入参数

9. 现在,布局即已完成。保存布局和 MQL5 文件。然后在 MetaEditor 5 中打开新的 MQL5 EA 文件并进行编译。

图 19. 生成的 EA

图 19. 生成的 EA

10. 最后,我们在 MetaTrader 5 策略测试程序中优化选择的输入变量。


图 20. EA 的测试 

图 20. EA 的测试

总结

使用 EA Tree 有很多优点:

  • 易于使用和理解拖放图形用户界面;
  • 无需后台编程;
  • 能够快速地学习 MQL5
  • 保守您的交易秘密;
  • 将 EA 开发时间缩短到几分钟,而不是原来的几天或者数月;
  • 能够开发具有多货币和多时间框架的复杂 MQL5 EA;
  • 可以在一个 EA 中采用多个交易策略;
  • 可以通过保存和载入图(盒子树)来轻松地重复使用代码;
  • 仍然能够导入 MQL5 自定义指标;
  • 每次都能创建正确的 MetaTrader 5 MQL 代码。

由MetaQuotes Software Corp.从英文翻译成
原始文章: https://www.mql5.com/en/articles/337

附加的文件 |

eatree-sample.mq5
(33.7 KB)

 

 


MyFxtop迈投(www.myfxtop.com)-靠谱的外汇跟单社区,免费跟随高手做交易!

 

免责声明:本文系转载自网络,如有侵犯,请联系我们立即删除,另:本文仅代表作者个人观点,与迈投财经无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

著作权归作者所有。
商业转载请联系作者获得授权,非商业转载请注明出处。

風險提示

MyFxtops邁投所列信息僅供參考,不構成投資建議,也不代表任何形式的推薦或者誘導行為。MyFxtops邁投非外匯經紀商,不接觸妳的任何資金。 MYFXTOPS不保證客戶盈利,不承擔任何責任。從事外彙和差價合約等金融產品的槓桿交易具有高風險,損失有可能超過本金,請量力而行,入市前需充分了解潛在的風險。過去的交易成績並不代表以後的交易成績。依據各地區法律法規,MyFxtops邁投不向中國大陸、美國、加拿大、朝鮮居民提供服務。

邁投公眾號

聯繫我們

客服QQ:981617007
Email: service@myfxtop.com

MyFxtops 邁投