自动交易系统 (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 不需要任何重新优化, 并识别市场形态十分良好。
结合EA自动交易系统策略的指标
请登录之后再进行评论
登录
向各位汇友学习