请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  数理科学 帖子:3364670 新帖:28

运用人工智能实现的 Thomas DeMark 次序

我们棒棒哒发表于:4 月 17 日 15:26回复(1)


1. 概述

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

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

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

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

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

               

 图例. 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 个信号样本以外周期的置信区间, 泛化神经网络的工作时间将会超过一周。

4. 神经网络理论

现在我们转向神经网络的理论。您可能以为我会教您拓扑, 命名和训练方法?您错了。

我们将讨论以下内容。使用神经网络有两个方向, 因其拓扑结构不同。其中一个是预测, 另一个是分类。

一个 预测 网络会产生输出变量的未来值。相信除了方向本身之外, 它也会产生报价方向 (上或下) 的程度。例如, 当前 EURUSD 汇率为 1.0600, 网络输出结果为一小时内会升到 1.0700 - 网络预测 +100 点。请注意, 我不赞成神经网络的这种方法, 因为 未来没有定义。就个人而言, 我发现这个哲学观点足以令人放弃这种使用神经网络的方法。当然, 我意识到这只是一个品味的关系, 值得一提的是, 预测网络的工作做得很好。

不过, 我更喜欢分类网络。它们给出了目前市场状况的解读, 而且它测定的准确度越高, 交易就越成功。在这两种情况下, 收到来自网络的响应都会令我们采取一些行动。在第一种情况下, 我们以 1.0600 买入, 一旦价格达到 1.0700 则卖出。在第二种情况下, 只需简单地买入, 并在下一个信号时交易离场, 但不能预测精确的价位。

为了揭示这种方法的本质, 请参见一个历史轶事。有一天, 世界象棋冠军加里·卡斯帕罗夫 (Garry Kasparov) 被问及在比赛中当他计划下一步的走法时,会向前推算多少步。大家都以为卡斯帕罗夫会说出一个极大的数字。然而, 象棋选手所说的话证明, 远非每个人都明白比赛的本质: "下棋最重要的不是你能向前推算多少步, 而是分析当前状况的优劣"。这同样适用于外汇市场: 了解游戏的本质, 没有必要向前观望若干柱线。在确定时刻判断市场的现状, 迈出正确的步伐就足够了。

这是我最欣赏的意识形态, 但又是品味的关系。预测神经网络也很受欢迎, 不能剥夺它们存在的权利。

5. 人工智能系统的内部组织

除了存在构建和使用神经网络 (预测和分类) 的两种方法, 本主题还包括两种类型的专家 - 人工智能系统的开发者及其用户。我确定 Stradivari 虽然没有成为一名伟大的演奏家, 但他的小提琴演奏得非常出色。仪器的创造者肯定能够使用它, 但并不总是主人才能充分认识到它的创造潜力。不幸的是, 我无法联系此处描述的优化器的作者: 他没有响应电子邮件。不过, 他是众所周知的论坛常客。他的名字是 Yury Reshetov。
 

我在工作中使用了他的方法, 作为与他沟通的结果, 我发现了优化器的内部结构, 这就是我想告诉您的。我希望作者不会介意: 该产品是以开源发表的。作为人工智能系统的用户, 我不需要了解程序代码, 但知道优化器的内部结构是必要的。我强调这个产品, 主要是因为优化器使用的 训练方法 与经典的不同。训练神经网络的弱点是对它们过度训练。几乎不可能确定它是否发生以及程度如何。Reshetov 的优化器使用不同的方法: 网络不能过度训练, 只能训练不足。这种方法可用百分比来评估网络学习的质量。我们渴望有 100% 的上限 (实现这样的结果是非常困难的)。举例, 一旦我们获得了 80% 的经过训练的网络, 则我们知道网络会在 20% 的情况下产生误差, 并为此做好准备。这是此方法的主要优点之一。
 

优化器的操作结果在代码文件内。它包含两个网络, 它们中的每一个都是非线性方程。每个函数首先对数据进行规整, 随后将它们顺序递送到非线性方程的输入。已经实现了由两个网络组成的 "委员会", 以提高泛化能力。如果两者都说 "是", 则信号有效; 如果两者都说 "不" — 假。如果两个网络的值不同, 则接收到 "不确定" 的响应。请注意: 过去没有 "不确定" 状态, 因为总是可以对过去的数据信号进行分类。因此, 这里, "不确定" 意味着同时发生假信号和有效信号的可能性。这给出了从二进制计算到量子计算的过渡。作为一个类比, 考虑一个量子位: 它可以取值 1 和 0。与 "不确定" 相同: 这个回应可以是历史上的一和零。这里隐藏的一个小技巧将用于交易。稍后将会讨论它。
 

