欢迎访问 外汇EA下载与MT4/MT5自动交易资源 - 聚合外汇EA、黄金EA、量化交易工具与自动化交易实战内容。
登录 注册

MQL5 向导 - 基于两个指数平滑移动平均线交叉的交易信号 - MetaTrader 5 专家

author emer | 431 人阅读 | 0 人评论 |

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

MQL5 向导允许自动创建 EA 交易代码。看在 MQL5 向导中创建现成的 EA 交易了解详情。

在这里,我们将考虑基于两个指数平滑移动平均线(快速 EMA 和慢速 EMA)交叉的策略。该策略称为“基于两个 EMA 交叉的信号”(在 MQL5 向导中自动创建 EA 时)。

贸易信号:

该策略在 CSignalCrossEMA 类中实现。

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

图 1. 基于两个指数平滑移动平均线交叉的交易信号

交易策略在 CSignalCrossEMA 类中实现,它有一些受保护的方法来简化对指标值的访问:

双倍的   快速EMA(整数工业)      // 返回柱的快速移动平均线的值
双倍的   慢速EMA(整数工业)      // 返回柱的慢速移动平均线的值
双倍的   状态EMA(整数工业)    // 返回柱的快速移动平均线和慢速移动平均线之间的差异


1. 开多仓

开立多头头寸的条件:

//+------------------------------------------------------------------+
//|检查开立多头头寸的条件(买入)                    |
//+------------------------------------------------------------------+
布尔值CSignalCrossEMA::CheckOpenLong(双倍的& 价格,双倍的&SL,双倍的& tp、日期时间和到期日)
  {
  如果(!(状态EMA(2)<0&& 状态EMA(1)>0))返回错误的);//---   价格=0.0;
   SL   =0.0;
   tp =0.0;//---  返回真的);
  }

2. 多头平仓

多头平仓条件:

//+------------------------------------------------------------------+
//|检查平仓条件 |//+------------------------------------------------------------------+
布尔值CSignalCrossEMA::CheckCloseLong(双倍的& 价格)
  {
  如果(!(状态EMA(2)>0&& 状态EMA(1)<0))返回错误的);//---   价格=0.0;//---  返回真的);
  }


3. 开空仓

空头开仓条件与多头平仓条件相同。

//+------------------------------------------------------------------+
//|检查开空头寸(卖出)的条件                  |
//+------------------------------------------------------------------+
布尔值CSignalCrossEMA::CheckOpenShort(双倍的& 价格,双倍的&SL,双倍的& tp、日期时间和到期日)
  {
  如果(!(状态EMA(2)>0&& 状态EMA(1)<0))返回错误的);//---   价格=0.0;
   SL   =0.0;
   tp =0.0;//---  返回真的);
  }

4. 平仓

空头平仓条件与多头开仓条件相同。

//+------------------------------------------------------------------+
//|检查空头平仓条件 |//+------------------------------------------------------------------+
布尔值CSignalCrossEMA::CheckCloseShort(双倍的& 价格)
  {
  如果(!(状态EMA(2)<0&& 状态EMA(1)>0))返回错误的);//---   价格=0.0;//---  返回真的);
  }

使用 MQL5 向导创建 EA 交易

要根据策略创建交易机器人,您需要将信号属性选择为“基于两个 EMA 交叉的信号” 在“创建现成的 EA 交易”选项中MQL5 向导:

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

图 2. 在 MQL5 向导中选择“信号,基于两个 EMA 的交叉”

接下来你必须指定需要的追踪止损算法和资金和风险管理系统。 Expert Advisor 的代码将自动创建,您可以对其进行编译和测试策略测试仪MetaTrader 5 客户端。

此外,标准库类包含“基于两个 MA 交叉的信号”,在 CSignalCrossMA 类中实现。交易理念类似,但它提供了许多附加功能(指定类型、移位和平均方法以及获利和止损水平的使用)。

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

图 3.MQL5 向导中的“信号,基于两个 MA 的交叉”

测试结果

让我们 考虑根据历史数据对 EA 交易进行回测(EURUSD H1,测试期:2010 年 1 月 1 日-2011 年 1 月 5 日,FastPeriod=12,SlowPeriod=24)。

在创建 EA 交易时,我们使用了固定交易量 (交易固定手数, 0.1), 未使用追踪止损算法 (未使用尾随)。

MQL5 Wizard - Trade Signals Based on Crossover of Two Exponentially Smoothed Moving Averages - expert for MetaTrader 5

图 4. EA 交易的历史回测结果(基于两个 EMA 的交叉)

附件:具有 CSignalCrossEMA 类的 SignalCrossEMA.mqh 必须调整到 Terminal_data_folder\MQL5\Include\Expert\Signal 文件夹。

crossover_2ema.mq5 包含使用 MQL5 向导创建的 EA 交易的代码。


附件下载

📎 signalcrossema.mqh (10.88 KB)

📎 crossover_2ema.mq5 (5.88 KB)

Source: MQL5 #261

🔐
请登录后参与评论
注册满12小时后评论,即可解锁附件下载
立即登录