ZUP - 派斯温托通用锯齿形调整浪模式。第 1 部分

Eugeni Neumoin | 26 二月, 2016

简介

每个认真致力于金融市场工作的人都迟早会开始创建其个人的交易系统。文本作者也因这项研究而创建了 ZUP,即派斯温托通用锯齿形调整浪模式。MetaQuotes Software Corp. 建议我写一篇关于该指标的文章。这篇文章就是我的首次尝试。在本文和后续文章中,我将阐述 60 版 ZUP 指标 (ZUP_v60) 的各项功能。作者用于访问金融市场的数据中心正好是使用 MetaTrader 4 平台的。交易终端中的内置标准指标无法有效地提供必要的市场分析。比起另起炉灶,我还是愿意整合现有资源,查漏补缺。所以我必须要能够使用 MetaTrader 4 客户终端进行所有必要的市场分析,而 MetaTrader 4 客户终端允许用户使用其内置语言 MQL4 创建自己的指标。

从开始开发我的指标以来的一年时间里,很多有趣的想法出现在我的脑海里。其中有不少已经实现了。指标有开放代码并可自由访问,这无疑有助于让人获取更多信息和想法。开发一个非商业化指标是一项重大决定。实际上,开发非商业化指标也是最好的解决方案。


理论思考

经过简短的研究之后,我决定将将锯齿形调整浪与派斯温托模式的不同算法和自动构建以及斐波纳奇锯齿形调整浪水平整合到一个通用指标内。我也了解到,除了派斯温托模式或斐波纳奇水平以外,实现不同图形工具的自动化绘制也是有可能的。我还组织了对可在这种通用指标中实施的想法的搜寻工作。我给自己布置了一项任务,即找出锯齿形调整浪所有隐含的潜在功能。结果,我实现了大多数已知图形工具的自动化绘图功能。一些新的图形工具(有关这些图形工具的想法是 ONIX 的论坛上众多访客提出的)也得以实施。指标的逻辑很简单:

  1. 将选定符号的报价放到指标的输入上;
  2. 用各种锯齿形调整浪找到图表中的市场最大值和最小值;
  3. 将各种图形工具锚定到最大值和最小值上方。

接下来对所获图形结构的处理蕴含着使用选定图形工具时所遵循的逻辑的相关知识。本文将描述 ZUP 中内置的锯齿形调整浪。同时还会提及 ZUP 中使用的一些图形工具。在第二篇专门介绍内置图形工具用法的文章中,对这些图形工具还会有更详尽的说明。我将尝试适当地命名所有的来源参考,这些参考中说明了指标中内置图形工具的使用方式。我认为用户应该仔细研究一下这些图形工具,以便理解它们背后的理念。


我最近读了一本书,名为 [1]。此书的副标题为“黄金分割的秘密”。书中讲述了黄金分割在所有自然现象中的表现方式。之后,我又读了另一本书,名为 [2]。这两本书帮助我了解了指标的开发方向。我的上一次开发做得略为杂乱无序。以下是从 Yu.N.Sokolov 的书中摘录的一些引文:

“宇宙是否有其存在的基础?如果有,是什么基础?对于这个问题,在我们从 1981 年就开始构建的一般周期理论中就已经给出了相当明确的回答。是的,宇宙的确有其基础,这种基础是一种通用相互作用结构。任何相互作用(世界本质上不是别的,就只是物质对象的相互作用)都是根据通用模式构成的。此模式是周期性的,即此模式中的时间是圆形运动的,任何参数的变动都以波形曲线来表现。我们称此模式为“相互作用量子”… 我们称此模式为“相互作用量子”… 我们在研究相互作用量子结构后得出的结论是,整个外部世界的规律只有一个,即相互作用量子的时空循环结构规律…”[2:7,由 MetaQuotes Software Corp. 翻译整理,2007 年]

相互作用中有两个力参与。

