以下是作者的描述以及我的小改动,因为现在五位数字已经用于货币对。 EA 的目标如下:假设我们有一个基本的交易系统( BTS )。我们应该设计和训练一个神经网络( NN ),以便它可以通过执行 BTS 无法访问的动作来补充 BTS。因此,我们将得到一个由两个组合和互补的 BTS 和 NN 组成的交易系统。 轮子早就发明了,没必要重新发明。如果有汽车,教任何人跑得快,或者如果你有直升机,教任何人飞快有什么意义?
* n$ k! V' h# f# U, R$ J 如果我们有趋势 TS,则有必要只教神经网络一个反趋势策略。用于趋势的系统不能在横盘期间交易,也不能充分定义回滚和反转。当然,我们可以使用两种交易策略(趋势和反趋势)并在一个图表上启动它们。另一方面,我们可以训练一个神经网络,使其补充交易系统。 为此,我们开发了由两个底层感知器和一个上层感知器组成的两层神经网络。
; K9 Q; Z# K7 O4 y神经网络可能处于以下三种状态之一: - 进入长
- 输入短
- 不明确的
+ b6 `4 N1 i9 L2 b/ b4 n7 @ 9 U/ J" A, R! W2 Q. N, i
第三种状态意味着控制权被传递给 BTS,而交易信号是由网络在前两种状态下产生的。神经网络训练分为三个阶段。每个人都训练了一个感知器。优化的 BTS 出现在每个阶段,让感知器知道它可以做什么。 使用遗传算法对感知器进行单独训练是由该算法的缺点引起的,即在其帮助下可以选择的参数数量有限。无论如何,每个训练阶段在逻辑上是一致的,并且神经网络不会太大,因此整个优化过程发生在合理的时间内。 但 NN 训练之前的第一阶段是针对 BTS 优化的。 为避免混淆,在 EA 输入中使用“通过”ID 指定阶段编号。与阶段编号对应的输入 ID 以该确切编号结尾。 让我们为神经网络优化和训练做初步准备。 将测试器中的初始存款设置为 100 美元(优化期间不创建人为追加保证金),优化“余额 + 最大夏普比率”参数,“快速遗传算法”优化类型。 现在,转到 EA 属性的 Inputs 选项卡。 通过将值 0.01 分配给 " lots " ID
. ?5 o8 j, L0 V! J来设置开仓的手数。 将根据“仅开盘价”模型进行优化。该方法因其高速而被选中。此外,EA 算法具有新的柱管理功能。 第一优化阶段。基站优化: 将 pass 设置为 1。
1 u. b2 i% m7 \& v仅优化与第一阶段相对应的输入,其所有 ID 都以一个结尾。因此,在它们上设置优化标记,仅从其余参数中删除标记。 tp1 - BTS 获利。使用 100 到 1000 的值进行优化,步长为 10
9 R! H1 M) ~& F! Vsl1 - BTS 止损。使用 100 到 1000 的值进行优化,步长为 104 X8 y2 G( D4 S) M; e) z
p1 - BTS 中应用的 CCI 振荡器周期。使用从 3 到 100 的值进行优化,步长为 1 通过遗传算法优化开始训练。 第二阶段。训练负责空头头寸的感知器: 将“通过”输入设置为 2(使其与阶段编号匹配)。 % C h+ ^8 A& F- g7 a4 o
去除上一阶段设置的优化标记。将上一阶段获得的输入保存到文件中以防万一。 为第二阶段参数设置优化标记(ID 以两个结尾): x12, x22, x32, x42 - 感知器识别空头头寸的权重比。使用从 0 到 200 的值进行优化,步长为 1。6 }! {( I0 _* E
tp2 - 由感知器打开的头寸获利。使用 100 到 1000 的值进行优化,步长为 10
# _. r$ w7 k3 r+ x2 Xsl2 - 感知器开仓的止损。使用 100 到 1000 的值进行优化,步长为 10
% Q, N# x" i8 zp2 - 感知器分析的价格差异值周期。使用从 3 到 100 的值进行优化,步长为 1。 通过遗传算法优化开始训练。 第三阶段。训练负责多头头寸的感知器: 将“通过”输入设置为 3(使其与阶段编号匹配)。
4 F7 s$ F8 N* b去除上一阶段设置的优化标记。
/ W% n1 w6 L( f _7 Y将上一阶段获得的输入保存到文件中以防万一。 为第三阶段参数设置优化标记(ID以三结尾): x13, x23, x33, x43 - 感知器识别多头头寸的权重比。使用从 0 到 200 的值进行优化,步长为 1。- m8 G A; j$ D! d, ~* K, I: w
tp3 - 由感知器打开的头寸获利。使用 100 到 1000 的值进行优化,步长为 10, j4 T- c8 b9 E7 x; _
sl3 - 感知器开仓的止损。使用从 100 到 1000 的值进行优化,步长为 10
* F% ?; F. @. c' ]p3 - 感知器分析的价格差异值周期。使用从 3 到 100 的值进行优化,步长为 1。 通过遗传算法优化开始训练。 最后第四阶段。 训练第一层(上层感知器): 将“pass”输入设置为 4(使其与阶段编号匹配)。
/ A3 y) z+ N3 N去除上一阶段设置的优化标记。 ! P# `2 L7 r& }9 Z0 ?0 M
将上一阶段获得的输入保存到文件中以防万一。 为第四阶段参数设置优化标记(ID 以四结尾): x14, x24, x34, x44 - 第一层感知器的权重比。使用 0 到 200 的值进行优化,步长为 1。
e5 z2 B4 N [, Z" dp4 - 感知器分析的价格差异值周期。使用从 3 到 100 的值进行优化,步长为 1。 通过遗传算法优化开始训练。
: B: d; k0 ~5 R6 { 就这些。神经网络经过训练。 EA 具有另一个不可优化的“mn”输入 - 幻数允许系统在手动或其他 EA 打开的订单中区分自己的订单。幻数应该是唯一的。 附言 - 初始存款规模定义为绝对回撤乘以 2(安全边际)。
- EA 的源代码尚未优化
- 如果您想用另一个交易系统的算法替换内置的 BTS,请更改 basicTradingSystem() 函数的内容
- 如果前一周的结果无利可图,则在周末重新优化 EA。市场变化和需要重新优化的损失信号。如果 EA 盈利,则不需要重新优化,因为机器人可以很好地识别市场模式。; R) B, Z* f0 Y. J5 b2 y
( i/ r) x, p. r7 S4 X) U |