大家好!今天我想跟大家聊聊一个非常实用的趋势跟随交易系统——Exp_Sinewave2_X2。这个系统主要依赖于两个指标的信号来进行交易决策,分别是Sinewave2。
第一个指标用于根据主线和信号线的位置判断慢趋势的方向,而第二个指标则是在两条线交叉或接触时,确定开仓的时机。当以下两个条件同时满足时,系统会在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_H6; // 1个图表周期用于趋势 input uint Length=10; // 指标平滑系数 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 Length_=10 // 指标周期 input uint SignalBar_=1; // 接收入场信号的K线编号 input bool BuyPosClose_=false; // 允许根据信号平仓多头 input bool SellPosClose_=false; // 允许根据信号平仓空头 //+-------------------------------------------------+
需要注意的是,代码中包含的字符串变量主要用于更好地展示EA输入参数窗口的内容。
在EA中使用的指标Sinewave2_Cloud_HTF仅用于策略测试器中更方便地可视化趋势,其他操作模式下是无效的。
为了确保生成的EA能够正确运行,必须确保指标的编译文件CyclePeriod.ex5、Sinewave2.ex5和Sinewave2_Cloud_HTF.ex5都在<terminal_data_directory>\MQL5\Indicators文件夹中。
另外,TradeAlgorithms.mqh库文件允许在开仓时使用带有非零点差的经纪商,并且可以设置止损和止盈。你可以在Trade Algorithms下载该库的其他版本。
下面的测试使用了EA的默认输入参数,测试中未使用止损和止盈。

这里是2016年GBPUSD的测试结果,慢趋势在H8周期,快趋势在M30周期入场:

图2. 测试结果图表