“黄金分割率是相互作用量子的一个常数… 出现了一个问题,即增加一个力和减小另一个力时,这种增减的极限在哪里。按照以下推理,这种极限是必然存在的。我们来想象一下没有这种极限时的情况。我们可以在增加一个力的同时,将另一个力减小到零。最后仅剩下一个力,相当于根本没有相互作用。这当然是不可能的。因此,增加一个力和减小另一个力时,必然有一个极限。而力的变动极限这一问题,在我看来是可以用黄金分割率来解决的。近年来,俄国科学界在不同的科学和技术领域里掀起了黄金分割率应用的复兴浪潮。科学家们明确指出,黄金分割率是一个通用常数。然而,黄金分割率的性质仍有待探索。我们认为这一性质仅可在一般周期理论 (GCT) 的范畴内进行研究...”。[2:29,由 MetaQuotes Software Corp. 翻译整理,2007 年]


如何将 GCT 的核心原则应用到科学研究中。相互作用的波动性质是由两个相反的且相互间的因果力或趋势之间的“比赛”或相互作用决定的。决定循环结构的正是这个“比赛”。因此,要应用一般周期理论,首先必须处理最重要的事情 - 检测这两个相反的力。在调查不同的系统时,这两个力也有不同的名称。如果我们 认为这是一种无机性质的相互作用,这两个力可称为作用力/反作用力...每一次研究中都必须明确检测出这些力,以便进行进一步的分析。找到两个相反的趋势后,必须设置两个相反的且相互作用的因果循环极。一个极由正力的最大值和负力的最小值组成。另一个极则与第一个极相反,由正力的最小值和负力的最大值组成。如上所示,振荡过程就是在这些极之间发生的。


下一阶段主要是找到一个参数,用于检测两个相反的力的惯性质量和变化率。将在特定时间段内跟踪处理速率,并按上述流程构建序列图。序列图显示波长、振幅和振荡“间距”。必要时,邻近周期对给定周期的干扰…»
[2:46,由 MetaQuotes Software Corp. 翻译整理,2007 年]


这里我没有给出著作 [3] 中的图和公式。它们是相当有趣的。如果愿意,你可以自己去读一下这本书。


检测金融市场上这两个相反的力并不是很难,它们就是买空和卖空。要找到金融市场上的循环极(极值),我们在我们的 ZUP 指标中使用锯齿形调整浪。绘制锯齿形调整浪指标时有很多可用算法。ZUP 中有内置的基于不同算法的锯齿形调整浪指标。务必找到时间和价格的极值的确切位置,即极值必须精确地放在对应价格柱的最大值或最小值上。正确预测循环的未来发展情况是必要的。使用各种图形工具研究循环极之间的相互作用。自从发现了所有自然现象中的黄金分割现象以来,ZUP 中重点使用不同的斐波纳奇工具。图形工具被锚定到用锯齿形调整浪找出的市场极值上。


ZUP 中内置的图形工具可以是静态的,也可以是动态的。静态图形工具锚定到已形成的锯齿形断点上,即不会再改变的断裂处。动态图形工具的锚定点位于锯齿形调整浪中始终不断变化位置的第一根线上。动态图形工具允许你快速作出决策。随着市场的发展,图形工具的设计将帮助我们了解未来的预期市场趋势。如果锯齿形调整浪的第一根线发生变化,则动态图形工具将会自动重新构建。


ZUP 中嵌入的锯齿形调整浪的说明

ZUP 有很多不同的参数。主要参数是 ExtIndicator。它选择一个可帮助寻找市场极值的锯齿形调整浪。将新的锯齿形调整浪或模式嵌入到 ZUP 中时,将逐个设置 ExtIndicator 编号。但有一个前提,无论使用哪个锯齿形调整浪,都不会在每一次价格变动时就重新计算一次。在以下情况下会重新计算:

  1. 价格跌出空柱之外(市价高于空柱的最高价位,低于空柱的最低价位,或出现新的空柱);
  2. 提取了早期历史记录;
  3. 终端启动时会提取终端关闭期间出现的历史记录。

所有锯齿形调整浪指标样式都是用参数 ExtStyleZZ 设置的:

  1. ExtStyleZZ = true - 使用 COLORS 选项卡设置锯齿形调整浪线条样式(菜单:图表 -> 指标 -> ZUP_v60 -> 属性 -> 颜色);
  2. ExtStyleZZ = false - 锯齿形调整浪显示为最小值和最大值处的点。

