量化软件下载:赫兹量化中运用人工智能实现的 Thomas DeMark 次序

1. 概述

人工智能系统遍及人类的日常活动。交易者是首批采用它们的群体。我们来讨论如何在交易中使用基于 神经网络 的人工智能系统。

首先, 我们设定一个神经网络不能自行完成交易。这便是, 如果有一个神经网络, 并为它提供无限量的价格数据, 指标和其它他美味佳肴 — 获得永无终止的结果, 所以这个想法可以立即被丢弃。神经网络只能从侧面为策略 "服务": 协助制订决策, 过滤, 预测。能体现出一个完整策略的神经网络是无稽之谈 (至少我个人从未见过)。

在本文中, 我将告诉您如何把一个非常著名的策略与神经网络合并以便成功交易。它是有关运用人工智能系统实现 Thomas DeMark 次序 策略。DeMark 在 "技术分析的新科学" 一书中很好地描述了次序, 任何读过此书的交易者均将受益。您可 在此 找到此书的更多详情。

首先, 用几句话来概括策略。次序是逆势策略。其中出现的信号不依赖于彼此。换言之, 可以在一行里收到买卖信号, 这令次序的使用极大地复杂化。就像任何其它策略一样, 它会产生假信号, 我们将要找出来。作者本人很好地描述了基于次序生成信号的原理。他的解释在这里稍作修改。仅应用了策略的第一部分, 使用 设置 和 交汇 信号。选择它们出于两个原因: 一是这些信号位于顶部和底部; 其次, 它们发生的频率比倒计时和入场要高得多。

请注意: 人工智能绝对可以嵌入任何交易策略, 甚至传统的均线交叉。在任何一种情况下, 决策时刻在任何策略中都是最重要的。关键点是分析每根柱线是一个乌托邦。所以, 有必要确定分析市场状况的柱线时刻。这恰恰是交易策略的意图所在。再者, 只要能收到信号, 分析方法也许是绝对任意的, 从均线交叉到分形。在次序的情况下, 我们感兴趣的是绿点窗口, 在此期间要甄别市场状况, 并判断信号的有效性。

编辑切换为居中

添加图片注释,不超过 140 字(可选)

图例. 1. 由 nikelodeon.mql5 指标生成的 TDSEQUENTA

我们来分析一下没有神经网络的次序交易策略的运行情况。在图例中, 您可以看到绿点的外观。此处展示了策略的自适应版本 — 不使用特定数量的柱线 (例如, 9 根连续柱线), 而是只要满足条件。一旦策略的条件不再符合, 就会出现一个信号。因此, 根据当前的市场状况, 每个信号会出现在自身的数个圆点之后。这是次序适应市场的地方。此效果提供了分析由绿点组成的窗口的能力。该窗口对于每个信号具有不同的持续时间。当使用 AI 时这会给出一定的优势。选择以下配色方案: 绿点后的蓝点表示买入信号, 红点 — 卖出信号。

可以看出, 第一个卖出信号 (红点) 原来是假的, 因为它随后的信号更高。当依次跟随信号操作时, 按照这个红点入场肯定会造成损失。第一个蓝点也是欺骗性的: 在此价格买入会带来显著的回撤。如何区分信号的虚假或有效?这个任务可以通过人工智能, 即神经网络 (NN) 来解决。

2. 市场前后承接

交易系统在前一天运行良好。昨天, 它搞砸了。今天, 一切都再次可以容忍。听起来很熟悉?当然, 每位交易者都要面对交易系统的质量日益变化的事实。问题不在于系统本身。这要归咎于所谓的 交易日前后承接。它是根据以往交易量的变化, 持仓和价格波动形成的。简言之, 交易背景是由这些数据精确地确定的, 在每天的结束时这些都是不同的。这为我们带来一个重要的建议: 在假定进行交易的日子里, 以类似条件交易日的数据优化您的机器人。优化神经网络时最困难的任务是确保训练样本不包括当天将会形成的形态。日线前后承接即是这种包含之一。

我们来研究下面的例子。今天, 交易量和持仓下降, 而汇率上升。显然, 行情正在减弱, 预期会出现下行逆转。仅使用交易量和持仓降低同时汇率增长的交易日数据训练神经网络, 为神经网络输入提供这样的形态, 则在全天产生更多机会的概率极大。这将令神经网络依据行情前后承接进行训练。以同样的参数, 行情更有可能在当天做出相同的反应。轻易就可计算出, 交易量、价格和持仓的组合只有 9 种变化。通过为每个前后承接单独训练网络, 整个行情将被覆盖。九个训练有素的模型可平均工作两周, 在某些情况下更长。

