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



MQL5 向导允许自动创建 EA 交易代码。看在 MQL5 向导中创建现成的 EA 交易了解详情。
在这里,我们将考虑基于三个移动平均线的趋势策略。该策略称为“基于三个 EMA 的信号”。为了确定趋势,它使用三个指数平滑移动平均线:FastEMA、MediumEMA 和 SlowEMA。
该策略在 CSignal3EMA 类中实现(signal3ema.mqh 必须放置到terminal_data_folder\MQL5\Include\Expert\Signal\Signal3EMA.mqh)。

图 1. 基于三个移动平均线的交易信号
交易策略在 CSignal3EMA 类中实现,它有一些受保护的方法来简化对三个移动平均线(快、中、慢)值的访问:
双倍的快速EMA(整数工业) // 返回柱的快速 EMA 值 双倍的中EMA(整数工业) // 返回柱的中 EMA 值 双倍的慢速EMA(整数工业) // 返回柱的慢速 EMA 值
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 3. 开空仓 4. 平仓 您可以改进平仓:不必等待上涨趋势,平仓时可以平仓,可以通过以下条件确定:FastEMA>MediumEMA 使用 MQL5 向导创建 EA 交易 要根据策略创建交易机器人,您需要将信号属性选择为“基于三个 EMA 的信号” 在“创建现成的 EA 交易”选项中MQL5 向导: 图 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), 未使用追踪止损算法 (未使用尾随)。 图 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//+------------------------------------------------------------------+
//|检查平仓条件 |
//+------------------------------------------------------------------+
布尔值CSignal3EMA::CheckCloseLong(双倍的& 价格)
{
双倍的中=中EMA(1);//--- 价格=0.0;//--- 检查下降趋势(在最后完成的柱上):FastEMA(1)
//+------------------------------------------------------------------+
//|检查开空头寸(卖出)的条件 |
//+------------------------------------------------------------------+
布尔值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)
//+------------------------------------------------------------------+
//|检查空头平仓条件 |
//+------------------------------------------------------------------+
布尔值CSignal3EMA::CheckCloseShort(双倍的& 价格)
{
双倍的中=中EMA(1);//--- 价格=0.0;//--- 检查上升趋势(在最后完成的柱上):FastEMA(1)>MediumEMA(1)>SlowEMA(1) 返回(快速EMA(1)>中 && 中>SlowEMA(1));
}


附件下载
💡 精彩内容推荐
✍️ 楼主最新发布
🔗 您可能感兴趣