第一个锯齿形调整浪
ExtIndicator = 0 时,启用 2006 年夏天之前 MetaTrader 4 客户终端中提供的标准锯齿形调整浪。此锯齿形调整浪已略加改动。修改意见来自于 Nikolay Kositsin 发布的文章:在一些指标中多次重新计算空柱。我还使用了我自己的解决方案。以下是此锯齿形调整浪的设置参数:

  1. minBars 对应 MetaTrader 4 中提供的锯齿形调整浪中的 ExtDepth;
  2. ExtDeviation 对应 ExtDeviation;
  3. ExtBackstep 对应 ExtBackstep。

第二个锯齿形调整浪
ExtIndicator = 1 时,启用 Alex 的锯齿形调整浪(自动通道)。
算法
计算第一根柱的平均值。然后计算一根柱的 条件平均价格。根据这根柱的条件平均价格的变化, 探测下一根柱内的趋势方向。如果条件平均价格在点 minSize 或 minPercent(百分比值)中偏离了一个给定值,趋势将发生变化。
参数:

  1. minSize - 按点数过滤,提供结果点数;
  2. minPercent - 百分比过滤器,提供结果百分比,例如 0.5。

如果使用百分比,设置所需的值,反之则是 minSize = 0。

Третий ZigZag

ExtIndicator = 2 时,允许使用 ZigZag Ensign。ZigZag Ensign 是一个条件名称。这一版本的锯齿形调整浪是我在观察到作为 Ensign 中内置派斯温托模式基础的指标的操作情况后开发的。在 Ensign 软件网站上,有一则关于此指标构建原则的简短说明。

在 Ensign 中实现的指标算法可能会与 ZUP 中实现的算法略有差异。
算法。
第一根柱的最小值和最大值与后续柱的最小值和最大值相比较。 如果找到了最小值和最大值比第一根柱的对应值大/小的柱, 就可确定趋势方向。如果最小值和最大值 比第一根柱的对应值大,这是上升趋势。如果是小, 则是下跌趋势。然后说明牛市(上升趋势)的算法。对于熊市(下跌趋势),反之亦然。此趋势被确定 为上升趋势。在 hlast 变量中存储柱的最大值。如果下一根柱 的最大值高于上一根柱,则下一根柱仍然是上升趋势。存储柱最大值 hlast 的新值。如果最大值 相等,则趋势不变,保持上扬走势。如果 下一根柱上的最大值低于上一根柱的最大值 (hlast),则显示以下 可选项:

  1. 跳过柱的 minBars。对于柱的各个 minBars,其最大值必须低于开始计算 minBars 时的所在的上一根柱的最大值 (hlast)。如果至少一根柱上的价格超过了上一根柱的最大值 (hlast),则到该柱为止(包括该柱)的趋势被视为上扬趋势。柱的 minBars 是从下一根柱开始算起的。然后从第 minBars + 1 根柱开始分析这些柱。如果 hlast – Low[minBars + 1] > minSize,则趋势呈下跌状态。即,如果编号为 minBars + 1 或任何与之连续的柱的最小值偏离 hlast 一个超过 minSize 的值,则趋势变为下跌走势。在这种情况下,将从空柱方向上的最后一个最大值 (hlast) 开始计算编号为 minBars + 1 的柱。
  2. 如果任何 minBars 在上一个最小值的下方关单,也将变为下降趋势,无需等待编号为 minBars + 1 的柱进场。趋势发生变化,并在趋势发生变化的柱关单后绘制新的锯齿形调整浪线。

参数
minBars、minSize - 名称与 Ensign 中的名称相同。

Alex 的锯齿形调整浪和 Ensign 锯齿形调整浪没有标准锯齿形调整浪的缺陷:处理器不会过载;仅计算最后一个柱;不会出现连续最大值;最后的最小值和最大值是可预测的。此外,最后的最大值仅可增大,最后的最小值仅可减小。这些是趋势指标。另一方面,有必要在参数中搜索不同时间框架内的 Alex 的锯齿形调整浪和 Ensign 锯齿形调整浪。必须在参数中进行搜索,以找到不同时间范围内的正确波形结构。当 ZigZag ExtIndicator = 0 时,可在不同时间范围内使用相同的参数。

第四个锯齿形调整浪

ExtIndicator = 3 - 允许用略微修改过的算法处理 ZigZag Ensign。这种情况下应仅指定 minBars 值。指标窗口中给出的 minSize 值将被忽略。minSize 值是可变的,等于锯齿形调整浪指标的最后一条线末端所在条柱的大小(从最小值到最大值)。在重新绘制锯齿形调整浪指标的最后一条线时,将计算 minSize 的新值。