我们来进行数据准备。数据本身呈现为 Excel 表格。这里的列是网络输入。最后一列是输出变量。根据其含义, 此列包含 1 和 0。在我们的情况下, 获利信号由 1 表示, 亏损信号为 0。表格的行表示信号出现时存储的数据。当加载到优化器中时, 表格切分为两个样本 — 训练和测试, 两个网络进行交叉训练。但这些网络的委员会执行计算和优化。因此, 每个网络的训练分开进行, 但要考虑整体结果。

在本节结尾处, 我强调: 运行人工智能系统或编程的环境并不重要。即使最原始的感知器也可以使用误差的反向传播方法进行训练, 而不是过度训练, 这要归功于网络输入端的优良数据。根本的组件并非人工智能系统, 而是 所用数据的质量。因此, 优化器首先对数据进行规整, 然后将数据递送到传统的非线性方程。如果输入数据是输出变量的原因, 那么这个具有 20 个系数的简单方程将在近期产生 10 个误差为 20% 的信号。然而, 已经反复指出, 任何价格变换都会导致滞后。因此, 任何指标通常会有延迟, 从而影响人工智能系统的操作。输入和输出变量将在下一篇文章中详细讨论。
 

 

6. TD 次序和神经网络

现在我们进入上述理论的实际应用。

我们将在实际交易中分析一段间隔。神经网络操作将通过蓝色箭头显示。当箭头在红点处向上指时, 这意味着卖出信号有效; 当箭头向下指时, 信号为假。如果箭头丢失, 则表示 "不确定" 响应。买入信号 (蓝点) 相反: 向上箭头表示有效信号, 而向下箭头表示虚假信号。
 

我们来研究模型在日间的操作。乍一看, 这是很难赚钱的, 但事实并非如此。分离 原理的理解可用来协助。例如, 有两个不同的信号。根据人工智能, 它们当中的一个是假的卖出信号, 实际上赚了一点利润。在从 AI 接收到下一个 "假" 卖出信号之后, 必须检查这两个信号是参考相同的分离区域, 亦或它们是否相同。如果是这样, 对于获利信号, 有必适应指标, 以便箭头与行情方向一致, 即指向信号的盈利。
 

看看这个数字。第一个卖出信号 (红点) 原来是无利可图的。但当箭头转而向下的时候, 它就会变得有利可图, 因为卖出信号 #2 与信号 #1 落在同一个区域。通过转动箭头, 第二个信号也变得有利可图, 可以交易。现在考虑买入信号。正如所见, 在此情况下, AI 再次犯错, 假设盈利信号是假的。只能留待修复这种状况, 并反转买入信号 #3 的箭头。结果就是, 信号 #4 开始指示正确的方向。但信号 #5 进入另一个区域, 与以前的信号不同, 导致行情反转。

换言之, 我们获得了一个稳定的亏损逆模型, 将其反转并得到一个盈利模式!我称之为 模型取向。一般来说, 它是在一个信号期间实现的。在一天的开始等待一个买入信号和一个卖出信号出现就足矣了, 定向并使用它们进行操作。这样一来, 日内至少可以获得 3-4 个信号。关键点在于检查过去的信号和绩效。代之, 有必要比较两个最新的信号, 检查它们是否属于一个组, 并且如果之前信号的结果是已知的, 那么看看必须采取什么行动。同时, 不要忘记神经网络可能会产生误差。


 

图例. 2. 指标 BuyVOLDOWNOPNDOWN.mq5 和 SellVOLDOWNOPNDOWN.mq5


 

图例. 3. 取向指标 BuyVOLDOWNOPNDOWN.mq5 和 SellVOLDOWNOPNDOWN.mq5

以下两个数字显示了网络在 4 天内的运行情况。应当注意, 在操作中仅使用第二个信号。所有盈利信号均标有绿线, 亏损信号为红色。第一个数字展示了纯网络操作, 第二个展示了根据当天第一个信号取向的操作。第一个绝非令人印象深刻。但如果您看第二个数字, 从每天的第二个信号开始处理交易, 以交易系统为导向, 图形变得更加漂亮。不要忘记应谨慎使用反转技术。


 

图例. 4. 指标遵照每天的名义, 并未取得正确的方向


 

图例. 5. 每天的指标, 遵照当天的第一个信号 (分别买入和卖出)

 

在这种形式下, 模型不再看上去很失败, 而是相当有能力。由于它们没有耗尽其置信区间资源, 所以它们可能会在数天有效。
 

