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

MQL5 向导 - 基于三个移动平均线的交易信号 - MetaTrader 5 专家

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

MQL5 Wizard - Trade Signals Based on Three Moving Averages - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Three Moving Averages - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Three Moving Averages - expert for MetaTrader 5

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

在这里,我们将考虑基于三个移动平均线的趋势策略。该策略称为“基于三个 EMA 的信号”。为了确定趋势,它使用三个指数平滑移动平均线:FastEMA、MediumEMA 和 SlowEMA。

该策略在 CSignal3EMA 类中实现(signal3ema.mqh 必须放置到terminal_data_folder\MQL5\Include\Expert\Signal\Signal3EMA.mqh)。

MQL5 Wizard - Trade Signals Based on Three Moving Averages - expert for MetaTrader 5

图 1. 基于三个移动平均线的交易信号

交易策略在 CSignal3EMA 类中实现,它有一些受保护的方法来简化对三个移动平均线(快、中、慢)值的访问:

双倍的快速EMA(整数工业)      // 返回柱的快速 EMA 值
双倍的中EMA(整数工业)    // 返回柱的中 EMA 值
双倍的慢速EMA(整数工业)      // 返回柱的慢速 EMA 值
第 0 个(未完成)柱的指标值可能会发生变化,因此有必要使用已完成(已形成)柱数据执行交易条件检查。


1. 开多仓

上升趋势由以下条件决定:FastEMA>MediumEMA>SlowEMA:

//+------------------------------------------------------------------+
//|检查开立多头头寸的条件(买入)                    |
//+------------------------------------------------------------------+
布尔值CSignal3EMA::CheckOpenLong(双倍的& 价格,双倍的&SL,双倍的&TP,日期时间及有效期)
  {
  双倍的中=中EMA(1);//---   价格=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;//--- 检查上升趋势(在最后完成的柱上):FastEMA(1)>MediumEMA(1)>SlowEMA(1)  返回(快速EMA(1)>中 && 中>SlowEMA(1));
  }


2. 多头平仓

下降趋势由以下条件确定:FastEMA

//+------------------------------------------------------------------+
//|检查平仓条件 |
//+------------------------------------------------------------------+
布尔值CSignal3EMA::CheckCloseLong(双倍的& 价格)
  {
  双倍的中=中EMA(1);//---   价格=0.0;//--- 检查下降趋势(在最后完成的柱上):FastEMA(1)  返回(快速EMA(1)<中 && 中1));
  }
您可以改进多头平仓:不必等待下跌趋势,平仓时可以平仓,可以通过以下条件确定:FastEMASlowEMA。


3. 开空仓

//+------------------------------------------------------------------+
//|检查开空头寸(卖出)的条件                  |
//+------------------------------------------------------------------+
布尔值CSignal3EMA::CheckOpenShort(双倍的& 价格,双倍的&SL,双倍的&TP,日期时间及有效期)
  {
  双倍的中=中EMA(1);//---   价格=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;//--- 检查下降趋势(在最后完成的柱上):FastEMA(1)  返回(快速EMA(1)<中 && 中1));

  }

4. 平仓

//+------------------------------------------------------------------+
//|检查空头平仓条件 |
//+------------------------------------------------------------------+
布尔值CSignal3EMA::CheckCloseShort(双倍的& 价格)
  {
  双倍的中=中EMA(1);//---   价格=0.0;//--- 检查上升趋势(在最后完成的柱上):FastEMA(1)>MediumEMA(1)>SlowEMA(1)  返回(快速EMA(1)>中 && 中>SlowEMA(1));
  }

您可以改进平仓:不必等待上涨趋势,平仓时可以平仓,可以通过以下条件确定:FastEMA>MediumEMA

使用 MQL5 向导创建 EA 交易

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

MQL5 Wizard - Trade Signals Based on Three Moving Averages - expert for MetaTrader 5

图 2. 在 MQL5 向导中选择“基于三个 EMA 的信号”

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

测试结果

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

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

MQL5 Wizard - Trade Signals Based on Three Moving Averages - expert for MetaTrader 5

图 3. EA 交易的历史回测结果(基于三个 EMA)

附件:具有 CSignal3EMA 类的 Signal3EMA.mqh 必须放置到terminal_data_folder\MQL5\Include\Expert\Signal。

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


附件下载

📎 signal3ema.mqh (12.94 KB)

📎 threeema.mq5 (6.19 KB)

Source: MQL5 #250

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