第五个锯齿形调整浪

ExtIndicator = 4 时,启用 Tauber 的锯齿形调整浪。Tauber 是 ONIX 论坛的一个发帖者。经作者允许,我在这里描述一下这个锯齿形调整浪:

“我以 MetaTrader 为基础(MetaTrader 4 客户终端中嵌入的锯齿形调整浪 - 内恩的注解)。此算法是一种递归算法,很简短,从逻辑角度来看非常全面:

  1. 在所有柱中找到全局最大值。
  2. 剩余的柱分为两个部分,最大值柱的右侧和左侧。
  3. 在这两半中找到全局最小值。
  4. 每一半再分为两个部分,以此类推。

用锯齿形调整浪中使用的方法监控这个流程,不同之处在于仅根据一个参数进行监控 - 百分比或价格利润点差值。”(由 MetaQuotes Software Corp. 翻译整理,2007 年)

更多引用:

“此算法是一种递归算法 - 用于找到最大值调用的函数即是用于找到最小值的函数,反之亦然。这就是图表层层分割的方式。当连续的最大值/最小值与最近的最小值/最大值之间的价格差异小于 minSize 时,此流程停止。主要的差异在于,这个结果取决于唯一的参数 minSize,此参数是锯齿形调整浪的经典定义,并可精确查找所有重要的峰值。”

第六个锯齿形调整浪

ExtIndicator = 5 时,启用模拟江恩摆动图的锯齿形调整浪。这是一个趋势指标。
算法
[4] 中提供有关如何构建江恩摆动图的详细说明。一些用于构建江恩摆动图的著名指标是用本书作者所述的算法创建的。内容说明非常详细,甚至会让你大呼无聊。尽管如此,当你尝试按照说明构建指标时,还是会出现很多问题。有些烛台组合不容易分析。摆动图也很难构建。你可以用不同的方式分析当前的情况。这也许就是江恩摆动图在指标中的已知实现方式与书中所述算法有所偏差的原因所在。

在我们的案例中,有两个偏差。它们都与外部柱的处理相关。外部柱是最高价高于前一个最高价,且最低价低于前一个最低价的柱。上述书中称,最大值和最小值都必须构建在外部柱上。但当锯齿形调整浪内有一根同时包含最大值和最小值的柱时,是无法在 ZUP 中操作的。此外,说明中还指出,最大值和最小值必须在特定序列内交替出现。最接近烛台开口的外部柱极值必须排在第一。这是可以实时实现的。但这一说法在应用到历史记录上时,就成了“宽泛的说明”。因此,实时构建的摆动图会与在已变为历史记录的同一时期上构建的摆动图有所不同。即,对于实时出现过一个最大值的时间段,在根据同一时间段的历史数据构建摆动图时,我们可以获得一个最小值。为避免引起歧义,趋势将仍是外部柱进场之前的主导趋势。但是,根据说明,由于趋势在外部柱上必然发生变化,针对中间的主要趋势和订单增加趋势,让我们将外部柱视为柱计数开始检测未来可能趋势的初始柱。这就是主要差异。与构建江恩摆动图的其他指标相比,这一差异会对摆动检测造成轻微的影响。本该处于外部柱上的“小”摆动图从全局看来是无关紧要的。在某些情况下,该指标会找到其他指标在一些重要历史数据时期上忽略的摆动图。

第二个偏差是无关紧要的。某些情况下,这个偏差可帮助查找报价历史的平盘时期的摆动图。以本文所用的通用语言范畴,很难描述这种偏差,所以这里略过不提。某种意义上我借鉴了其他在其指标中实现了摆动图的程序员。我处理了外部柱,使其变得类似于其他指标中实现的结果。但是,我并未在其他指标中研究其实现方式。我也没看到其他指标代码。阅读其他人的代码比较困难。我只是看了用其他指标所做的图。
参数
minBars 设定趋势:

  1. minBars = 0 - 小趋势 - 单柱趋势;
  2. minBars = 1 - 中间趋势 - 双柱趋势;
  3. minBars = 2 - 主要趋势 - 三柱趋势;
  4. minBars > 2 - 更高价位趋势。

DT 模式