分类的本质是多维数据空间由通用线切分, 即 将信号分类为 "有效" 和 "虚假" 组。"有效" 信号高于零, 而"虚假" 信号低于零。这里主要是从其它一些信号分离信号的稳定性。引入了 TS 取向的概念。重要的是判断网络何时开始稳定亏损, 产生反向信号。一般来说, 在此情况下, 当天的第一个信号可作为指导。基于其它分析因素,  这个信号可进行交易, 但是要非常小心。我的建议: 为了确保网络未跑偏, 尝试令输出变量中的零和一数量相等。出于均衡, 从最远的信号开始, 随意从训练样本中去除过多的零和一。

只要为了长久稳定, 确切的划分过程无关紧要。我们回到我们的示例: 在图例 2 中, 在重新定向之前, 我们在一行里收到了两个误差, 并利用了这种形势。如您所见, 当次序在 M15 上运行时, 日间可以得到 2 至 5 个信号。例如, 如果两个买入信号分为不同的类别 (一个是有效的, 另一个是虚假的), 则知道第一个信号的结果就会很容易确定当前的信号是什么 — 是假的还是有效的。不过, 应谨慎地采用定向方法。网络可能会产生误差, 然后继续正常工作。在任何情况里, 一切依赖经验, 机械反射以及对于形态的直觉。计划在后续文章中更详细地研究所获模型的可持续性, 因为与本主题有很多细微差别。
 

注意: 所附文件参照上述图。您可以下载它们并在特定的日期上进行测试。交易系统对报价不敏感, 尽管曾出现过次序在另一家经纪商平台上没有产生信号的情况, 因为关键时刻的报价不同。但是, 这种情况很罕见, 输入数据对于每个人应该是相同的, 因为它们是从同一个来源提供的, 不会改变。同时, 无法保证您在计算机上运行下载的文件, 在同一时间段内获得相同的结果。但是您应该能够使用模型来分离当前和以前的信号。
 

总而言之, 我们来研究上面提到的另外一个问题。当网络生成 "不确定" 信号时, 该怎么办, 这代表了什么意思?我重复一遍: 历史上没有这样一个 "不确定" 概念的地方。这仅仅表明训练样本没有类似的形态, 两个网络在这个问题上的意见有分歧。"不确定" 意味着获得的信号既可以有效, 也可以是假的。很可能使用更大的历史片段可以找到所需的形态, 并且网络将能够识别它。但训练深度很小 — 约 30 个信号, 相当于大约 8-10 天。自然地, 我们会定期遇到纠结信号和不熟悉的模型, 而这些在训练过程中是不存在的。根据我的观察, 一个模型工作的时间越长, 它给出 "不确定" 的响应越频繁。这符合 "实际行情" 的理论, 过去并不会参照未来。最近的形态也许会在即将或遥远的将来重现。市场的本质即是如此, 随着柱线收盘后越来越沉入历史, 柱线的意义逐渐下降。这是所有信息的一般规则: 它越久远, 意义越小。
 

对 "不确定" 状态进行分类有两种方法。请看下图。丢失箭头的信号以及臭名昭着的 "不确定" — 两个网络的委员对此解释不同。这些信号在图中表示为 1 和 2。若第一个是获利信号, 它必须是假的。


 

图例. 6. 根据日线的前后承接组织信号取向的方法  
 

 

有两种方式可以为 "不确定" 状态重新分类。第一种方法 十分简单 (参见图例. 7)。我们已经判断出 "不确定" 状态变为第一次假卖出。即是说, "不确定" 的卖出信号被认为是假的。信号 #2 也被认为是假的, 那么假设继续买入。事实上, 网络犯了错误, 但实际上这个错误可以通过在更好的价位入场来抵消。因此, 向上箭头的出现不会造成太大的伤害, 尽管实际上信号是负面的。"不确定" 买入信号 (蓝点) 也被视为假, 因为最后一次 "不确定" 发生时买入信号是假的。这种方法很古老, 但经验表明它的效果很好。
 


 

图例. 7. 当它被视为一个替代类时, "不确定" 信号的重新分类

第二种 "不确定" 状态的分类方法要求优化器的内部组织, 并以其为基础。因此, 当一个网络的委员会显示 1, 而另一个显示 0 时, "不确定" 状态出现。此方法的本质是选择委员会的网络, 显示正确的答案。让我们回到我们的示例。当网络 A 高于零并且网络 B 低于时, 信号 #1 被证明是假的。因此, 如果网络 B 大于零, 并且网络 A 较低, 则此 "不确定" 状态是有效的。对于买入信号, 一切都是相反的: 当网络 A 的响应为负, 网络 B 为正时, 先前的信号 (图中不存在) 为假。在当前的买入信号中, 情况相反, 所以我们假设这个信号是有效的, 并且建议进行买入交易。


 

图例. 8. 根据每个网络委员会的价值为 "不确定" 信号重新分类

