今天我们来聊一聊一个基于 ColorSchaffJCCXTrendCycle 指标的双向交易系统。这套系统支持多头和空头交易,能够根据前几笔交易的结果灵活调整下一笔交易的交易量。为了实现这一点,所有的输入参数被分为两大类:
- 以 L 开头的参数用于管理多头头寸;
- 以 S 开头的参数用于管理空头头寸。
//+----------------------------------------------+ //| 多头交易的输入参数 | //+----------------------------------------------+ magic numberinput uint L_Magic=777; //L 魔法编号 //+----------------------------------------------+ //| 空头交易的输入参数 | //+----------------------------------------------+ input uint S_Magic=555; //S 魔法编号
这两个交易系统使用不同的魔法编号,完全独立运作。真实的金融市场往往是不对称的,往往需要为牛市和熊市配置不同的参数。为了正确配置EA,我们应该先测试其中一个交易系统,并关闭另一个系统的相关开关。
input bool L_PosOpen=true; //L 允许进入多头头寸 input bool L_PosClose=true; //L 允许退出多头头寸
之后,对第二套系统进行相同的操作。
对于管理已开头寸的交易量,EA的输入参数块也被添加了:
input uint L_TotalMMTriger=5; //L 用于计算止损的最后五笔买入交易数 input uint L_LossMMTriger=3; //L 用于减少MM的亏损买入交易数 input double L_SmallMM=0.01; //L 亏损时的交易金额占比 input double L_MM=0.1; //L 正常交易时的交易金额占比 input MarginMode L_MMMode=LOT; //L 手数设置模式
并且
input uint S_TotalMMTriger=5; //S 用于计算止损的最后五笔卖出交易数 input uint S_LossMMTriger=3; //S 用于减少MM的亏损卖出交易数 input double S_SmallMM=0.01; //S 亏损时的交易金额占比 input double S_MM=0.1; //S 正常交易时的交易金额占比 input MarginMode S_MMMode=LOT; //S 手数设置模式
在这样的输入参数下,如果最近五笔交易中有三笔是亏损的,EA将以0.01手的量开下一笔交易。如果最近五笔交易中亏损笔数少于三笔,则仓位为0.1手。
为了让EA正常运行,编译后的 JCCX.ex5 和 ColorSchaffJCCXTrendCycle.ex5 指标文件需要放在 <terminal_data_directory>\MQL5\Indicators 中。
以下展示的测试使用了默认的EA输入参数,测试中未使用止损和止盈。

图1:对称设置下的交易示例
2017年GBPUSD H8的测试结果如下:

图2:测试结果图表

图3:非对称设置下的交易示例