DT 模式最先由 klot 在其指标 DT-ZigZag.mq4 中应用。在此模式中,当前时间范围图表将显示一个构建于更大时间范围上的锯齿形调整浪。ZUP 中的构建算法不同于 klot 开发的算法。仅使用了他的想法。

DT 模式中使用外部锯齿形调整浪。外部锯齿形调整浪拥有多种不同的构建算法。你应使用最新可用 ZUP 版本中提供的锯齿形调整浪:

  1. ExtIndicator = 6 - 使用 DT 模式和外部指标 ZigZag_new_nen3.mq4。其算法与 ExtIndicator = 0 模式中的锯齿形调整浪相对应;
  2. ExtIndicator = 7 - 使用 DT 模式和外部指标 DT_ZZ.mq4。DT_ZZ.mq4 是 klot 开发的
  3. ExtIndicator = 8 - 使用 DT 模式和外部指标 CZigZag.mq4。CZigZag. mq4 是 Candid 开发的
  4. ExtIndicator = 10 - 使用 DT 模式和采用外部指标 CZigZag.mq4 的江恩摆动图。其算法与 ExtIndicator = 5 模式中的锯齿形调整浪相对应。

安装 ZUP 时,应将四个外部锯齿形调整浪存储到包含客户终端的自定义指标的文件夹内。
参数
GrossPeriod - DT 模式中锯齿形调整浪绘图所依据的时间范围的分钟数。GrossPeriod 可取以下值:5-15-30-60-240-1440-10080-43200,相应的时间范围分别为 M5-M15-M30-H1-H4-D1-W1-MN。对于所有 DT 模式,GrossPeriod 设置了较大的时间范围以提供数据,以便在当前时间范围上构建锯齿形调整浪。除了 GrossPeriod 以外,参数 minBars、ExtDeviation 和 ExtBackstep 也用于设置锯齿形调整浪:

  1. ExtIndicator = 7 时,仅按 minBars 值设置锯齿形调整浪;
  2. ExtIndicator = 8 时,按 minBars 和 ExtDeviation 的值设置锯齿形调整浪;
  3. ExtIndicator = 10 时,仅按 minBars 值设置锯齿形调整浪。

图表中的绘图
下方图表显示了使用日线图时间范围内的数据在 4 小时时间范围 上绘制锯齿形调整浪的示范图。红点位于 4 小时烛台的最大值和 最小值上,而这些烛台又组成了日线图烛台。锯齿形调整浪 断点绘制在对应的日线图烛台上。六个红点 与六个 4 小时烛台对应。


有时,对于较大时间范围烛台的最大值或最小值,我们无法在较小时间范围烛台上找到对应的最大值或最小值,这时就会出现一些尴尬的情况。然后,将在取自较大时间范围内的价格值上构建锯齿形调整浪断点。由于较小时间范围内没有相同价格的烛台,点的序列将和锯齿形调整浪断点一样“悬而不决”。这里我们可以用 ZigZagHighLow 选择可将工具(派斯温托模式、安德鲁斯干草叉等)锚定到的点:

  1. ZigZagHighLow = true - 工具锚定到较小时间范围上的柱的最小值和最大值;
  2. ZigZagHighLow = false - 工具锚定到锯齿形调整浪断点,即较大时间范围上的柱的最小值和最大值。

让我们想一想不同时间范围上多个锯齿形调整浪的示范图。ExtIndicator = 6 时,图表中有两个 ZUP_v60。我们可以在 COLORS 选项卡内选择点的颜色和直径,数字为 5。第一个指标中,Grossperiod = 10080。点的颜色为“红色”,直径为 5。在指标参数窗口的 COLORS 选项卡内选择锯齿形调整浪线条颜色为“栗色”,数字为 0。红点数量为 16。周线图中有 16 个 4 小时烛台。第二个指标中,Grossperiod = 1440。点的颜色为“深绿色”,点的直径为 1。锯齿形调整浪线条颜色为“浅绿色”。深绿色烛台的数量为 6。日线图中有 6 个 1 小时烛台。