我个人更喜欢 "不确定" 状态的第一种分类方法, 它有一个相当合乎逻辑的解释。当使用两个网络的委员会时, 我们得到三个类别: "是", "否" 和 "不确定"。数据分配给这三组。重要的不是我们有三组, 而是它们根本不同。在获得 "不确定" 信号后, 并稍后发现其方向后, 这一组中的后续信号被认为具有相同的方向。目前的经验表明, 这种方法比第二种方法更可靠。

预测金融行情是困难的: 它们是一个真实且不可预测的有机体, 实际的人们在此工作。日间, 行情状况也许变化极大, 没有人能想象到 — 即非市场主管者, 也非主要参与者, 更别提我们了。这种变化的特征包括两个组成部分。第一个是行情的前后承接, 已经讨论过了。第二个原因是买家和卖家的实时活动, 此时此地。所以, 交易中的主要事情是及时取向, 高度警惕!

使用人工智能即非灵丹妙药, 也非圣杯。当然, 当您使用神经网络进行交易时, 绝对值得倾听人工智能所说的话。但是, 当进行交易时要使用您的头脑。一旦收到来自人工智能的信号, 有必要等待其确认, 选择正确的价位, 评估回滚概率, 等等。这就是我在第三篇文章中想要讨论的内容, 它将致力于利用基于神经网络的次序策略实践交易的特性。

 

7. 结论
 

再一次, 我想强调, 本文本质上是纯粹的方法论。所有描述的方法都可以在您的交易系统中使用, 希望能够发现这些建议会被使用。
 

我确定这些所描述的方法同时会有支持者和反对者。如果您读到这些行, 那么您至少有一些兴趣。我高度感激您对不同意见的看法, 尤其是如果您有建设性的解决方案, 改进或修改。换言之, 建设性地批评!这种方法的可持续性可以通过与我一起构建人工智能系统来证明。我很高兴与专业的程序员一起为此项目而工作, 我邀请您参与合作。
 

本文末尾提供了 TD Sequential 的代码, 以及在交易开始时, 参考日线前后承接和取向对买卖信号进行过滤或分类的指标。请注意, 这些指标已依据 MQL4 重写, 且并未提供完整功能来重现本文展示的所有内容。原因在于神经网络的输入数据需要一套付费的  ClusterDelta 项目的指标。

我愿意为所有感兴趣的人士提供一个准备好的指标操作文件。为了完全重现操作算法, 将所有需要的指标采用 MQL5 重写将是很有趣的。我的任务是在此展示如何在著名的 DeMark 策略中使用创建和训练神经网络的开源代码。我会很高兴看到您的意见, 并回答您的问题。

文章中使用的程序:

 #名称
类型
 描述
1 TDSEQUENTA_by_nikelodeon.mq5指标 基本策略, 分别以蓝色和红色圆点的形式生成买卖信号。绿点意味着形成信号的条件已满足, 且有必要等待信号出现。此策略十分便利, 因为它事先通过绿点警告交易者相关的信号。
2 eVOLution-dvoid.1.3 (1).mq5指标 加载一个文本文件, 其中包含前一天的交易量和持仓数据, 计算数据之间的差值, 并全部保存在指标缓冲区中, 当保存数据以及选择当日模型时方便后续访问。换言之, 它组织了行情前后承接。
3 dvoid-BP.csv文本文件
 设计当中, 在莫斯科每天早上时间 7:30 从芝加哥证券交易所网站存储关于交易量和持仓的信息。每天早上手工记录数据。文件上传时以 txt 作为扩展名。将其下载之后, 扩展名应改为 csv 并放入文件夹 ..\Files\evolution-dvoid\dvoid-BP.csv
4 BuyVOLDOWNOPNDOWN.mq5指标 针对交易量和持仓同时下降的交易日进行买入信号分类的网络。
5 BuyVOLDOWNOPNUP.mq5指标 针对交易量下降和持仓上升的交易日进行买入信号分类的网络。
6 BuyVOLUPOPNDOWN.mq5指标 针对交易量上升和持仓下降的交易日进行买入信号分类的网络。
 7 BuyVOLUPOPUP.mq5 指标 针对交易量和持仓同时上升的交易日进行买入信号分类的网络。
 8 SellVOLDOWNOPNDOWN.mq5 指标
 针对交易量和持仓同时下降的交易日进行卖出信号分类的网络。
 9 SellVOLDOWNOPNUP.mq5 指标 针对交易量下降和持仓上升的交易日进行卖出信号分类的网络。
 10 SellVOLUPOPNDOWN.mq5 指标 针对交易量上升和持仓下降的交易日进行卖出信号分类的网络。
 11 SellVOLUPOPNUP.mq5 指标
 针对交易量和持仓同时上升的交易日进行卖出信号分类的网络。



全部回复

0/140

达人推荐

量化课程

    移动端课程