wufuhehe 发表于 2020-4-23 08:40:52

结合EA自动交易系统策略的指标


自动交易系统 (ATS) 的问题陈述如下:
试想我们已有一个基本交易系统 - BTS。有必要创建并训练一个神级网络来做事情, 但 BTS 不能胜任这个任务。必然结果是创建一个交易系统, 由两种组合构成, 且系统互补: BTS 和 NN (神经网络)。
或是, 像英文谚语所说: 没必要再去发现大陆, 它们都已经被发现。为什么要教导一些人跑得快些, 如果我们有一辆车, 或者飞翔, 如果我们有一架飞机?
一旦我们拥有一款趋势跟随 ATS, 我们仅需教导神经网络逆势策略。这是必然的, 因为一个目的在趋势基础上进行交易的系统, 不能在盘整, 或者识别出行情回撤或翻转时交易。您可以, 当然, 利用两个 ATS - 一个跟随趋势, 另一个逆势 - 并挂载到同一图表上。另一面, 您可以训练一个神经网络来补充您已存在的交易系统。
为此目的, 我们设计一个两层神经网络, 其构成在下层有两个感知, 在上层有一个感知。
神经网络的输出可以是这三种状态之一:

入场做多
入场做空
过渡状态

实际上, 第三种状态是在 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 不需要任何重新优化,   并识别市场形态十分良好。

jaryk 发表于 2020-4-23 09:08:45

感谢楼主分享!!!!

冷若风霜 发表于 2020-4-24 11:48:05

这是二十年前的东西?还能用吗

□o□ 发表于 2020-8-14 11:22:38

帮你顶下哈!!

AD瑞智广告 发表于 2020-8-22 15:24:01

帮你顶下哈!!

石冰心 发表于 2020-8-25 10:00:41

帮你顶下哈!!

wsq0713 发表于 2020-12-1 10:57:14

支持下

yuntian 发表于 2020-12-21 17:27:03

谢谢

外汇小生 发表于 2021-1-20 10:00:41

支持下

不惑的惑 发表于 2021-1-20 19:28:44

支持下
页: [1] 2 3 4
查看完整版本: 结合EA自动交易系统策略的指标