要叠加不同指标的结果,如上例中所示(深绿色点叠加在红点上),必须按顺序将 ZUP 指标附加到图表上。首先,随红点附加指标。然后随深绿色点附加指标。此方法的一个重要特性是:如果我们更改了使用一组给定指标的图表的时间范围(4 小时,用于周线图),深绿色点的相关指标将不会显示在图表上。深绿色点的相关指标使用的是日线图时间范围内的数据。与周线图相比,日线图时间范围较小。在 DT 模式中,锯齿形调整浪线构建于较小的时间范围上,采用的数据取自较大的时间范围。因此,较小时间范围(日线图)的锯齿形调整浪线不应显示在周线图时间范围上。当切换到大于日线图的时间范围时,日线图时间范围数据不应显示。以下是日线图上的上述示例的指标。点的数量发生了变化。由于周线图烛台中的日线图烛台数量为 5,现在有 5 个红点。现在还有 1 个深绿色点。



红点和深绿色点有助于寻找其数据用于构建相应锯齿形调整浪线的时间范围。为了更好地理解,每个时间范围内的所有绘图都可用同一种颜色方案绘制。尤其是在 DT 模式中,不同时间范围的点可以使用不同的预定义颜色。

还有一点重要的补充。在 DT 模式下处理时间范围 GrossPeriod 时,历史深度必须大于活动时间范围上的历史深度。如果不符合这个条件,在较小的时间范围上绘制锯齿形调整浪时,一旦历史深度超过 GrossPeriod 的历史深度,绘图就会出错。同时,在 DT 模式下工作时,跳过不同时间范围上的报价将导致错误的锯齿形调整浪绘图。如果在 DT 模式下构建了错误的锯齿形调整浪,例如逐个构建了两个最小值和两个最大值,则必须检查当前时间范围的报价和 GrossPeriod 的报价,看是否有任何遗漏的柱。如果有遗漏的柱,必须从 C:\Program Files\MetaTrader\history\xxx\ 中移除对应时间范围的历史记录,并重新加载这段历史记录。

RSI 指标上的锯齿形调整浪

ExtIndicator = 9 是一种操作模式,位于图表下方某个窗口内,包含 RSI。目前已开发出一种特殊的 ZUP 版本 - ZUP_RSI_v48,这个版本中使用这种模式根据 RSI 的数据构建锯齿形调整浪。ExtIndicator = 9 仅用于 ZUP_RSI_v48 中。此版本不包含版本 49 和更高版本中可用的新功能。在将版本 48 连接到此图表之后,必须更改时间范围,以便系统开始绘制图形工具。使用趋势算法根据 RSI 绘制锯齿形调整浪。以下是在 ExtIndicator = 9 模式下,使用上一个示例中的图表绘制 ZUP_RSI_v48 的示例。正如我之前说过的,ZUP_RSI_v48 有助于在图表中显示派斯温托模式和静态的安德鲁斯干草叉



ExtIndicator = 9 模式下使用的参数(下文中,有关本版本的说明里出现的一些概念将在第二篇文章中详细说明):

  1. minBars - RSI 周期 - 平均周期得出此指数;
  2. 价格 - 选定价格,在此价格上为 RSI 模式绘制 RSI:

    0 - PRICE_CLOSE - 收盘价格;

    1 - PRICE_OPEN - 开盘价格;

    2 - PRICE_HIGH - 最高价;

    3 - PRICE_LOW - 最低价;

    4 - PRICE_MEDIAN - 中间价,(最高价 + 最低价)/2;

    5 - PRICE_TYPICAL - 典型价格,(最高价 + 最低价 + 收盘价)/3;

    6 - PRICE_WEIGHTED - 加权收盘价,(最高价 + 最低价 + 收盘价 + 收盘价)/4;

  3. minPercent - 指定“RSI 指标点”的数量,在这些点后将显示新的锯齿形调整浪线。

此模式的局限性:

  1. 仅可显示一个指标。第二个和所有之后的指标副本都无法正常工作。
  2. 我没有明确定义 100% 和 0% 水平。这就是锯齿形调整浪的峰值和谷值与 RSI 的峰值和谷值不一致的原因。锯齿形调整浪将以全屏高度显示。图表重新调整尺寸后,锯齿形调整浪也将重新调整尺寸。
  3. 此版本中,我并未调整安德鲁斯干草在某些烛台中的显示。对于此模式来说,这并不那么符合实际情况。

