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

MQL5 向导 - 基于 MACD 指标主线和信号线交叉的交易信号 - MetaTrader 5 专家

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

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

MQL5 向导提供自动创建 EA 交易(请参阅MQL5 向导:无需编程即可创建 EA 交易)。

MACD 指标的主线由快速 EMA 和慢速 EMA 之差计算得出。 MACD 的信号线作为主线计算,用PeriodSignal 周期进行平滑。

贸易信号:

该策略实施于C信号MACD 的类别交易策略课程MQL5 标准库(位于 MQL5\Include\Expert\Signal\SignalMACD.mqh)。

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

图 1. 基于主要 MACD 线和信号 MACD 线交叉的交易信号

交易策略的实施是在C信号MACD类,它有一些受保护的方法来简化对指标值的访问:

双倍的  主要MACD(整数工业)     // 返回柱的主要 MACD 线的值
双倍的  信号MACD(整数工业)   // 返回柱的信号 MACD 线的值
双倍的  状态MACD(整数工业)    // 返回主要 MACD 线和信号 MACD 线之间的差异
整数     外部状态MACD(整数工业);// 返回主线和信号线差值的符号变化次数


1. 开多仓

开立多头头寸的条件:

//+------------------------------------------------------------------+
//|检查开立多头头寸的条件(买入)                    |
//+------------------------------------------------------------------+
布尔值CSignalMACD::CheckOpenLong(双倍的& 价格,双倍的&SL,双倍的&TP,日期时间及有效期)
  {
   价格=0.0;
   sl   =m_symbol.Ask()-m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Ask()+m_take_profit*m_adjusted_point;//---  返回(外部状态MACD(1)==1);
  }


2. 多头平仓

多头平仓条件:

//+------------------------------------------------------------------+
//|检查平仓条件 |
//+------------------------------------------------------------------+
布尔值CSignalMACD::CheckCloseLong(双倍的及价格)
  {
   价格=0.0;//---  返回(外部状态MACD(1)==-1);
  }


3. 开空仓

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

//+------------------------------------------------------------------+
//|检查开空头寸(卖出)的条件                  |
//+------------------------------------------------------------------+
布尔值CSignalMACD::CheckOpenShort(双倍的& 价格,双倍的&SL,双倍的&TP,日期时间及有效期)
  {
   价格=0.0;
   sl   =m_symbol.Bid()+m_stop_loss*m_adjusted_point;
   tp   =m_symbol.Bid()-m_take_profit*m_adjusted_point;//---  返回(外部状态MACD(1)==-1);
  }


4. 平仓

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

//+------------------------------------------------------------------+
//|检查空头平仓条件 |
//+------------------------------------------------------------------+
布尔值CSignalMACD::CheckCloseShort(双倍的及价格)
  {
   价格=0.0;//---  返回(外部状态MACD(1)==1);
  }

使用 MQL5 向导创建 EA 交易

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

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

图 2. 在 MQL5 向导中选择“基于主线和信号 MACD 线交叉的信号”

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

测试结果

让我们考虑一下 EA 交易对历史数据的回溯测试(EURUSD H1,测试期:2010 年 1 月 1 日-2011 年 1 月 5 日,PeriodFast=12,PeriodSlow=24,PeriodSignal=9,StopLoss=20,TakeProfit=80)。

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

MQL5 Wizard - Trade Signals Based on Crossover of Main and Signal lines of MACD indicator - expert for MetaTrader 5

附件:SignalMACD.mqh 与C信号MACD类(包含在MQL5 标准库)位于 MQL5\Include\Expert\Signal 文件夹。 testmacd.mq5 包含使用 MQL5 向导创建的 EA 交易的代码。


附件下载

📎 signalmacd.mqh (10.5 KB)

📎 testmacd.mq5 (6.12 KB)

Source: MQL5 #262

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