今天我们来聊聊一个非常有趣的趋势跟随交易系统——Exp_X2MA_JFatl。这个系统主要是基于ColorX2MA和ColorJFatl指标信号构建的。ColorX2MA指标用来确认主要的慢趋势方向,而ColorJFatl指标则帮助我们在快速趋势变化时找到入场点。当以下两个条件满足时,系统会在K线闭合时生成入场信号:
- 快速和慢速趋势信号重合;
- 快速趋势已改变方向。
EA输入参数:
//+-------------------------------------------------+
//| EA指标的输入参数 |
//+-------------------------------------------------+
input string Trade="交易管理"; //+============== 交易管理 ==============+
input double MM=0.1; //每笔交易的存款占比
input MarginMode MMMode=LOT; //手数价值检测方法
input uint StopLoss_=1000; //止损点数
input uint TakeProfit_=2000; //止盈点数
input string MustTrade="交易权限"; //+============== 交易权限 ==============+
input int Deviation_=10; //最大价格偏差点数
input bool BuyPosOpen=true; //允许开多头头寸
input bool SellPosOpen=true; //允许开空头头寸
//+-------------------------------------------------+
//| 过滤指标的输入参数 |
//+-------------------------------------------------+
input string Filter="慢趋势参数"; //+============== 趋势参数 ==============+
input ENUM_TIMEFRAMES TimeFrame=PERIOD_H4; //1个图表周期用于趋势
input Smooth_Method MA_Method1=MODE_SMA_; //第一个平滑平均方法
input uint Length1=12; //第一个平滑深度
input int Phase1=15; //第一个平滑参数,影响过渡过程的质量
input Smooth_Method MA_Method2=MODE_JJMA; //第二个平滑平均方法
input uint Length2=5; //第二个平滑深度
input int Phase2=15; //第二个平滑参数,影响过渡过程的质量
input uint SignalBar=1; //获取入场信号的K线索引
input bool BuyPosClose=true; //允许根据趋势平仓多头头寸
input bool SellPosClose=true; //允许根据趋势平仓空头头寸
//+-------------------------------------------------+
//| 入场指标的输入参数 |
//+-------------------------------------------------+
input string Input="入场参数"; //+=============== 入场参数 ===============+
input ENUM_TIMEFRAMES TimeFrame_=PERIOD_M30; //2个图表周期用于入场
input uint iLength=5; //JMA平滑的深度
input int iPhase=100; //JMA平滑的参数,影响过渡过程的质量
input uint SignalBar_=1; //获取入场信号的K线索引
input bool BuyPosClose_=false; //允许根据信号平仓多头头寸
input bool SellPosClose_=false; //允许根据信号平仓空头头寸
//+-------------------------------------------------+
//| EA指标的输入参数 |
//+-------------------------------------------------+
input string Trade="交易管理"; //+============== 交易管理 ==============+
input double MM=0.1; //每笔交易的存款占比
input MarginMode MMMode=LOT; //手数价值检测方法
input uint StopLoss_=1000; //止损点数
input uint TakeProfit_=2000; //止盈点数
input string MustTrade="交易权限"; //+============== 交易权限 ==============+
input int Deviation_=10; //最大价格偏差点数
input bool BuyPosOpen=true; //允许开多头头寸
input bool SellPosOpen=true; //允许开空头头寸
//+-------------------------------------------------+
//| 过滤指标的输入参数 |
//+-------------------------------------------------+
input string Filter="慢趋势参数"; //+============== 趋势参数 ==============+
input ENUM_TIMEFRAMES TimeFrame=PERIOD_H4; //1个图表周期用于趋势
input Smooth_Method MA_Method1=MODE_SMA_; //第一个平滑平均方法
input uint Length1=12; //第一个平滑深度
input int Phase1=15; //第一个平滑参数,影响过渡过程的质量
input Smooth_Method MA_Method2=MODE_JJMA; //第二个平滑平均方法
input uint Length2=5; //第二个平滑深度
input int Phase2=15; //第二个平滑参数,影响过渡过程的质量
input uint SignalBar=1; //获取入场信号的K线索引
input bool BuyPosClose=true; //允许根据趋势平仓多头头寸
input bool SellPosClose=true; //允许根据趋势平仓空头头寸
//+-------------------------------------------------+
//| 入场指标的输入参数 |
//+-------------------------------------------------+
input string Input="入场参数"; //+=============== 入场参数 ===============+
input ENUM_TIMEFRAMES TimeFrame_=PERIOD_M30; //2个图表周期用于入场
input uint iLength=5; //JMA平滑的深度
input int iPhase=100; //JMA平滑的参数,影响过渡过程的质量
input uint SignalBar_=1; //获取入场信号的K线索引
input bool BuyPosClose_=false; //允许根据信号平仓多头头寸
input bool SellPosClose_=false; //允许根据信号平仓空头头寸
//+-------------------------------------------------+
在输入代码中包含的字符串变量仅用于更好地显示EA输入窗口。
ColorJFatl_HTF和ColorX2MA_HTF指标在EA中仅用于策略测试器中更方便地可视化趋势,它们在其他操作模式下并不使用。
请将ColorX2MA.ex5、ColorX2MA_HTF.ex5、ColorJFatl.ex5和ColorJFatl_HTF.ex5编译文件放到<terminal_data_folder>\MQL5\Indicators中,以确保生成的EA正常运行。
请注意,TradeAlgorithms.mqh库文件允许在提供非零点差的经纪商中使用专家顾问,并且可以在开仓时设置止损和止盈。您可以在以下链接下载该库的更多版本:交易算法。
测试中使用了默认的专家顾问输入参数,测试中未使用止损和止盈。

图1. 交易示例
以下是2015年EURJPY的测试结果,在H4上慢趋势下,以M30的快速趋势作为入场依据:

图2. 测试结果图