所有其他 ZUP 工具都在此模式下工作,包括在锯齿形调整浪线上计数的柱,这条线是一个非常有趣的研究课题。所有用 ExtIndicator 设置的模式也都能正常工作。锯齿形调整浪及其所有工具都显示在图表下方的一个窗口内,而不是图表窗口内。本版本中可能有一些缺陷。要针对这种非标准模式测试指标是相当困难的。此版本主要用于实验用途。


搜索伽利模式。

ExtIndicator = 11 将 ExtIndicator = 0 包括在主动扫描模式内,以搜索伽利模式。用于搜索伽利模式的主动扫描模式需要大量处理器资源。当市场不断剧烈变化时,终端可能会挂起一段时间。计算回路完成后,终端停止挂起。主动扫描在 minBars (Depth) 中进行搜索。为 minBars (Depth) 的各个值构建一个锯齿形调整浪。然后在绘制的锯齿形调整浪上搜索伽利模式。针对 minBars (Depth) 值的整个范围(从 minDepth 到 maxDepth)重复执行此操作,直至找到一个伽利模式。此指标使用以下参数:

  1. ExtGartleyOnOff - 使伽利模式在除了 ExtIndicaotr = 11 以外的所有模式下都可显示。因此,如果已为选定模式绘制了一个模式,将找到这个模式。将不会在锯齿形调整浪参数中进行任何搜索。仅在唯一绘制的锯齿形调整浪上搜索伽利模式。此参数与 ExtIndicator = 11 模式无关联;
  2. maxDepth - 将锯齿形调整浪的 Depth 参数的最大值设为主动扫描范围,以搜索伽利模式。此参数不宜常用,以减少处理器的负荷。但是,值太小就无法找到某些模式,所以要根据实验挑选此参数。
  3. minDepth - 设置 Depth 的最小值以搜索伽利模式;
  4. DirectionOfSearchMaxMin - 设置在 Depth 中搜索的方向:

    false - 从 minDepth 至 maxDepth;
    true - 从 maxDepth 至 minDepth。

    最好用 true:首先会找到“较大的”伽利模式。某些情况下,“工作区”内会形成多个模式。即,多个模式的 D 点重合或非常接近。在主动扫描б时,一旦找到第一个模式,就会停止搜索。这样就能够选择哪种模式会最先被发现:最小的还是最大的模式。

  5. maxBarToD - 设置从空柱到模式 D 点的最大柱数。如果此区域内未找到模式,将不会在这批柱后的区域内执行模式搜索任务。交易时的一个重要注意事项是,D 点在靠近空柱的柱上。如果它远离空柱,找到的模式就失去了其对交易的重要意义了。
  6. ExtDeltaGartley - 设置与推荐模式回调值的容许价格偏差范围。默认为 0.09 到 9%;
  7. ExtCD - 模式的 CD 线相对于 BC 线的值,模式分析在此值之后启动;
  8. ExtColorPatterns - 模式的三角形的颜色。

要看找到了什么模式,必须启用 infoTF。注释的第二行中将显示模式的名称和类型(牛市或熊市)。使用主动扫描算法搜索模式。如果找到了一个模式,将绘制一个拥有以下参数的锯齿形调整浪:

  1. Depth - 在绘制的锯齿形调整浪上找到模式时所用的值:
  2. ExtDeviation 和 ExtBackstep - 在指标的窗口中设置的参数。

找到的模式表现地像是在用找到的值校准锯齿形调整浪。如未找到模式,将构建一个带以下参数的锯齿形调整浪:minBars、ExtDeviation 和 ExtBackstep(按照 ZUP 中的设置)。

在为模式增添了色调的三角形的名称中,我们可以看到 ExtIndicator 值,与 ExtIndicator 对应的锯齿形调整浪参数,以及到 D 点的柱数。三角形的属性里提供三角形的名称。打开三角形属性后,我们会看到图形对象名称,例如,*Triangl2_ExtIndicator=0_11/5/3_14,其中:

  1. * - ZUP 设置编号;
  2. Triangl2 - 模式的右三角形;
  3. ExtIndicator=0 - 绘制模式时所在的锯齿形调整浪;
  4. 11/5/3 - minBars = 11,ExtDeviation = 5,ExtBackstep = 3;
  5. 14 - 到模式 D 点的柱数。