在 eVOLution-dvoid.1.3 (1) 指标的协助下, 可轻松在日线前后承接下安排操作。该指标基本上是从位于目录 ...\Files\evolution-dvoid\dvoid-BP.csv 的 csv 文件里读取数据。可以看到, 在此使用的是英镑兑美元的报价。为了正确显示数据, 并能够在当天的前后承接中随时使用这些数据, 必须在每天早上在莫斯科时间大约 7 点 30 分访问 芝加哥证券交易所 网站。下载每日公报 (英镑第 27 号), 它体现前一天结束时的交易量和持仓。这些数据应该在每天交易开始前添加到 "dvoid-BP.csv"。日间, 指标将显示交易量与前值的比值变化。也就是说, 它并非市场需求的实际数值, 而只是变化率。持仓数值也是如此: 重要的是它的相对走势。

3. 组织模型的方法

为了增加训练样本, 并提供恰当的泛化级别, 有必要引入一个重要的条件。这些信号将被 分别针对买入和卖出 化分为有效和虚假的。这样神经网络本身的资源不会浪费在信号归类上。我们将提前分离这些信号, 并建立两个模型: 一个负责买入信号, 另一个将用于卖出信号。这个简单的技巧使训练样本的大小倍增。已知事实: 培训样本越多, 其泛化程度越高, 模型对行情的适应性就越长久。

我们来引入 置信区间 的概念: 模型被信任并认为适合使用的间隔。假设计算模型的置信区间包含训练间隔的 1/3。也就是说, 依据 30 个信号进行模型训练之后, 我们假定它的充分运行周期为 10 个信号。然而, 一个模型的持续时间比训练间隔长三倍并不罕见。

值得注意的是 (且相当自然), 当训练间隔增加时, 模型的泛化能力下降。这证实了理论: 圣杯不存在。如果我们能够依据所有的行情历史训练一个具有 100% 泛化程度的神经网络, 我们应能得到一个无限期工作的理想模型。唉, 实践表明这是一个乌托邦式的空想。但构建一个良好的长线模型仍然是可行的。这个秘密在于作为输入传递到网络的数据。如果它们反映出输出变量的本质, 并以此为根源, 那么构建模型就不会有麻烦了。

顺便说一下, 关于 输出变量。选择构建网络的输入数据如同搜索输入数据一样困难。通过查看信号的历史数据, 可以精确地判定哪些信号是有效的, 哪些是虚假的。作为规则, 构建输出变量时, 每个信号都要明白无误地解释, 使得网络输出理想。此即为, 输出不可包含单个错误, 这使得神经网络在学习中努力达到相同的理想输出。自然地, 在较长的间隔内获得泛化级别为 100% 的模型实际上是不可能的。毕竟, 不太可能存在这种在足够长的间隔中无误解读输出变量信号的数据。甚或, 如果这样的数据存在, 则令神经网络变得完全没必要。

有鉴于此, 输出变量的形成应会带有轻微的错误, 而此处由信号带来的小损失会被显著的盈利所掩盖。这会导致输出变量不理想, 但有令资金增长的潜力。换言之, 失误导致的损失微不足道, 可由其它更多获利信号所覆盖。这样即可获得具有高泛化级别的输出变量模型。在此情况下, 已知这种模型的误差程度是非常重要的。因此, 信号的置信将会有调整。

最后, 当构建模型时最重要的方面是为输出变量 选择一个含义。当然, 盈利是首先想到的。过去的盈利信号将被表示为 1, 而亏损的则为 0。不过, 还有许多其它语义变量用于输出, 这将提供更多关于行情的有价值信息。例如: 信号后会有回滚, 会达到一定的盈利, 跟随信号的柱线会看跌还是看涨?所以, 使用相同的输入数据时, 输出变量可能以各种方式分配一个含义。这产生了更多关于行情的信息, 如果多个模型相互确认, 盈利的概率就会增加。

我经常遇到尝试在长间隔里接收 100 个或更多信号的交易者。所以, 我不会分享这种渴望。在我看来, 10-15 个信号足以生活, 但它们的误差不能超过 20%。这是出于这样一个事实, 即使十分之二的信号导致最大的亏损, 我们仍然有八个正确的信号。其中至少有两个会产生足够的利润来弥补损失。

那么, 如何制定一个能长时间工作的模型?例如, 我们需要一或两周内在 M5 上稳定运行的系统 — 如果操作没有过度优化, 这是一个很好的结果。假设主要指标, 主要交易系统 (在我们的例子中, 次序) 每天平均生成 5 个信号。将为行情前后承接的九种模式中的每一种选取 10 个信号。只是, 一周只有五个交易日。这意味着一些模型将彻底无法工作, 而有些模型则可工作。实践表明, 每个模型每周触发不超过两次, 而且很罕见 — 每周触发三次。这表明, 考虑到 10 个信号样本以外周期的置信区间, 泛化神经网络的工作时间将会超过一周。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值