SelfLearningExperts - MetaTrader 5EA
- 显示:
- 2963
- 等级:
- 已发布:
- 2014.02.05 07:16
- 已更新:
- 2016.11.22 07:33
- 需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
该 EA 自 MQL4 重写, 作者是 lsv, 源链接 - www.mql5.com/ru/code/9431。
它如何工作
该 EA 工作于即时价, 与图表的时间帧无关。依当前市场正在形成的平均价格范式。一些范式以不同参数的形成。范式数量设置在 Nidelt 变量中。对于第一个范式使用 dstop 参数, 对于第二个 - dstop*2, 等等, 直到 - dstop*N, 此处 N 是范式数量。如果价格变化进入 dstop*N 值, 则捕获一个新的范式点。最后的点会被删除, 因此范式会有固定的长度 Nidelt 点。一个范式的更多设置值有, 捕获历史的深度。因此, 市场已经被在不同的历史深度上并行跟踪。
当一些范式改变 (市场情况中改变), 将会开一个虚拟仓。此处的任务是将开仓条件与一定的市场情形链接。它按以下方式产生: 范式按价格值序列编码成二进制序列, 如果一个点的值高于前值, 它是 1, 否则 - 0。在此序列中计算唯一的范式数字 (即转换二进制数字为十进制数字)。
它可以开一至三个虚拟仓, 带有不同的止损/止盈, 止损和止盈值相同。止损/止盈值由 dstop 参数定义, 一个仓位使用 dstop*1, 其它仓位 - dstop*2, 等等。如果价格升至止损/止盈的概率值, 它将增加这个范式的上升值, 如果下降 - 它将减少概率值。虚拟开仓要三种范式, 范式参数, 范式数量 (它的形式), 和止损/止盈。同时, 根据虚拟交易来计算每种组合的涨或跌概率。
如果根据三个参数的任意组合 (参数, 数量, 止损/止盈) 创建不少于 10 个虚拟交易, 如果市场上同样的情况发生 (确定参数和数字范式自动检测), 在这种情况下, 可以依据止损/止盈值统计基础上计算出的概率, 在确定方向上开仓。
这将花费很多时间来收集统计。该 EA 的作者写道: "它可以花费几周时间"。该收集统计过程可以通过测试员提速。然而, 在测试员中的即时价变化与一个真正的市场可以有很大的不同。作者建议这样来做: 在测试员中教育 EA 并在模拟帐户中运行近一周。如果 EA 表现阳性结果 (此处它将学习一点点), 这样它也许可以用于实盘帐户。
准备一个 EA
EA 的准备工作第一阶段是优化参数: Nidel, Nstop, dstop, forg, Probab, NN, delta。在此阶段, 优化执行应关闭参数 ReadHistory 和 SaveHistory。在发现一组可接受的参数组合以后, 必须执行一次 SaveHistory=true 的测试。之后在帐户中运行 EA 且 ReadHistory=true - 该 EA 开始立即工作并在测试员中收集足够的统计。在帐户中运行时建议参数 SaveHistory 打开, 以便自动保存数据, 当 EA 重启时可以准备好立即工作。
当在测试员中使用 SaveHistory 预运行测试, 学习数据会保存在文件, 文件名 FD_[Symbol]。如果 EA 对 EURUSD 测试, 文件名是 «FD_EURUSD», 如果是 GBPUSD – 则 «FD_GBPUSD», 等等。文件保存在 Files 文件夹, 这是所有客户端的通用数据文件夹。您可以通过 MetaEditor 的主菜单找到通用数据文件夹 – 打开通用数据文件夹。通过这个文件夹, 数据可以用 ReadHistory 读取。
EA 保存教育结果, 有两个保存文件在交易处理中是必要的。文件名: FDlast_buy[Symbol][时间帧], 和 FDlast_sell[Symbol][时间帧]。这些文件无需关注。
该 EA 仅依据时间帧中保存的学习数据的周期性和虚拟交易之间的最小时间。它等于两根柱线的密度, 所以 EA 在不同时间帧里的工作结果会有些不同。
下图示意 EA 以省缺设置, 工作于 EURUSD M15 时的学习结果。
参数
- ReadHistory - 读取保存的历史学习结果。
- SaveHistory - 保存历史学习结果。测试期间, 历史结果将一直保存到测试结束, 当工作于帐户时 - 经常是过度学习方式.
- Lots - 仓位交易量。
- Nidelt - 范式数量, 不可超过 30。
- Nstop - 虚拟开仓参数数量 (止损和止盈的不同值, 止损和止盈等同), 1, 2 或 3。
- dstop - 虚拟开仓参数变化步长 (止损和止盈)。
- forg - 遗忘学习成果的速率, 值应比 1 大一点。
- Probab - 由如何执行开仓的学习如果定义的概率级别。
- NN - 范式大小不可大于12。
- delta - 范式参数变化步长。
- ReplaceStops - 新开仓信号出现时修改止损/止盈。止损/止盈换位操作仅在持仓方向。
- Trailing - 尾随级别; 当值为 0, 尾随被禁止。
由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/1108