请观看如何免费下载自动交易
请在Twitter上找到我们!
加入我们粉丝页
有趣的脚本?
因此发布一个链接 -
让其他人评价
喜欢这个脚本? 在MetaTrader 5客户端尝试它
EA

自动交易系统 "合集" - MetaTrader 4EA

显示:
6329
等级:
(23)
已发布:
2016.03.29 11:49
需要基于此代码的EA交易或指标吗?请在自由职业者服务中订购 进入自由职业者服务
自动交易系统 (ATS) 的问题陈述如下:

试想我们已有一个基本交易系统 - BTS。有必要创建并训练一个神级网络来做事情, 但 BTS 不能胜任这个任务。必然结果是创建一个交易系统, 由两种组合构成, 且系统互补: BTS 和 NN (神经网络)。

或是, 像英文谚语所说: 没必要再去发现大陆, 它们都已经被发现。为什么要教导一些人跑得快些, 如果我们有一辆车, 或者飞翔, 如果我们有一架飞机?

一旦我们拥有一款趋势跟随 ATS, 我们仅需教导神经网络逆势策略。这是必然的, 因为一个目的在趋势基础上进行交易的系统, 不能在盘整, 或者识别出行情回撤或翻转时交易。您可以, 当然, 利用两个 ATS - 一个跟随趋势, 另一个逆势 - 并挂载到同一图表上。另一面, 您可以训练一个神经网络来补充您已存在的交易系统。

为此目的, 我们设计一个两层神经网络, 其构成在下层有两个感知, 在上层有一个感知。
神经网络的输出可以是这三种状态之一:

  1. 入场做多
  2. 入场做空
  3. 过渡状态

实际上, 第三种状态是在 BTS 之上传递的控制状态, 而开头的二种状态是神经网络给出的交易信号。

神经网络训练划分为三个阶段, 每个阶段用于训练一种感知。在任何阶段, 优化的 BTS 必须要让感知明白可以做什么。

通过遗传算法单独训练感知是由算法缺乏确定的, 亦即: 在该算法的帮助下搜索输入数量是有限的。不过, 每个训练阶段是连贯的, 且神经网络不是很大, 所以整个优化不会花费太多时间。

在最初阶段, 训练神经网络之前, 包括在 BTS 的优化。

为了不会遗失自我, 我们将在 ATS 的输入里记录阶段号码, 标识为 "pass"。相应于阶段号码的输入标识将等于此阶段号码。

所以, 开始准备优化并训练神经网络。让我们来设置初始存款为 $1000000 (为了不会在优化期间产生假的爆仓), 并且在策略测试器里的 EA 属性 "测试" 栏将输入优化为 "余额", 然后开始遗传优化。

进入 EA 属性的 "输入" 栏, 并指定开仓交易量为 1 手。

优化执行将会遵照模型: "仅开盘价 (最快速的方法来分析刚完成的柱线, 仅用于 EA 明确控制柱线开盘)", 因为这个方法在 ATS 算法里可用。

优化阶段 1。BTS 的优化:

设置输入 "pass" 为 1。
我们仅优化与第一个阶段相对应的输入, 即以 1 结尾。所以, 我们只检查这些输入来优化, 并忽略所有其它的。

tp1 - BTS 的止盈。它的优化数值范围 10 到 100, 增量 1
sl1 - BTS 的止损。它的优化数值范围 10 到 100, 增量 1
p1 - 在 BTS 中的 CCI 周期。它的优化数值范围 3 到 100, 增量 1


阶段 2。训练负责空头仓位的感知:

设置输入 "pass" 为 2 (根据阶段号码)。
取消所有前一阶段已检查的用于优化的输入。为防万一, 将前一阶段获取的输入保存到一个文件。

根据我们的规则检查用于优化的输入: 它们的识别符必须以 2 结尾:

x12, x22, x32, x42 - 识别空头仓位的感知权重数字。它的优化数值范围 0 到 200, 增量 1
tp2 - 通过感知开仓的止盈。它的优化数值范围 10 到 100, 增量 1
sl2 - 通过感知开仓的止损。它的优化数值范围 10 到 100, 增量 1
p2 - 通过感知分析价格差异的周期。它的优化数值范围 3 到 100, 增量 1。

采用遗传优化算法开始训练。


阶段 3。训练负责多头仓位的感知:

设置输入 "pass" 为 3 (根据阶段号码)。
取消所有前一阶段已检查的用于优化的输入。为防万一, 将前一阶段获取的输入保存到一个文件。

根据我们的规则检查用于优化的输入: 它们的识别符必须以 3 结尾:

x13, x23, x33, x43 - 识别多头仓位的感知权重数字。它的优化数值范围 0 到 200, 增量 1。
tp3 - 通过感知开仓的止盈。它的优化数值范围 10 到 100, 增量 1
sl3 - 通过感知开仓的止损。它的优化数值范围 10 到 100, 增量 1
p3 - 通过感知分析价格差异的周期。它的优化数值范围 3 到 100, 增量 1。

采用遗传优化算法开始训练。


阶段 4 (最终)。训练第一层, 即, 训练上层感知:

设置输入 "pass" 为 4 (根据阶段号码)。
取消所有前一阶段已检查的用于优化的输入。为防万一, 将前一阶段获取的输入保存到一个文件。

根据我们的规则检查用于优化的输入: 它们的识别符必须以 4 结尾:

x14, x24, x34, x44 - 第一层的感知权重数字。它的优化数值范围 0 到 200, 增量 1。

p4 - 通过感知分析价格差异的周期。它的优化数值范围 3 到 100, 增量 1。

采用遗传优化算法开始训练。

这就是全部, 神经网络已经训练完毕。

ATS 有一个非优化输入, mn - 魔幻数字。它是交易系统仓位的标识符, 目的是不与其它手动或 ATS 系统的仓位混肴。魔幻数字必须是唯一的, 不能与非本 EA 开仓的魔幻数字冲突。

附言,

  • 初始存款大小应是绝对回撤的两倍, 即, 我们认为的安全资源。
  • 此 EA 给出的源代码未优化。
  • 如果您需要用其它交易系统的算法替换内置的 BTS, 您必须修改函数 basicTradingSystem() 的内容。
  • 为了免于输入优化步骤的初始和最终值, 您可以采用现成的文件e combo.set, 将其置于文件夹 \tester MT4, 并在测试器的 EA 属性里加载它。
  • 在周末重新运行 EA 优化, 即, 在周六或周日, 但是只在前一周的结果不盈利时。亏损的存在意味着市场已经变化, 且重优化是必需的。盈利的存在意味着 ATS 不需要任何重新优化, 并识别市场形态十分良好。


由MetaQuotes Ltd译自俄语
原代码: https://www.mql5.com/ru/code/7917

NRTR (Nick Rypock 跟踪反转) NRTR (Nick Rypock 跟踪反转)

NRTR 指标在上升趋势中位于图表下方, 而在下降趋势中位于图表上方.

20_Pips 20_Pips

本EA交易是基于统计学的, 并且带有马丁格尔的元素.

显示最新柱的开盘价与前一柱收盘价之差的指标 显示最新柱的开盘价与前一柱收盘价之差的指标

本指标在主窗口的左上角显示第零柱的开盘价与第一柱的收盘价之间的差距点数.

ZH_Global_Chart_Variable_Lib ZH_Global_Chart_Variable_Lib

本库用于操作全局图形变量.