在找到一个模式后,市场可能会发生剧烈变化。然后该模式“丢失”了。这意味着该模式所在的锯齿形调整浪已被重新绘制了。要重新构建“消失”的模式,可以切换到较小的时间范围。较小时间范围上有更多的烛台,因此锯齿形调整浪将能够“抓住”丢失的模式。

熊市伽利模式模型

牛市伽利模式模型

如果我们按 Scott Carney(谐波价格模式)所述方式清晰构建所有回调线,则模式的 D 点将在范围内。此范围是由以下事实造成的:可使用不同的回调线来找到 D 点,这些回调线即 BD 和 XD(XD 回调线等于 AD 与 XA 之间的关系。回调线 XD=AD/XA)。这些回调线不常汇合。由于这种不确定性б,我们可以得出一个结论,“蝴蝶”图的算法应是“批量”。此算法必须批量考虑所有允许回调线。这就是我们称其为“批量”算法的原因。

在使用“批量”算法构建蝴蝶图之处,开始进行更精细的调整,使用派斯温托模式和动态/静态斐波纳奇工具明确交易条件。ZUP 找到一个时空构造,并将其称为伽利模式之一。然后我们应使用此构造明确交易条件。要定义市场上的买入点,应使用一些过滤器。烛台、趋势线或其他指标的组合都可用作过滤器。以下是 ExtIndicator = 11 模式中绘制的示例:



对 ZUP_v60 中嵌入的锯齿形调整浪的回顾到此结束。

总结

本文简要描述了 ZUP(派斯温托通用锯齿形调整浪模式)的基本原理。同时还介绍了 ZUP 中嵌入的锯齿形调整浪。作者认为,主要的锯齿形调整浪绘制算法是在 ZUP 中实现的。这让交易者能够选择最可取的算法。本文所述的所有嵌入式图形工具都会自动连接到选定锯齿形调整浪。未来可能会嵌入基于其他算法的锯齿形调整浪。

在本文随附的 .zip 文件中,可找到 ZUP_v60 和 ZUP_RSI_v48 指标集合。该文件中的指标版本已更正了一些错误。最初上传到 ONIX 论坛的 ZUP_v60 版本有一些错误。该指标相当复杂。不排除在某些市场条件下产生一些错误构造的情况。绘图错误的原因可能是:

  1. 指标代码内有错误;
  2. MetaTrader 4 中将图形工具锚定到柱的特殊功能导致的不精确。尤其是某些情况下,无论如何也无法正确构建斐波纳奇通道线;
  3. 如果使用 ZUP 在一个时间范围上构建了一个图形工具并保存到图表上,则在 MetaTrader 4 中切换到另一个时间范围时,该图形工具通常会改变自身特性。因此,该图形工具看起来就像绘制错误一般。在我的第二篇文章里,我将向 MetaTrader 4 开发团队建议对此功能做一些更改。但是,如果该图形工具并未保存到图表上,而是与 ZUP 一同使用,则在切换到另一个时间范围时不会出现错误的构造。这可通过重新计算图形工具的锚定点来实现。

第一种类型的错误找到后即可更正。我希望在客户终端开发人员的帮助下消除第二种和第三种类型的错误。ZUP 中内嵌的指标和图形工具将在下一篇文章中进行介绍。

参考文献列表

  1. Stakhov, A., Sluchenkova, A., Scherbakov I. Kod da Vinci i ryadi Fibonacci(Da Vinci 代码和斐波纳奇数列)。St. Petersburg, Publishing House 'Piter', 2007.
  2. Sokolov, Yu.N.Obschaya teoriya tsikla ili edinaya teoriya fizicheskikh vzaimodeystviy.Published by the North Caucasian State Technical University:Stavropol, 2003 (English version at http://www.ncstu.info/content/_docs/pdf/cycles/goldbook/06e.pdf).
  3. Sokolov, Yu.N.Obschaya teoriya tsikla.
  4. Hyerczyk, James A. Pattern, Price & Time:Using Gann Theory in Trading Systems.- John Wiley & Sons, Inc. 1998.300 p.
  5. Carney, Scott M. The Harmonic Trader.1999.305 p.
  6. Pesavento, Larry.Fibonacci Ratios with Pattern Recognition.Edited by Steven Shapiro.- Traders Press Inc. 1997
  7. Pesavento, Larry.Profitable Patterns for Stock Trading.- Traders Press Inc. 1999.