ExpertZZLWA - MetaTrader 5EA
- 显示:
- 1431
- 等级:
- 已发布:
- 2018.03.16 13:18
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
安装指南
为了测试 EA 交易,需要下载 ZigZagLW 补充 指标的试用版。ZigZagLW Addition.ex5文件必须位于 MQL5\Indicators\Market 目录。另外,下载 IsNewBar 开发库,并把 isnewbar.mqh 文件加到 MQL5\Include 目录,然后下载 EA 文件 ExpertZZLWA.mq5, 在编辑器中打开并编译它。模型就可以用来测试了。
测试
发布这篇文章的目的就是演示 ZigZagLW 补充指标的潜在获利能力,它也可以简要描述为一个“趋势指标”。如需了解指标算法的详细描述,请参见 https://www.mql5.com/en/market/product/2647. 我们将使用来自https://www.mql5.com/en/code/19102的 EA 交易来开发一个基于这个特定指标的自动交易系统模型。没有从EA代码中删除任何内容 - 不需要的代码行被注释掉了,并且加上了所需的代码块。我还改变了 EA 的名称。修改的代码是像下面这样注释的:
//**************************
...
//**************************
工作原理: 当出现适当信号时,EA会进行买入和卖出,但是它不是一种反转 EA :所有的订单都是通过止损或者获利来关闭的,并且开启订单的数量等于信号的数量。
让我们确定一下评估自动化系统效率的主要标准以及评估的方法。在初始化阶段,我们只有一个模型,想要了解它是否是一个用于构造系统的好的基础,对这个问题的好的答案可以从长时间段测试的余额曲线来获得,如果余额曲线显示出稳定的向上趋势,这种模型可以认为是一个系统的基础,然后可以再加上过滤器,指标,资金管理和其他元素。一般来说,基础必须是稳定的,作为增加功能的好的基石。
为了避免人工评估使用所有参数的不同的余额曲线,让我们对优化做出合理限制,选择(通过尝试猜测)最好的参数集。
这里我们可以使用一些经典思路,我在这里想提到一本书,它不是我的第一选择,我喜欢其中的交易者原则列表,其他作者提出这样的想法通常是不确定地散布在文字中的,这本书就是 John Piper 的 "交易之路(The Way to Trade)" 。打开第九章阅读:
交易的奥秘:
- 砍掉你的亏损
- 让你的利润奔跑
- 有选择性地交易
- 顺势交易
在我们的例子中,这些奥秘的意义如下:
- 止损应当小
- 获利应当大
- 在模式种没有程序
- 在买入信号处买入,在卖出信号处卖出
四个原则中的三个可以实现,尽管对最后一项有些要注意: 信号并不表示长期的趋势,在价格达到获利的过程中,信号可能有多次改变。在这里信号更像是随机振荡的角色,但是它所需的特点包括在趋势的开始有早期的提醒和明确的形态。所以更准确地说,这里讨论的指标可以部分达到项目3和4,但是都不能完全达到它们。长线趋势指标的问题是有巨大的延迟,但是还是可以使用这样的信号,例如当信号形成时用于调整仓位大小。
第一个屏幕截图显示了优化参数,只优化了两个参数,stoploss(止损) 和 takeprofit(获利):
Level 参数的意思是 ZigZagLW 补充指标中使用的水平,而 mode 显示的是 EA 的运行模式。在 original_mode 中, EA 以最初的 MT45 EA 方式运行; 在 addition_test_mode 中,它使用了 ZigZagLW 补充指标的信号; 在 ma_test_mode 中,它是用了移动平均交叉信号。
这个 EA 在 MetaTrader 5 终端中使用了来自 access.metatrader5.com:443服务器的数据进行了优化,因为它在文章 https://www.mql5.com/en/articles/385#files 中被推荐使用, 使用的数据段是2000年1月1日到2016年12月31日,时段为M15的控制点模式 - 它在第二个屏幕截图中已经显示了。
优化的结果在附件的这里 - complete period.xml.
探讨一下最佳结果: 它在测试结束之前明显有一段很长的失败区间,它以橙色突出显示。
下一次优化是在 2012年1月1日到2016年12月31日的数据中所做的。结果位于文件 partial period.xml 中。
让我们选择最佳结果,再看看这些参数在2000年1月1日到2016年12月31日的整个区间工作得如何。
为了便于比较,我增加了第三个 EA 模式 ma_test_mode. 在这种模式中,使用了移动平均的交叉作为信号,目的是取得相同数量的交易,来比较结果并评估使用相同止损和获利参数的交易信号的效果。
总体观察
结果可能看起来对有些人看起来挺鼓舞人心,但是对另一些人来说还不够好。这里我们只需注意不可否认的事实:
- 这种模型对应了经验丰富的交易者的推荐,即砍掉亏损而让利润奔跑:它反应在了余额线上,因为净值线是高于余额线的。
- 净值线在很长的时间段显示了稳定向上的趋势,而回撤较小。
- 一个纯机械模型,使用了少量的参数优化。
最佳的参数 (StopLoss=3600, TakeProfit=6700, Level=Long_term1) 是一种妥协,测试这些参数可能会更加有趣,因为交易者们常推荐的是 StopLoss=500 以及 TakeProfit=8000。
让我们比较用于移动平均交叉信号的相同参数
模型变化后,参数 StopLoss = 500, TakeProfit = 8000 是和有经验的交易者的想法最接近的,但是它在心理学角度上是最复杂的:因为余额曲线有很长的平台,也有长期的连续亏损交易(直到145个),很少有交易者能够遵循这个建议(也许这也是为什么它还有用)。
在大多数书中描述的建议和技巧在交易中是有用的,我想,就算在特定的时间段完全随机入场,这些参数还将会显示获利,
有些自动化系统相互之间差别很大,但是下单参数相同,在选定的时间段中差不多有相同数量的订单,
与在外汇市场这样相当波动的环境下相比,在其他波动较小的市场上可能有更好的结果。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/19646
两个相同的交易系统,基于 XDidi_Index_Cloud 指标的颜色变化来进行买入和卖出交易,可以在一个 EA 交易中使用不同方法来配置。
Exp_ColorJFatl_Digit_Tm_Plus基于 ColorJFatl_Digit 指标信号的交易系统,可以设置固定的仓位持有时间。